blob: 3b3babaced4bbd0b41978ccf8bcf73ce898116ac [file] [log] [blame]
pimanaa595d832016-07-13 20:26:451// Copyright 2016 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 UI_GL_GL_STUB_API_H_
6#define UI_GL_GL_STUB_API_H_
7
piman0e257552016-09-02 22:33:188#include <string>
9
pimanaa595d832016-07-13 20:26:4510#include "ui/gl/gl_export.h"
11#include "ui/gl/gl_stub_api_base.h"
12
13namespace gl {
14
15class GL_EXPORT GLStubApi: public GLStubApiBase {
16 public:
piman0e257552016-09-02 22:33:1817 GLStubApi();
18 ~GLStubApi() override;
19
20 void set_version(std::string version) { version_ = std::move(version); }
21
22 void set_extensions(std::string extensions) {
23 extensions_ = std::move(extensions);
24 }
25
pimanaa595d832016-07-13 20:26:4526 GLenum glCheckFramebufferStatusEXTFn(GLenum target) override;
27 GLuint glCreateProgramFn(void) override;
28 GLuint glCreateShaderFn(GLenum type) override;
29 GLsync glFenceSyncFn(GLenum condition, GLbitfield flags) override;
30 void glGenBuffersARBFn(GLsizei n, GLuint* buffers) override;
31 void glGenerateMipmapEXTFn(GLenum target) override;
32 void glGenFencesAPPLEFn(GLsizei n, GLuint* fences) override;
33 void glGenFencesNVFn(GLsizei n, GLuint* fences) override;
34 void glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) override;
35 GLuint glGenPathsNVFn(GLsizei range) override;
36 void glGenQueriesFn(GLsizei n, GLuint* ids) override;
37 void glGenRenderbuffersEXTFn(GLsizei n, GLuint* renderbuffers) override;
38 void glGenSamplersFn(GLsizei n, GLuint* samplers) override;
39 void glGenTexturesFn(GLsizei n, GLuint* textures) override;
40 void glGenTransformFeedbacksFn(GLsizei n, GLuint* ids) override;
41 void glGenVertexArraysOESFn(GLsizei n, GLuint* arrays) override;
42 void glGetIntegervFn(GLenum pname, GLint* params) override;
43 void glGetProgramivFn(GLuint program, GLenum pname, GLint* params) override;
44 void glGetShaderivFn(GLuint shader, GLenum pname, GLint* params) override;
pimanea3d83f2017-03-16 23:50:0145 void glGetQueryObjecti64vFn(GLuint id,
46 GLenum pname,
47 GLint64* params) override;
48 void glGetQueryObjectivFn(GLuint id, GLenum pname, GLint* params) override;
49 void glGetQueryObjectui64vFn(GLuint id,
50 GLenum pname,
51 GLuint64* params) override;
52 void glGetQueryObjectuivFn(GLuint id, GLenum pname, GLuint* params) override;
pimanaa595d832016-07-13 20:26:4553 const GLubyte* glGetStringFn(GLenum name) override;
54 const GLubyte* glGetStringiFn(GLenum name, GLuint index) override;
55 GLboolean glIsBufferFn(GLuint buffer) override;
56 GLboolean glIsEnabledFn(GLenum cap) override;
57 GLboolean glIsFenceAPPLEFn(GLuint fence) override;
58 GLboolean glIsFenceNVFn(GLuint fence) override;
59 GLboolean glIsFramebufferEXTFn(GLuint framebuffer) override;
60 GLboolean glIsPathNVFn(GLuint path) override;
61 GLboolean glIsProgramFn(GLuint program) override;
62 GLboolean glIsQueryFn(GLuint query) override;
63 GLboolean glIsRenderbufferEXTFn(GLuint renderbuffer) override;
64 GLboolean glIsSamplerFn(GLuint sampler) override;
65 GLboolean glIsShaderFn(GLuint shader) override;
66 GLboolean glIsSyncFn(GLsync sync) override;
67 GLboolean glIsTextureFn(GLuint texture) override;
68 GLboolean glIsTransformFeedbackFn(GLuint id) override;
69 GLboolean glIsVertexArrayOESFn(GLuint array) override;
70 GLboolean glTestFenceAPPLEFn(GLuint fence) override;
71 GLboolean glTestFenceNVFn(GLuint fence) override;
72 GLboolean glUnmapBufferFn(GLenum target) override;
piman0e257552016-09-02 22:33:1873
74 private:
Jonathan Backerc7933dd2019-03-14 19:22:0075 // The only consumers of GLStubApi are GpuChannelTestCommon (gpu_unittests)
76 // and GPU fuzzers. We get a new GLStubApi for every case executed by
77 // fuzzers, so we don't have to worry about ID exhaustion.
78 void GenHelper(GLsizei count, GLuint* objects) {
79 for (GLsizei i = 0; i < count; ++i)
80 objects[i] = next_id_++;
81 }
82
piman0e257552016-09-02 22:33:1883 std::string version_;
84 std::string extensions_;
Jonathan Backerc7933dd2019-03-14 19:22:0085 GLuint next_id_ = 1;
piman0e257552016-09-02 22:33:1886
87 DISALLOW_COPY_AND_ASSIGN(GLStubApi);
pimanaa595d832016-07-13 20:26:4588};
89
90} // namespace gl
91
92#endif // UI_GL_GL_STUB_API_H_