1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_ASYNC_PIXEL_TRANSFER_MANAGER_SYNC_H_ 6 #define GPU_COMMAND_BUFFER_SERVICE_ASYNC_PIXEL_TRANSFER_MANAGER_SYNC_H_ 7 8 #include "gpu/command_buffer/service/async_pixel_transfer_manager.h" 9 10 namespace gpu { 11 12 class AsyncPixelTransferManagerSync : public AsyncPixelTransferManager { 13 public: 14 AsyncPixelTransferManagerSync(); 15 virtual ~AsyncPixelTransferManagerSync(); 16 17 // AsyncPixelTransferManager implementation: 18 virtual void BindCompletedAsyncTransfers() OVERRIDE; 19 virtual void AsyncNotifyCompletion( 20 const AsyncMemoryParams& mem_params, 21 AsyncPixelTransferCompletionObserver* observer) OVERRIDE; 22 virtual uint32 GetTextureUploadCount() OVERRIDE; 23 virtual base::TimeDelta GetTotalTextureUploadTime() OVERRIDE; 24 virtual void ProcessMorePendingTransfers() OVERRIDE; 25 virtual bool NeedsProcessMorePendingTransfers() OVERRIDE; 26 virtual void WaitAllAsyncTexImage2D() OVERRIDE; 27 28 // State shared between Managers and Delegates. 29 struct SharedState { 30 SharedState(); 31 ~SharedState(); 32 33 int texture_upload_count; 34 base::TimeDelta total_texture_upload_time; 35 }; 36 37 private: 38 // AsyncPixelTransferManager implementation: 39 virtual AsyncPixelTransferDelegate* CreatePixelTransferDelegateImpl( 40 gles2::TextureRef* ref, 41 const AsyncTexImage2DParams& define_params) OVERRIDE; 42 43 SharedState shared_state_; 44 45 DISALLOW_COPY_AND_ASSIGN(AsyncPixelTransferManagerSync); 46 }; 47 48 } // namespace gpu 49 50 #endif // GPU_COMMAND_BUFFER_SERVICE_ASYNC_PIXEL_TRANSFER_MANAGER_SYNC_H_ 51