// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_GFX_SWAP_RESULT_H_ #define UI_GFX_SWAP_RESULT_H_ #include "base/time/time.h" namespace gfx { enum class SwapResult { SWAP_ACK, SWAP_FAILED, SWAP_NAK_RECREATE_BUFFERS, SWAP_RESULT_LAST = SWAP_NAK_RECREATE_BUFFERS, }; // Sent by ImageTransportSurfaces to their clients in response to a SwapBuffers. struct SwapResponse { // The swap's sequence id which helps clients determine which SwapBuffers // this corresponds to. We may receive responses out of order on platforms // that allow multiple swaps pending if a failed swap returns immediately // while a successful swap is still outstanding. uint64_t swap_id; // Indicates whether the swap succeeded or not. SwapResult result; // When the GPU service first started processing the SwapBuffers request. base::TimeTicks swap_start; // On most platforms, this is when the GPU service finished processing the // SwapBuffers request. On ChromeOS, this corresponds to the present time. // TODO(brianderson): Differentiate the concepts without introducing // dicontinuities in associated UMA data. base::TimeTicks swap_end; }; } // namespace gfx #endif // UI_GFX_SWAP_RESULT_H_