1// Copyright 2013 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#ifndef CC_TEST_TEST_GLES2_INTERFACE_H_
6#define CC_TEST_TEST_GLES2_INTERFACE_H_
7
8#include "gpu/command_buffer/client/gles2_interface_stub.h"
9
10namespace cc {
11class TestWebGraphicsContext3D;
12
13class TestGLES2Interface : public gpu::gles2::GLES2InterfaceStub {
14 public:
15  explicit TestGLES2Interface(TestWebGraphicsContext3D* test_context);
16  virtual ~TestGLES2Interface();
17
18  virtual void GenTextures(GLsizei n, GLuint* textures) OVERRIDE;
19  virtual void GenBuffers(GLsizei n, GLuint* buffers) OVERRIDE;
20  virtual void GenFramebuffers(GLsizei n, GLuint* framebuffers) OVERRIDE;
21  virtual void GenRenderbuffers(GLsizei n, GLuint* renderbuffers) OVERRIDE;
22  virtual void GenQueriesEXT(GLsizei n, GLuint* queries) OVERRIDE;
23
24  virtual void DeleteTextures(GLsizei n, const GLuint* textures) OVERRIDE;
25  virtual void DeleteBuffers(GLsizei n, const GLuint* buffers) OVERRIDE;
26  virtual void DeleteFramebuffers(GLsizei n,
27                                  const GLuint* framebuffers) OVERRIDE;
28  virtual void DeleteQueriesEXT(GLsizei n, const GLuint* queries) OVERRIDE;
29
30  virtual GLuint CreateShader(GLenum type) OVERRIDE;
31  virtual GLuint CreateProgram() OVERRIDE;
32
33  virtual void BindTexture(GLenum target, GLuint texture) OVERRIDE;
34
35  virtual void GetIntegerv(GLenum pname, GLint* params) OVERRIDE;
36  virtual void GetShaderiv(GLuint shader, GLenum pname, GLint* params) OVERRIDE;
37  virtual void GetProgramiv(GLuint program,
38                            GLenum pname,
39                            GLint* params) OVERRIDE;
40  virtual void GetShaderPrecisionFormat(GLenum shadertype,
41                                        GLenum precisiontype,
42                                        GLint* range,
43                                        GLint* precision) OVERRIDE;
44  virtual GLenum CheckFramebufferStatus(GLenum target) OVERRIDE;
45
46  virtual void ActiveTexture(GLenum target) OVERRIDE;
47  virtual void Viewport(GLint x, GLint y, GLsizei width, GLsizei height)
48      OVERRIDE;
49  virtual void UseProgram(GLuint program) OVERRIDE;
50  virtual void Scissor(GLint x, GLint y, GLsizei width, GLsizei height)
51      OVERRIDE;
52  virtual void DrawElements(GLenum mode,
53                            GLsizei count,
54                            GLenum type,
55                            const void* indices) OVERRIDE;
56  virtual void ClearColor(GLclampf red,
57                          GLclampf green,
58                          GLclampf blue,
59                          GLclampf alpha) OVERRIDE;
60  virtual void ClearStencil(GLint s) OVERRIDE;
61  virtual void Clear(GLbitfield mask) OVERRIDE;
62  virtual void Flush() OVERRIDE;
63  virtual void Finish() OVERRIDE;
64  virtual void ShallowFlushCHROMIUM() OVERRIDE;
65  virtual void Enable(GLenum cap) OVERRIDE;
66  virtual void Disable(GLenum cap) OVERRIDE;
67
68  virtual void BindBuffer(GLenum target, GLuint buffer) OVERRIDE;
69  virtual void BindRenderbuffer(GLenum target, GLuint buffer) OVERRIDE;
70  virtual void BindFramebuffer(GLenum target, GLuint buffer) OVERRIDE;
71
72  virtual void TexImage2D(GLenum target,
73                          GLint level,
74                          GLint internalformat,
75                          GLsizei width,
76                          GLsizei height,
77                          GLint border,
78                          GLenum format,
79                          GLenum type,
80                          const void* pixels) OVERRIDE;
81  virtual void TexSubImage2D(GLenum target,
82                             GLint level,
83                             GLint xoffset,
84                             GLint yoffset,
85                             GLsizei width,
86                             GLsizei height,
87                             GLenum format,
88                             GLenum type,
89                             const void* pixels) OVERRIDE;
90  virtual void TexStorage2DEXT(GLenum target,
91                               GLsizei levels,
92                               GLenum internalformat,
93                               GLsizei width,
94                               GLsizei height) OVERRIDE;
95  virtual void TexImageIOSurface2DCHROMIUM(GLenum target,
96                                           GLsizei width,
97                                           GLsizei height,
98                                           GLuint io_surface_id,
99                                           GLuint plane) OVERRIDE;
100  virtual void TexParameteri(GLenum target, GLenum pname, GLint param) OVERRIDE;
101
102  virtual void AsyncTexImage2DCHROMIUM(GLenum target,
103                                       GLint level,
104                                       GLenum internalformat,
105                                       GLsizei width,
106                                       GLsizei height,
107                                       GLint border,
108                                       GLenum format,
109                                       GLenum type,
110                                       const void* pixels) OVERRIDE;
111  virtual void AsyncTexSubImage2DCHROMIUM(GLenum target,
112                                          GLint level,
113                                          GLint xoffset,
114                                          GLint yoffset,
115                                          GLsizei width,
116                                          GLsizei height,
117                                          GLenum format,
118                                          GLenum type,
119                                          const void* pixels) OVERRIDE;
120  virtual void CompressedTexImage2D(GLenum target,
121                                    GLint level,
122                                    GLenum internalformat,
123                                    GLsizei width,
124                                    GLsizei height,
125                                    GLint border,
126                                    GLsizei image_size,
127                                    const void* data) OVERRIDE;
128  virtual void WaitAsyncTexImage2DCHROMIUM(GLenum target) OVERRIDE;
129  virtual GLuint CreateImageCHROMIUM(GLsizei width,
130                                     GLsizei height,
131                                     GLenum internalformat,
132                                     GLenum usage) OVERRIDE;
133  virtual void DestroyImageCHROMIUM(GLuint image_id) OVERRIDE;
134  virtual void* MapImageCHROMIUM(GLuint image_id) OVERRIDE;
135  virtual void GetImageParameterivCHROMIUM(GLuint image_id,
136                                           GLenum pname,
137                                           GLint* params) OVERRIDE;
138  virtual void UnmapImageCHROMIUM(GLuint image_id) OVERRIDE;
139  virtual void BindTexImage2DCHROMIUM(GLenum target, GLint image_id) OVERRIDE;
140  virtual void ReleaseTexImage2DCHROMIUM(GLenum target,
141                                         GLint image_id) OVERRIDE;
142  virtual void FramebufferRenderbuffer(GLenum target,
143                                       GLenum attachment,
144                                       GLenum renderbuffertarget,
145                                       GLuint renderbuffer) OVERRIDE;
146  virtual void FramebufferTexture2D(GLenum target,
147                                    GLenum attachment,
148                                    GLenum textarget,
149                                    GLuint texture,
150                                    GLint level) OVERRIDE;
151  virtual void RenderbufferStorage(GLenum target,
152                                   GLenum internalformat,
153                                   GLsizei width,
154                                   GLsizei height) OVERRIDE;
155
156  virtual void* MapBufferCHROMIUM(GLuint target, GLenum access) OVERRIDE;
157  virtual GLboolean UnmapBufferCHROMIUM(GLuint target) OVERRIDE;
158  virtual void BufferData(GLenum target,
159                          GLsizeiptr size,
160                          const void* data,
161                          GLenum usage) OVERRIDE;
162
163  virtual void WaitSyncPointCHROMIUM(GLuint sync_point) OVERRIDE;
164  virtual GLuint InsertSyncPointCHROMIUM() OVERRIDE;
165
166  virtual void BeginQueryEXT(GLenum target, GLuint id) OVERRIDE;
167  virtual void EndQueryEXT(GLenum target) OVERRIDE;
168  virtual void GetQueryObjectuivEXT(GLuint id,
169                                    GLenum pname,
170                                    GLuint* params) OVERRIDE;
171
172  virtual void DiscardFramebufferEXT(GLenum target,
173                                     GLsizei count,
174                                     const GLenum* attachments) OVERRIDE;
175  virtual void GenMailboxCHROMIUM(GLbyte* mailbox) OVERRIDE;
176  virtual void ProduceTextureCHROMIUM(GLenum target,
177                                      const GLbyte* mailbox) OVERRIDE;
178  virtual void ProduceTextureDirectCHROMIUM(GLuint texture,
179                                            GLenum target,
180                                            const GLbyte* mailbox) OVERRIDE;
181  virtual void ConsumeTextureCHROMIUM(GLenum target,
182                                      const GLbyte* mailbox) OVERRIDE;
183  virtual GLuint CreateAndConsumeTextureCHROMIUM(
184      GLenum target,
185      const GLbyte* mailbox) OVERRIDE;
186
187  virtual void ResizeCHROMIUM(GLuint width,
188                              GLuint height,
189                              float device_scale) OVERRIDE;
190  virtual void LoseContextCHROMIUM(GLenum current, GLenum other) OVERRIDE;
191
192 private:
193  TestWebGraphicsContext3D* test_context_;
194};
195
196}  // namespace cc
197
198#endif  // CC_TEST_TEST_GLES2_INTERFACE_H_
199