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.
5 #ifndef GPU_COMMAND_BUFFER_SERVICE_TEST_HELPER_H_
6 #define GPU_COMMAND_BUFFER_SERVICE_TEST_HELPER_H_
8 #include "ui/gl/gl_implementation.h"
9 #include "ui/gl/gl_mock.h"
14 struct DisallowedFeatures
;
23 static const GLuint kServiceBlackTexture2dId
= 701;
24 static const GLuint kServiceDefaultTexture2dId
= 702;
25 static const GLuint kServiceBlackTextureCubemapId
= 703;
26 static const GLuint kServiceDefaultTextureCubemapId
= 704;
27 static const GLuint kServiceBlackExternalTextureId
= 705;
28 static const GLuint kServiceDefaultExternalTextureId
= 706;
29 static const GLuint kServiceBlackRectangleTextureId
= 707;
30 static const GLuint kServiceDefaultRectangleTextureId
= 708;
32 static const GLint kMaxSamples
= 4;
33 static const GLint kMaxRenderbufferSize
= 1024;
34 static const GLint kMaxTextureSize
= 2048;
35 static const GLint kMaxCubeMapTextureSize
= 256;
36 static const GLint kNumVertexAttribs
= 16;
37 static const GLint kNumTextureUnits
= 8;
38 static const GLint kMaxTextureImageUnits
= 8;
39 static const GLint kMaxVertexTextureImageUnits
= 2;
40 static const GLint kMaxFragmentUniformVectors
= 16;
41 static const GLint kMaxFragmentUniformComponents
=
42 kMaxFragmentUniformVectors
* 4;
43 static const GLint kMaxVaryingVectors
= 8;
44 static const GLint kMaxVaryingFloats
= kMaxVaryingVectors
* 4;
45 static const GLint kMaxVertexUniformVectors
= 128;
46 static const GLint kMaxVertexUniformComponents
= kMaxVertexUniformVectors
* 4;
61 GLint desired_location
;
62 const char* good_name
;
65 static void SetupContextGroupInitExpectations(
66 ::gfx::MockGLInterface
* gl
,
67 const DisallowedFeatures
& disallowed_features
,
68 const char* extensions
,
69 const char* gl_version
,
70 bool bind_generates_resource
);
71 static void SetupFeatureInfoInitExpectations(
72 ::gfx::MockGLInterface
* gl
, const char* extensions
);
73 static void SetupFeatureInfoInitExpectationsWithGLVersion(
74 ::gfx::MockGLInterface
* gl
,
75 const char* extensions
,
76 const char* gl_renderer
,
77 const char* gl_version
);
78 static void SetupTextureManagerInitExpectations(::gfx::MockGLInterface
* gl
,
79 const char* extensions
,
80 bool use_default_textures
);
81 static void SetupTextureManagerDestructionExpectations(
82 ::gfx::MockGLInterface
* gl
,
83 const char* extensions
,
84 bool use_default_textures
);
86 static void SetupExpectationsForClearingUniforms(
87 ::gfx::MockGLInterface
* gl
, UniformInfo
* uniforms
, size_t num_uniforms
);
89 static void SetupShader(
90 ::gfx::MockGLInterface
* gl
,
91 AttribInfo
* attribs
, size_t num_attribs
,
92 UniformInfo
* uniforms
, size_t num_uniforms
,
95 static void SetupProgramSuccessExpectations(::gfx::MockGLInterface
* gl
,
96 AttribInfo
* attribs
, size_t num_attribs
,
97 UniformInfo
* uniforms
, size_t num_uniforms
,
100 static void DoBufferData(
101 ::gfx::MockGLInterface
* gl
, MockErrorState
* error_state
,
102 BufferManager
* manager
, Buffer
* buffer
, GLsizeiptr size
, GLenum usage
,
103 const GLvoid
* data
, GLenum error
);
105 static void SetTexParameteriWithExpectations(
106 ::gfx::MockGLInterface
* gl
, MockErrorState
* error_state
,
107 TextureManager
* manager
, TextureRef
* texture_ref
,
108 GLenum pname
, GLint value
, GLenum error
);
111 static void SetupTextureInitializationExpectations(::gfx::MockGLInterface
* gl
,
113 bool use_default_textures
);
114 static void SetupTextureDestructionExpectations(::gfx::MockGLInterface
* gl
,
116 bool use_default_textures
);
119 // This object temporaritly Sets what gfx::GetGLImplementation returns. During
120 // testing the GLImplementation is set to kGLImplemenationMockGL but lots of
121 // code branches based on what gfx::GetGLImplementation returns.
122 class ScopedGLImplementationSetter
{
124 explicit ScopedGLImplementationSetter(gfx::GLImplementation implementation
);
125 ~ScopedGLImplementationSetter();
128 gfx::GLImplementation old_implementation_
;
134 #endif // GPU_COMMAND_BUFFER_SERVICE_TEST_HELPER_H_