|  | // Copyright 2013 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 GPU_COMMAND_BUFFER_SERVICE_ASYNC_PIXEL_TRANSFER_MANAGER_EGL_H_ | 
|  | #define GPU_COMMAND_BUFFER_SERVICE_ASYNC_PIXEL_TRANSFER_MANAGER_EGL_H_ | 
|  |  | 
|  | #include "gpu/command_buffer/service/async_pixel_transfer_manager.h" | 
|  |  | 
|  | #include "base/memory/ref_counted.h" | 
|  |  | 
|  | namespace gpu { | 
|  | class AsyncPixelTransferDelegateEGL; | 
|  | class AsyncPixelTransferUploadStats; | 
|  |  | 
|  | class AsyncPixelTransferManagerEGL : public AsyncPixelTransferManager { | 
|  | public: | 
|  | AsyncPixelTransferManagerEGL(); | 
|  | ~AsyncPixelTransferManagerEGL() override; | 
|  |  | 
|  | // AsyncPixelTransferManager implementation: | 
|  | void BindCompletedAsyncTransfers() override; | 
|  | void AsyncNotifyCompletion( | 
|  | const AsyncMemoryParams& mem_params, | 
|  | AsyncPixelTransferCompletionObserver* observer) override; | 
|  | uint32 GetTextureUploadCount() override; | 
|  | base::TimeDelta GetTotalTextureUploadTime() override; | 
|  | void ProcessMorePendingTransfers() override; | 
|  | bool NeedsProcessMorePendingTransfers() override; | 
|  | void WaitAllAsyncTexImage2D() override; | 
|  |  | 
|  | // State shared between Managers and Delegates. | 
|  | struct SharedState { | 
|  | SharedState(); | 
|  | ~SharedState(); | 
|  |  | 
|  | scoped_refptr<AsyncPixelTransferUploadStats> texture_upload_stats; | 
|  | bool is_imagination; | 
|  | bool is_qualcomm; | 
|  | typedef std::list<base::WeakPtr<AsyncPixelTransferDelegateEGL> > | 
|  | TransferQueue; | 
|  | TransferQueue pending_allocations; | 
|  | }; | 
|  |  | 
|  | private: | 
|  | // AsyncPixelTransferManager implementation: | 
|  | AsyncPixelTransferDelegate* CreatePixelTransferDelegateImpl( | 
|  | gles2::TextureRef* ref, | 
|  | const AsyncTexImage2DParams& define_params) override; | 
|  |  | 
|  | SharedState shared_state_; | 
|  |  | 
|  | DISALLOW_COPY_AND_ASSIGN(AsyncPixelTransferManagerEGL); | 
|  | }; | 
|  |  | 
|  | }  // namespace gpu | 
|  |  | 
|  | #endif  // GPU_COMMAND_BUFFER_SERVICE_ASYNC_PIXEL_TRANSFER_MANAGER_EGL_H_ |