| // Copyright 2018 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. |
| |
| // This file contains the mock RasterDecoder class. |
| |
| #ifndef GPU_COMMAND_BUFFER_SERVICE_RASTER_DECODER_MOCK_H_ |
| #define GPU_COMMAND_BUFFER_SERVICE_RASTER_DECODER_MOCK_H_ |
| |
| #include <stdint.h> |
| |
| #include <vector> |
| |
| #include "base/callback.h" |
| #include "base/macros.h" |
| #include "gpu/command_buffer/common/context_creation_attribs.h" |
| #include "gpu/command_buffer/common/mailbox.h" |
| #include "gpu/command_buffer/service/raster_decoder.h" |
| #include "gpu/command_buffer/service/shader_translator.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| #include "ui/gfx/geometry/size.h" |
| |
| namespace gl { |
| class GLContext; |
| class GLSurface; |
| } // namespace gl |
| |
| namespace gpu { |
| class QueryManager; |
| |
| namespace gles2 { |
| class ContextGroup; |
| class ErrorState; |
| class FeatureInfo; |
| class GpuFenceManager; |
| class GLES2Util; |
| class ImageManager; |
| class Logger; |
| class Texture; |
| struct ContextState; |
| } // namespace gles2 |
| |
| namespace raster { |
| |
| class MockRasterDecoder : public RasterDecoder { |
| public: |
| explicit MockRasterDecoder(CommandBufferServiceBase* command_buffer_service); |
| ~MockRasterDecoder() override; |
| |
| base::WeakPtr<DecoderContext> AsWeakPtr() override; |
| |
| MOCK_METHOD5( |
| Initialize, |
| gpu::ContextResult(const scoped_refptr<gl::GLSurface>& surface, |
| const scoped_refptr<gl::GLContext>& context, |
| bool offscreen, |
| const gles2::DisallowedFeatures& disallowed_features, |
| const ContextCreationAttribs& attrib_helper)); |
| MOCK_METHOD1(Destroy, void(bool have_context)); |
| MOCK_METHOD0(MakeCurrent, bool()); |
| MOCK_METHOD1(GetServiceIdForTesting, uint32_t(uint32_t client_id)); |
| MOCK_METHOD0(GetGLES2Util, gles2::GLES2Util*()); |
| MOCK_METHOD0(GetGLSurface, gl::GLSurface*()); |
| MOCK_METHOD0(GetGLContext, gl::GLContext*()); |
| MOCK_METHOD0(GetContextGroup, gles2::ContextGroup*()); |
| MOCK_CONST_METHOD0(GetFeatureInfo, const gles2::FeatureInfo*()); |
| MOCK_METHOD0(GetContextState, const gles2::ContextState*()); |
| MOCK_METHOD0(GetCapabilities, Capabilities()); |
| MOCK_CONST_METHOD0(HasPendingQueries, bool()); |
| MOCK_METHOD1(ProcessPendingQueries, void(bool)); |
| MOCK_CONST_METHOD0(HasMoreIdleWork, bool()); |
| MOCK_METHOD0(PerformIdleWork, void()); |
| MOCK_CONST_METHOD0(HasPollingWork, bool()); |
| MOCK_METHOD0(PerformPollingWork, void()); |
| MOCK_CONST_METHOD0(RestoreGlobalState, void()); |
| MOCK_CONST_METHOD0(ClearAllAttributes, void()); |
| MOCK_CONST_METHOD0(RestoreAllAttributes, void()); |
| MOCK_METHOD1(RestoreState, void(const gles2::ContextState* prev_state)); |
| MOCK_CONST_METHOD0(RestoreActiveTexture, void()); |
| MOCK_CONST_METHOD1(RestoreAllTextureUnitAndSamplerBindings, |
| void(const gles2::ContextState* state)); |
| MOCK_CONST_METHOD1(RestoreActiveTextureUnitBinding, |
| void(unsigned int target)); |
| MOCK_METHOD0(RestoreAllExternalTextureBindingsIfNeeded, void()); |
| MOCK_METHOD1(RestoreBufferBinding, void(unsigned int target)); |
| MOCK_CONST_METHOD0(RestoreBufferBindings, void()); |
| MOCK_CONST_METHOD0(RestoreFramebufferBindings, void()); |
| MOCK_CONST_METHOD0(RestoreProgramBindings, void()); |
| MOCK_METHOD0(RestoreRenderbufferBindings, void()); |
| MOCK_CONST_METHOD1(RestoreTextureState, void(unsigned service_id)); |
| MOCK_CONST_METHOD1(RestoreTextureUnitBindings, void(unsigned unit)); |
| MOCK_METHOD1(RestoreVertexAttribArray, void(unsigned index)); |
| |
| MOCK_METHOD0(GetQueryManager, QueryManager*()); |
| MOCK_METHOD2(SetQueryCallback, void(unsigned int, base::OnceClosure)); |
| MOCK_METHOD0(GetGpuFenceManager, gpu::gles2::GpuFenceManager*()); |
| MOCK_METHOD1(SetIgnoreCachedStateForTest, void(bool ignore)); |
| MOCK_METHOD0(GetImageManagerForTest, gles2::ImageManager*()); |
| MOCK_METHOD0(GetTransferCacheForTest, ServiceTransferCache*()); |
| MOCK_METHOD0(DecoderIdForTest, int()); |
| MOCK_METHOD0(SetUpForRasterCHROMIUMForTest, void()); |
| MOCK_METHOD0(SetOOMErrorForTest, void()); |
| MOCK_METHOD0(DisableFlushWorkaroundForTest, void()); |
| MOCK_METHOD4(DoCommands, |
| error::Error(unsigned int num_commands, |
| const volatile void* buffer, |
| int num_entries, |
| int* entries_processed)); |
| MOCK_METHOD2(GetServiceTextureId, |
| bool(uint32_t client_texture_id, uint32_t* service_texture_id)); |
| MOCK_METHOD0(GetErrorState, gles2::ErrorState*()); |
| MOCK_METHOD8(CreateAbstractTexture, |
| std::unique_ptr<gpu::gles2::AbstractTexture>( |
| unsigned /* GLenum */ target, |
| unsigned /* GLenum */ internal_format, |
| int /* GLsizei */ width, |
| int /* GLsizei */ height, |
| int /* GLsizei */ depth, |
| int /* GLint */ border, |
| unsigned /* GLenum */ format, |
| unsigned /* GLenum */ type)); |
| |
| MOCK_METHOD0(GetLogger, gles2::Logger*()); |
| MOCK_CONST_METHOD0(WasContextLost, bool()); |
| MOCK_CONST_METHOD0(WasContextLostByRobustnessExtension, bool()); |
| MOCK_METHOD1(MarkContextLost, void(gpu::error::ContextLostReason reason)); |
| MOCK_METHOD0(CheckResetStatus, bool()); |
| MOCK_METHOD4(BindImage, |
| void(uint32_t client_texture_id, |
| uint32_t texture_target, |
| gl::GLImage* image, |
| bool can_bind_to_sampler)); |
| MOCK_METHOD1(IsCompressedTextureFormat, bool(unsigned format)); |
| MOCK_METHOD9(ClearLevel, |
| bool(gles2::Texture* texture, |
| unsigned target, |
| int level, |
| unsigned format, |
| unsigned type, |
| int xoffset, |
| int yoffset, |
| int width, |
| int height)); |
| MOCK_METHOD6(ClearCompressedTextureLevel, |
| bool(gles2::Texture* texture, |
| unsigned target, |
| int level, |
| unsigned format, |
| int width, |
| int height)); |
| MOCK_METHOD8(ClearLevel3D, |
| bool(gles2::Texture* texture, |
| unsigned target, |
| int level, |
| unsigned format, |
| unsigned type, |
| int width, |
| int height, |
| int depth)); |
| MOCK_METHOD1(SetCopyTextureResourceManagerForTest, |
| void(gles2::CopyTextureCHROMIUMResourceManager* |
| copy_texture_resource_manager)); |
| |
| private: |
| base::WeakPtrFactory<MockRasterDecoder> weak_ptr_factory_; |
| |
| DISALLOW_COPY_AND_ASSIGN(MockRasterDecoder); |
| }; |
| |
| } // namespace raster |
| } // namespace gpu |
| |
| #endif // GPU_COMMAND_BUFFER_SERVICE_RASTER_DECODER_MOCK_H_ |