Chromium Code Reviews| Index: gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc |
| diff --git a/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc b/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc |
| index b44b4774046e9995963009cb5214b1e449f5a05f..3f2cd241ee6ca49dec03a7c388ef657514379787 100644 |
| --- a/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc |
| +++ b/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc |
| @@ -32,9 +32,10 @@ class AsyncPixelTransferDelegateIdle |
| : public AsyncPixelTransferDelegate, |
| public base::SupportsWeakPtr<AsyncPixelTransferDelegateIdle> { |
| public: |
| + typedef base::Callback<GLuint()> TextureIdCallback; |
| AsyncPixelTransferDelegateIdle( |
| AsyncPixelTransferManagerIdle::SharedState* state, |
| - GLuint texture_id, |
| + const TextureIdCallback& texture_id_callback, |
| const AsyncTexImage2DParams& define_params); |
| ~AsyncPixelTransferDelegateIdle() override; |
| @@ -55,7 +56,7 @@ class AsyncPixelTransferDelegateIdle |
| AsyncMemoryParams mem_params); |
| uint64 id_; |
| - GLuint texture_id_; |
| + TextureIdCallback texture_id_callback_; |
| bool transfer_in_progress_; |
| AsyncTexImage2DParams define_params_; |
| @@ -68,10 +69,10 @@ class AsyncPixelTransferDelegateIdle |
| AsyncPixelTransferDelegateIdle::AsyncPixelTransferDelegateIdle( |
| AsyncPixelTransferManagerIdle::SharedState* shared_state, |
| - GLuint texture_id, |
| + const TextureIdCallback& texture_id_callback, |
| const AsyncTexImage2DParams& define_params) |
| : id_(g_next_pixel_transfer_state_id++), |
| - texture_id_(texture_id), |
| + texture_id_callback_(texture_id_callback), |
| transfer_in_progress_(false), |
| define_params_(define_params), |
| shared_state_(shared_state) {} |
| @@ -145,7 +146,8 @@ void AsyncPixelTransferDelegateIdle::PerformAsyncTexImage2D( |
| void* data = mem_params.GetDataAddress(); |
| base::TimeTicks begin_time(base::TimeTicks::Now()); |
| - gfx::ScopedTextureBinder texture_binder(tex_params.target, texture_id_); |
| + gfx::ScopedTextureBinder texture_binder(tex_params.target, |
| + texture_id_callback_.Run()); |
| { |
| TRACE_EVENT0("gpu", "glTexImage2D"); |
| @@ -181,7 +183,8 @@ void AsyncPixelTransferDelegateIdle::PerformAsyncTexSubImage2D( |
| void* data = mem_params.GetDataAddress(); |
| base::TimeTicks begin_time(base::TimeTicks::Now()); |
| - gfx::ScopedTextureBinder texture_binder(tex_params.target, texture_id_); |
| + gfx::ScopedTextureBinder texture_binder(tex_params.target, |
| + texture_id_callback_.Run()); |
| if (shared_state_->use_teximage2d_over_texsubimage2d && |
| tex_params.xoffset == 0 && |
| @@ -317,9 +320,10 @@ AsyncPixelTransferDelegate* |
| AsyncPixelTransferManagerIdle::CreatePixelTransferDelegateImpl( |
| gles2::TextureRef* ref, |
| const AsyncTexImage2DParams& define_params) { |
| - return new AsyncPixelTransferDelegateIdle(&shared_state_, |
| - ref->service_id(), |
| - define_params); |
| + return new AsyncPixelTransferDelegateIdle( |
| + &shared_state_, |
|
no sievers
2015/04/28 23:23:18
Can you put a comment why we are doing this instea
|
| + base::Bind(&gles2::TextureRef::service_id, base::Unretained(ref)), |
|
no sievers
2015/04/28 23:23:18
Can you put a comment similar to the one in GLES2C
|
| + define_params); |
| } |
| } // namespace gpu |