| // Copyright 2013 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "gpu/command_buffer/client/gles2_trace_implementation.h" |
| |
| #include "base/trace_event/trace_event.h" |
| #include "gpu/command_buffer/client/client_shared_image.h" |
| |
| namespace gpu { |
| namespace gles2 { |
| |
| GLES2TraceImplementation::GLES2TraceImplementation(GLES2Interface* gl) |
| : gl_(gl) { |
| } |
| |
| GLES2TraceImplementation::~GLES2TraceImplementation() = default; |
| |
| bool GLES2TraceImplementation::CanCopySharedImageDirectlyToGLTexture( |
| bool is_opaque, |
| ClientSharedImage* shared_image, |
| uint32_t dst_target, |
| uint32_t dst_internal_format, |
| uint32_t dst_type, |
| int32_t dst_level, |
| SkAlphaType dst_alpha_type) { |
| return gl_->CanCopySharedImageDirectlyToGLTexture( |
| is_opaque, shared_image, dst_target, dst_internal_format, dst_type, |
| dst_level, dst_alpha_type); |
| } |
| |
| gpu::SyncToken |
| GLES2TraceImplementation::CopySharedImageToGLTextureViaTextureCopy( |
| const gfx::Rect& src_rect, |
| ClientSharedImage* source_shared_image, |
| const gpu::SyncToken& source_sync_token, |
| uint32_t dst_target, |
| uint32_t dst_texture, |
| uint32_t dst_internal_format, |
| uint32_t dst_format, |
| uint32_t dst_type, |
| int32_t dst_level, |
| SkAlphaType dst_alpha_type, |
| GrSurfaceOrigin dst_origin) { |
| return gl_->CopySharedImageToGLTextureViaTextureCopy( |
| src_rect, source_shared_image, source_sync_token, dst_target, dst_texture, |
| dst_internal_format, dst_format, dst_type, dst_level, dst_alpha_type, |
| dst_origin); |
| } |
| |
| std::unique_ptr<gpu::RasterScopedAccess> |
| GLES2TraceImplementation::CopySharedImageDirectlyToGLTexture( |
| const gfx::Rect& src_rect, |
| ClientSharedImage* source_shared_image, |
| const gpu::SyncToken& source_sync_token, |
| bool is_opaque, |
| uint32_t dst_target, |
| uint32_t dst_texture, |
| uint32_t dst_internal_format, |
| uint32_t dst_format, |
| uint32_t dst_type, |
| int32_t dst_level, |
| SkAlphaType dst_alpha_type, |
| GrSurfaceOrigin dst_origin) { |
| return gl_->CopySharedImageDirectlyToGLTexture( |
| src_rect, source_shared_image, source_sync_token, is_opaque, dst_target, |
| dst_texture, dst_internal_format, dst_format, dst_type, dst_level, |
| dst_alpha_type, dst_origin); |
| } |
| |
| // InterfaceBase implementation. |
| void GLES2TraceImplementation::GenSyncTokenCHROMIUM(GLbyte* sync_token) { |
| gl_->GenSyncTokenCHROMIUM(sync_token); |
| } |
| void GLES2TraceImplementation::GenUnverifiedSyncTokenCHROMIUM( |
| GLbyte* sync_token) { |
| gl_->GenUnverifiedSyncTokenCHROMIUM(sync_token); |
| } |
| void GLES2TraceImplementation::VerifySyncTokensCHROMIUM(GLbyte** sync_tokens, |
| GLsizei count) { |
| gl_->VerifySyncTokensCHROMIUM(sync_tokens, count); |
| } |
| void GLES2TraceImplementation::WaitSyncTokenCHROMIUM(const GLbyte* sync_token) { |
| gl_->WaitSyncTokenCHROMIUM(sync_token); |
| } |
| void GLES2TraceImplementation::ShallowFlushCHROMIUM() { |
| gl_->ShallowFlushCHROMIUM(); |
| } |
| |
| // Include the auto-generated part of this file. We split this because it means |
| // we can easily edit the non-auto generated parts right here in this file |
| // instead of having to edit some template or the code generator. |
| #include "gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h" |
| |
| } // namespace gles2 |
| } // namespace gpu |
| |