1 // Copyright (c) 2012 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 // This file contains the mock GLES2Decoder class. 6 7 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_MOCK_H_ 8 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_MOCK_H_ 9 10 #include <vector> 11 12 #include "gpu/command_buffer/common/mailbox.h" 13 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 14 #include "base/callback_forward.h" 15 #include "testing/gmock/include/gmock/gmock.h" 16 #include "ui/gfx/size.h" 17 18 namespace gfx { 19 class GLContext; 20 class GLSurface; 21 } 22 23 namespace gpu { 24 namespace gles2 { 25 26 class ContextGroup; 27 class ErrorState; 28 class QueryManager; 29 struct ContextState; 30 31 class MockGLES2Decoder : public GLES2Decoder { 32 public: 33 MockGLES2Decoder(); 34 virtual ~MockGLES2Decoder(); 35 36 error::Error FakeDoCommands(unsigned int num_commands, 37 const void* buffer, 38 int num_entries, 39 int* entries_processed); 40 41 MOCK_METHOD6(Initialize, 42 bool(const scoped_refptr<gfx::GLSurface>& surface, 43 const scoped_refptr<gfx::GLContext>& context, 44 bool offscreen, 45 const gfx::Size& size, 46 const DisallowedFeatures& disallowed_features, 47 const std::vector<int32>& attribs)); 48 MOCK_METHOD1(Destroy, void(bool have_context)); 49 MOCK_METHOD1(SetSurface, void(const scoped_refptr<gfx::GLSurface>& surface)); 50 MOCK_METHOD1(ProduceFrontBuffer, void(const Mailbox& mailbox)); 51 MOCK_METHOD1(ResizeOffscreenFrameBuffer, bool(const gfx::Size& size)); 52 MOCK_METHOD0(MakeCurrent, bool()); 53 MOCK_METHOD1(GetServiceIdForTesting, uint32(uint32 client_id)); 54 MOCK_METHOD0(GetGLES2Util, GLES2Util*()); 55 MOCK_METHOD0(GetGLSurface, gfx::GLSurface*()); 56 MOCK_METHOD0(GetGLContext, gfx::GLContext*()); 57 MOCK_METHOD0(GetContextGroup, ContextGroup*()); 58 MOCK_METHOD0(GetContextState, const ContextState*()); 59 MOCK_METHOD0(GetCapabilities, Capabilities()); 60 MOCK_METHOD0(ProcessPendingQueries, bool()); 61 MOCK_METHOD0(HasMoreIdleWork, bool()); 62 MOCK_METHOD0(PerformIdleWork, void()); 63 MOCK_METHOD1(RestoreState, void(const ContextState* prev_state)); 64 MOCK_CONST_METHOD0(RestoreActiveTexture, void()); 65 MOCK_CONST_METHOD1( 66 RestoreAllTextureUnitBindings, void(const ContextState* state)); 67 MOCK_CONST_METHOD1( 68 RestoreActiveTextureUnitBinding, void(unsigned int target)); 69 MOCK_CONST_METHOD0(RestoreBufferBindings, void()); 70 MOCK_CONST_METHOD0(RestoreFramebufferBindings, void()); 71 MOCK_CONST_METHOD0(RestoreGlobalState, void()); 72 MOCK_CONST_METHOD0(RestoreProgramBindings, void()); 73 MOCK_METHOD0(RestoreRenderbufferBindings, void()); 74 MOCK_CONST_METHOD1(RestoreTextureState, void(unsigned service_id)); 75 MOCK_CONST_METHOD1(RestoreTextureUnitBindings, void(unsigned unit)); 76 MOCK_CONST_METHOD0(ClearAllAttributes, void()); 77 MOCK_CONST_METHOD0(RestoreAllAttributes, void()); 78 MOCK_METHOD0(GetQueryManager, gpu::gles2::QueryManager*()); 79 MOCK_METHOD0(GetVertexArrayManager, gpu::gles2::VertexArrayManager*()); 80 MOCK_METHOD0(GetImageManager, gpu::gles2::ImageManager*()); 81 MOCK_METHOD1( 82 SetResizeCallback, void(const base::Callback<void(gfx::Size, float)>&)); 83 MOCK_METHOD0(GetAsyncPixelTransferDelegate, 84 AsyncPixelTransferDelegate*()); 85 MOCK_METHOD0(GetAsyncPixelTransferManager, 86 AsyncPixelTransferManager*()); 87 MOCK_METHOD0(ResetAsyncPixelTransferManagerForTest, void()); 88 MOCK_METHOD1(SetAsyncPixelTransferManagerForTest, 89 void(AsyncPixelTransferManager*)); 90 MOCK_METHOD1(SetIgnoreCachedStateForTest, void(bool ignore)); 91 MOCK_METHOD3(DoCommand, error::Error(unsigned int command, 92 unsigned int arg_count, 93 const void* cmd_data)); 94 MOCK_METHOD4(DoCommands, 95 error::Error(unsigned int num_commands, 96 const void* buffer, 97 int num_entries, 98 int* entries_processed)); 99 MOCK_METHOD2(GetServiceTextureId, bool(uint32 client_texture_id, 100 uint32* service_texture_id)); 101 MOCK_METHOD0(GetContextLostReason, error::ContextLostReason()); 102 MOCK_CONST_METHOD1(GetCommandName, const char*(unsigned int command_id)); 103 MOCK_METHOD10(ClearLevel, bool( 104 unsigned service_id, 105 unsigned bind_target, 106 unsigned target, 107 int level, 108 unsigned internal_format, 109 unsigned format, 110 unsigned type, 111 int width, 112 int height, 113 bool is_texture_immutable)); 114 MOCK_METHOD0(GetErrorState, ErrorState *()); 115 116 MOCK_METHOD0(GetLogger, Logger*()); 117 MOCK_METHOD1(SetShaderCacheCallback, 118 void(const ShaderCacheCallback& callback)); 119 MOCK_METHOD1(SetWaitSyncPointCallback, 120 void(const WaitSyncPointCallback& callback)); 121 MOCK_METHOD1(WaitForReadPixels, 122 void(base::Closure callback)); 123 MOCK_METHOD0(GetTextureUploadCount, uint32()); 124 MOCK_METHOD0(GetTotalTextureUploadTime, base::TimeDelta()); 125 MOCK_METHOD0(GetTotalProcessingCommandsTime, base::TimeDelta()); 126 MOCK_METHOD1(AddProcessingCommandsTime, void(base::TimeDelta)); 127 MOCK_METHOD0(WasContextLost, bool()); 128 MOCK_METHOD0(WasContextLostByRobustnessExtension, bool()); 129 MOCK_METHOD1(LoseContext, void(uint32 reset_status)); 130 131 DISALLOW_COPY_AND_ASSIGN(MockGLES2Decoder); 132 }; 133 134 } // namespace gles2 135 } // namespace gpu 136 137 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_MOCK_H_ 138