// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_TEST_TEST_GLES2_INTERFACE_H_ #define CC_TEST_TEST_GLES2_INTERFACE_H_ #include "gpu/command_buffer/client/gles2_interface_stub.h" namespace cc { class TestWebGraphicsContext3D; class TestGLES2Interface : public gpu::gles2::GLES2InterfaceStub { public: explicit TestGLES2Interface(TestWebGraphicsContext3D* test_context); ~TestGLES2Interface() override; void GenTextures(GLsizei n, GLuint* textures) override; void GenBuffers(GLsizei n, GLuint* buffers) override; void GenFramebuffers(GLsizei n, GLuint* framebuffers) override; void GenRenderbuffers(GLsizei n, GLuint* renderbuffers) override; void GenQueriesEXT(GLsizei n, GLuint* queries) override; void DeleteTextures(GLsizei n, const GLuint* textures) override; void DeleteBuffers(GLsizei n, const GLuint* buffers) override; void DeleteFramebuffers(GLsizei n, const GLuint* framebuffers) override; void DeleteQueriesEXT(GLsizei n, const GLuint* queries) override; GLuint CreateShader(GLenum type) override; GLuint CreateProgram() override; void BindTexture(GLenum target, GLuint texture) override; void GetIntegerv(GLenum pname, GLint* params) override; void GetShaderiv(GLuint shader, GLenum pname, GLint* params) override; void GetProgramiv(GLuint program, GLenum pname, GLint* params) override; void GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) override; GLenum CheckFramebufferStatus(GLenum target) override; void ActiveTexture(GLenum target) override; void Viewport(GLint x, GLint y, GLsizei width, GLsizei height) override; void UseProgram(GLuint program) override; void Scissor(GLint x, GLint y, GLsizei width, GLsizei height) override; void DrawElements(GLenum mode, GLsizei count, GLenum type, const void* indices) override; void ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) override; void ClearStencil(GLint s) override; void Clear(GLbitfield mask) override; void Flush() override; void Finish() override; void ShallowFinishCHROMIUM() override; void ShallowFlushCHROMIUM() override; void Enable(GLenum cap) override; void Disable(GLenum cap) override; void BindBuffer(GLenum target, GLuint buffer) override; void BindRenderbuffer(GLenum target, GLuint buffer) override; void BindFramebuffer(GLenum target, GLuint buffer) override; void PixelStorei(GLenum pname, GLint param) override; void TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels) override; void TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels) override; void TexStorage2DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) override; void TexImageIOSurface2DCHROMIUM(GLenum target, GLsizei width, GLsizei height, GLuint io_surface_id, GLuint plane) override; void TexParameteri(GLenum target, GLenum pname, GLint param) override; void AsyncTexImage2DCHROMIUM(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels) override; void AsyncTexSubImage2DCHROMIUM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels) override; void CompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei image_size, const void* data) override; void WaitAsyncTexImage2DCHROMIUM(GLenum target) override; GLuint CreateImageCHROMIUM(ClientBuffer buffer, GLsizei width, GLsizei height, GLenum internalformat) override; void DestroyImageCHROMIUM(GLuint image_id) override; GLuint CreateGpuMemoryBufferImageCHROMIUM(GLsizei width, GLsizei height, GLenum internalformat, GLenum usage) override; void BindTexImage2DCHROMIUM(GLenum target, GLint image_id) override; void ReleaseTexImage2DCHROMIUM(GLenum target, GLint image_id) override; void FramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) override; void FramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) override; void RenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) override; void* MapBufferCHROMIUM(GLuint target, GLenum access) override; GLboolean UnmapBufferCHROMIUM(GLuint target) override; void BufferData(GLenum target, GLsizeiptr size, const void* data, GLenum usage) override; void WaitSyncPointCHROMIUM(GLuint sync_point) override; GLuint InsertSyncPointCHROMIUM() override; void BeginQueryEXT(GLenum target, GLuint id) override; void EndQueryEXT(GLenum target) override; void GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params) override; void DiscardFramebufferEXT(GLenum target, GLsizei count, const GLenum* attachments) override; void GenMailboxCHROMIUM(GLbyte* mailbox) override; void ProduceTextureCHROMIUM(GLenum target, const GLbyte* mailbox) override; void ProduceTextureDirectCHROMIUM(GLuint texture, GLenum target, const GLbyte* mailbox) override; void ConsumeTextureCHROMIUM(GLenum target, const GLbyte* mailbox) override; GLuint CreateAndConsumeTextureCHROMIUM(GLenum target, const GLbyte* mailbox) override; void ResizeCHROMIUM(GLuint width, GLuint height, float device_scale) override; void LoseContextCHROMIUM(GLenum current, GLenum other) override; GLenum GetGraphicsResetStatusKHR() override; private: TestWebGraphicsContext3D* test_context_; }; } // namespace cc #endif // CC_TEST_TEST_GLES2_INTERFACE_H_