Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / gpu / command_buffer / service / test_helper.h
blobd0ae758aae77892c4e20e1872b25af688c3ad609
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"
11 namespace gpu {
12 namespace gles2 {
14 struct DisallowedFeatures;
15 class Buffer;
16 class BufferManager;
17 class MockErrorState;
18 class TextureRef;
19 class TextureManager;
21 class TestHelper {
22 public:
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;
48 struct AttribInfo {
49 const char* name;
50 GLint size;
51 GLenum type;
52 GLint location;
55 struct UniformInfo {
56 const char* name;
57 GLint size;
58 GLenum type;
59 GLint fake_location;
60 GLint real_location;
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,
93 GLuint service_id);
95 static void SetupProgramSuccessExpectations(::gfx::MockGLInterface* gl,
96 AttribInfo* attribs, size_t num_attribs,
97 UniformInfo* uniforms, size_t num_uniforms,
98 GLuint service_id);
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);
110 private:
111 static void SetupTextureInitializationExpectations(::gfx::MockGLInterface* gl,
112 GLenum target,
113 bool use_default_textures);
114 static void SetupTextureDestructionExpectations(::gfx::MockGLInterface* gl,
115 GLenum target,
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 {
123 public:
124 explicit ScopedGLImplementationSetter(gfx::GLImplementation implementation);
125 ~ScopedGLImplementationSetter();
127 private:
128 gfx::GLImplementation old_implementation_;
131 } // namespace gles2
132 } // namespace gpu
134 #endif // GPU_COMMAND_BUFFER_SERVICE_TEST_HELPER_H_