123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- // Copyright (c) 2012 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.
- // This file implements mock GL Interface for unit testing. The interface
- // corresponds to the set of functionally distinct GL functions defined in
- // generate_bindings.py, which may originate from either desktop GL or GLES.
- #ifndef UI_GL_GL_MOCK_H_
- #define UI_GL_GL_MOCK_H_
- #include "base/notreached.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "ui/gl/gl_bindings.h"
- namespace gl {
- using GLFunctionPointerType = void (*)();
- class MockGLInterface {
- public:
- MockGLInterface();
- virtual ~MockGLInterface();
- // Set the functions called from the mock GL implementation for the purposes
- // of testing.
- static void SetGLInterface(MockGLInterface* gl_interface);
- // Find an entry point to the mock GL implementation.
- static GLFunctionPointerType GL_BINDING_CALL
- GetGLProcAddress(const char* name);
- // Include the auto-generated parts of this class. We split this because
- // it means we can easily edit the non-auto generated parts right here in
- // this file instead of having to edit some template or the code generator.
- // Member functions
- #include "gl_mock_autogen_gl.h"
- // TODO(zmo): crbug.com/456340
- // Functions that cannot be mocked because they have more than 10 args.
- void CompressedTexSubImage3D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLenum format,
- GLsizei image_size,
- const void* data) {
- if (data == nullptr) {
- CompressedTexSubImage3DNoData(target, level, xoffset, yoffset, zoffset,
- width, height, depth, format, image_size);
- } else {
- CompressedTexSubImage3DWithData(target, level, xoffset, yoffset, zoffset,
- width, height, depth, format, image_size);
- }
- }
- void ClearTexSubImage(GLuint texture,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLint width,
- GLint height,
- GLint depth,
- GLenum format,
- GLenum type,
- const GLvoid* data) {
- NOTREACHED();
- }
- MOCK_METHOD10(CompressedTexSubImage3DNoData,
- void(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLenum format,
- GLsizei image_size));
- MOCK_METHOD10(CompressedTexSubImage3DWithData,
- void(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLenum format,
- GLsizei image_size));
- void CompressedTexSubImage3DRobustANGLE(GLenum /*target*/,
- GLint /*level*/,
- GLint /*xoffset*/,
- GLint /*yoffset*/,
- GLint /*zoffset*/,
- GLsizei /*width*/,
- GLsizei /*height*/,
- GLsizei /*depth*/,
- GLenum /*format*/,
- GLsizei /*imageSize*/,
- GLsizei /*dataSize*/,
- const void* /*data*/) {
- NOTREACHED();
- }
- void CopySubTextureCHROMIUM(GLuint /*sourceId*/,
- GLint /*sourceLevel*/,
- GLenum /*destTarget*/,
- GLuint /*destId*/,
- GLint /*destLevel*/,
- GLint /*xoffset*/,
- GLint /*yoffset*/,
- GLint /*x*/,
- GLint /*y*/,
- GLsizei /*width*/,
- GLsizei /*height*/,
- GLboolean /*unpackFlipY*/,
- GLboolean /*unpackPremultiplyAlpha*/,
- GLboolean /*unpackUnmultiplyAlpha*/) {
- NOTREACHED();
- }
- void TexImage3DRobustANGLE(GLenum target,
- GLint level,
- GLint internalformat,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLint border,
- GLenum format,
- GLenum type,
- GLsizei bufSize,
- const void* pixels) {
- NOTREACHED();
- }
- void TexSubImage3D(
- GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
- GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
- const void* pixels) {
- if (pixels == nullptr) {
- TexSubImage3DNoData(target, level, xoffset, yoffset, zoffset,
- width, height, depth, format, type);
- } else {
- TexSubImage3DWithData(target, level, xoffset, yoffset, zoffset, width,
- height, depth, format, type);
- }
- }
- void TexSubImage3DRobustANGLE(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLenum format,
- GLenum type,
- GLsizei bufSize,
- const void* pixels) {
- NOTREACHED();
- }
- MOCK_METHOD10(TexSubImage3DNoData,
- void(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLenum format,
- GLenum type));
- MOCK_METHOD10(TexSubImage3DWithData,
- void(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLenum format,
- GLenum type));
- void ReadPixelsRobustANGLE(GLint /*x*/,
- GLint /*y*/,
- GLsizei /*width*/,
- GLsizei /*height*/,
- GLenum /*format*/,
- GLenum /*type*/,
- GLsizei /*bufSize*/,
- GLsizei* /*length*/,
- GLsizei* /*columns*/,
- GLsizei* /*rows*/,
- void* /*pixels*/) {
- NOTREACHED();
- }
- void ReadnPixelsRobustANGLE(GLint /*x*/,
- GLint /*y*/,
- GLsizei /*width*/,
- GLsizei /*height*/,
- GLenum /*format*/,
- GLenum /*type*/,
- GLsizei /*bufSize*/,
- GLsizei* /*length*/,
- GLsizei* /*columns*/,
- GLsizei* /*rows*/,
- void* /*data*/) {
- NOTREACHED();
- }
- private:
- static MockGLInterface* interface_;
- // Static mock functions that invoke the member functions of interface_.
- #include "gl_bindings_autogen_mock.h"
- static void GL_BINDING_CALL Mock_glTexSubImage3DNoData(
- GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
- GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type);
- };
- } // namespace gl
- #endif // UI_GL_GL_MOCK_H_
|