Home | History | Annotate | Download | only in service
      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