OLD | NEW |
(Empty) | |
| 1 // 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 #include "ui/gl/gl_stub_api.h" |
| 6 |
| 7 namespace gl { |
| 8 |
| 9 namespace { |
| 10 |
| 11 void GenHelper(GLsizei count, GLuint* objects) { |
| 12 for (GLsizei i = 0; i < count; ++i) |
| 13 objects[i] = i + 1; |
| 14 } |
| 15 |
| 16 } // anonymous namespace |
| 17 |
| 18 GLenum GLStubApi::glCheckFramebufferStatusEXTFn(GLenum target) { |
| 19 return GL_FRAMEBUFFER_COMPLETE; |
| 20 } |
| 21 |
| 22 GLuint GLStubApi::glCreateProgramFn(void) { |
| 23 return 1; |
| 24 } |
| 25 |
| 26 GLuint GLStubApi::glCreateShaderFn(GLenum type) { |
| 27 return 2; |
| 28 } |
| 29 |
| 30 GLsync GLStubApi::glFenceSyncFn(GLenum condition, GLbitfield flags) { |
| 31 return reinterpret_cast<GLsync>(1); |
| 32 } |
| 33 |
| 34 void GLStubApi::glGenBuffersARBFn(GLsizei n, GLuint* buffers) { |
| 35 GenHelper(n, buffers); |
| 36 } |
| 37 |
| 38 void GLStubApi::glGenerateMipmapEXTFn(GLenum target) {} |
| 39 |
| 40 void GLStubApi::glGenFencesAPPLEFn(GLsizei n, GLuint* fences) { |
| 41 GenHelper(n, fences); |
| 42 } |
| 43 |
| 44 void GLStubApi::glGenFencesNVFn(GLsizei n, GLuint* fences) { |
| 45 GenHelper(n, fences); |
| 46 } |
| 47 |
| 48 void GLStubApi::glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) { |
| 49 GenHelper(n, framebuffers); |
| 50 } |
| 51 |
| 52 GLuint GLStubApi::glGenPathsNVFn(GLsizei range) { |
| 53 return 1; |
| 54 } |
| 55 |
| 56 void GLStubApi::glGenQueriesFn(GLsizei n, GLuint* ids) { |
| 57 GenHelper(n, ids); |
| 58 } |
| 59 |
| 60 void GLStubApi::glGenRenderbuffersEXTFn(GLsizei n, GLuint* renderbuffers) { |
| 61 GenHelper(n, renderbuffers); |
| 62 } |
| 63 |
| 64 void GLStubApi::glGenSamplersFn(GLsizei n, GLuint* samplers) { |
| 65 GenHelper(n, samplers); |
| 66 } |
| 67 |
| 68 void GLStubApi::glGenTexturesFn(GLsizei n, GLuint* textures) { |
| 69 GenHelper(n, textures); |
| 70 } |
| 71 |
| 72 void GLStubApi::glGenTransformFeedbacksFn(GLsizei n, GLuint* ids) { |
| 73 GenHelper(n, ids); |
| 74 } |
| 75 |
| 76 void GLStubApi::glGenVertexArraysOESFn(GLsizei n, GLuint* arrays) { |
| 77 GenHelper(n, arrays); |
| 78 } |
| 79 |
| 80 void GLStubApi::glGetIntegervFn(GLenum pname, GLint* params) { |
| 81 // We need some values to be large enough to initialize ContextGroup. |
| 82 switch (pname) { |
| 83 default: |
| 84 *params = 1; |
| 85 break; |
| 86 case GL_MAX_RENDERBUFFER_SIZE: |
| 87 *params = 512; |
| 88 break; |
| 89 case GL_MAX_SAMPLES: |
| 90 *params = 4; |
| 91 break; |
| 92 case GL_MAX_COLOR_ATTACHMENTS_EXT: |
| 93 *params = 4; |
| 94 break; |
| 95 case GL_MAX_DRAW_BUFFERS_ARB: |
| 96 *params = 4; |
| 97 break; |
| 98 case GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: |
| 99 *params = 4; |
| 100 break; |
| 101 case GL_MAX_UNIFORM_BUFFER_BINDINGS: |
| 102 *params = 24; |
| 103 break; |
| 104 case GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT: |
| 105 *params = 256; |
| 106 break; |
| 107 case GL_MAX_VERTEX_ATTRIBS: |
| 108 *params = 8; |
| 109 break; |
| 110 case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: |
| 111 *params = 8; |
| 112 break; |
| 113 case GL_MAX_TEXTURE_IMAGE_UNITS: |
| 114 *params = 8; |
| 115 break; |
| 116 case GL_MAX_TEXTURE_SIZE: |
| 117 *params = 2048; |
| 118 break; |
| 119 case GL_MAX_CUBE_MAP_TEXTURE_SIZE: |
| 120 *params = 2048; |
| 121 break; |
| 122 case GL_MAX_3D_TEXTURE_SIZE: |
| 123 *params = 256; |
| 124 break; |
| 125 case GL_MAX_ARRAY_TEXTURE_LAYERS: |
| 126 *params = 256; |
| 127 break; |
| 128 case GL_MAX_VARYING_VECTORS: |
| 129 *params = 8; |
| 130 break; |
| 131 case GL_MAX_VERTEX_UNIFORM_VECTORS: |
| 132 *params = 128; |
| 133 break; |
| 134 case GL_MAX_FRAGMENT_UNIFORM_VECTORS: |
| 135 *params = 16; |
| 136 break; |
| 137 case GL_MAX_VERTEX_OUTPUT_COMPONENTS: |
| 138 *params = 64; |
| 139 break; |
| 140 case GL_MAX_FRAGMENT_INPUT_COMPONENTS: |
| 141 *params = 60; |
| 142 break; |
| 143 case GL_MAX_PROGRAM_TEXEL_OFFSET: |
| 144 *params = 7; |
| 145 break; |
| 146 case GL_MIN_PROGRAM_TEXEL_OFFSET: |
| 147 *params = -8; |
| 148 break; |
| 149 case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: |
| 150 *params = 32; |
| 151 break; |
| 152 case GL_MAX_VIEWPORT_DIMS: |
| 153 *params = 1024 << 8; |
| 154 break; |
| 155 case GL_ALPHA_BITS: |
| 156 *params = 8; |
| 157 break; |
| 158 case GL_DEPTH_BITS: |
| 159 *params = 24; |
| 160 break; |
| 161 case GL_STENCIL_BITS: |
| 162 *params = 8; |
| 163 break; |
| 164 case GL_TEXTURE_BINDING_2D: |
| 165 *params = 1; |
| 166 break; |
| 167 case GL_FRAMEBUFFER_BINDING: |
| 168 *params = 1; |
| 169 break; |
| 170 case GL_IMPLEMENTATION_COLOR_READ_TYPE: |
| 171 *params = GL_UNSIGNED_BYTE; |
| 172 break; |
| 173 case GL_IMPLEMENTATION_COLOR_READ_FORMAT: |
| 174 *params = GL_RGBA; |
| 175 break; |
| 176 } |
| 177 } |
| 178 |
| 179 void GLStubApi::glGetProgramivFn(GLuint program, GLenum pname, GLint* params) { |
| 180 switch (pname) { |
| 181 case GL_LINK_STATUS: |
| 182 *params = GL_TRUE; |
| 183 break; |
| 184 case GL_VALIDATE_STATUS: |
| 185 *params = GL_TRUE; |
| 186 break; |
| 187 default: |
| 188 break; |
| 189 } |
| 190 } |
| 191 |
| 192 void GLStubApi::glGetShaderivFn(GLuint shader, GLenum pname, GLint* params) { |
| 193 switch (pname) { |
| 194 case GL_COMPILE_STATUS: |
| 195 *params = GL_TRUE; |
| 196 break; |
| 197 default: |
| 198 break; |
| 199 } |
| 200 } |
| 201 |
| 202 const GLubyte* GLStubApi::glGetStringFn(GLenum name) { |
| 203 switch (name) { |
| 204 case GL_RENDERER: |
| 205 default: |
| 206 return reinterpret_cast<const GLubyte*>(""); |
| 207 case GL_VERSION: |
| 208 return reinterpret_cast<const GLubyte*>("OpenGL ES 3.0"); |
| 209 case GL_EXTENSIONS: |
| 210 return reinterpret_cast<const GLubyte*>("GL_EXT_framebuffer_object"); |
| 211 } |
| 212 } |
| 213 |
| 214 const GLubyte* GLStubApi::glGetStringiFn(GLenum name, GLuint index) { |
| 215 return reinterpret_cast<const GLubyte*>(""); |
| 216 } |
| 217 |
| 218 GLboolean GLStubApi::glIsBufferFn(GLuint buffer) { |
| 219 return GL_TRUE; |
| 220 } |
| 221 |
| 222 GLboolean GLStubApi::glIsEnabledFn(GLenum cap) { |
| 223 return GL_TRUE; |
| 224 } |
| 225 |
| 226 GLboolean GLStubApi::glIsFenceAPPLEFn(GLuint fence) { |
| 227 return GL_TRUE; |
| 228 } |
| 229 |
| 230 GLboolean GLStubApi::glIsFenceNVFn(GLuint fence) { |
| 231 return GL_TRUE; |
| 232 } |
| 233 |
| 234 GLboolean GLStubApi::glIsFramebufferEXTFn(GLuint framebuffer) { |
| 235 return GL_TRUE; |
| 236 } |
| 237 |
| 238 GLboolean GLStubApi::glIsPathNVFn(GLuint path) { |
| 239 return GL_TRUE; |
| 240 } |
| 241 |
| 242 GLboolean GLStubApi::glIsProgramFn(GLuint program) { |
| 243 return GL_TRUE; |
| 244 } |
| 245 |
| 246 GLboolean GLStubApi::glIsQueryFn(GLuint query) { |
| 247 return GL_TRUE; |
| 248 } |
| 249 |
| 250 GLboolean GLStubApi::glIsRenderbufferEXTFn(GLuint renderbuffer) { |
| 251 return GL_TRUE; |
| 252 } |
| 253 |
| 254 GLboolean GLStubApi::glIsSamplerFn(GLuint sampler) { |
| 255 return GL_TRUE; |
| 256 } |
| 257 |
| 258 GLboolean GLStubApi::glIsShaderFn(GLuint shader) { |
| 259 return GL_TRUE; |
| 260 } |
| 261 |
| 262 GLboolean GLStubApi::glIsSyncFn(GLsync sync) { |
| 263 return GL_TRUE; |
| 264 } |
| 265 |
| 266 GLboolean GLStubApi::glIsTextureFn(GLuint texture) { |
| 267 return GL_TRUE; |
| 268 } |
| 269 |
| 270 GLboolean GLStubApi::glIsTransformFeedbackFn(GLuint id) { |
| 271 return GL_TRUE; |
| 272 } |
| 273 |
| 274 GLboolean GLStubApi::glIsVertexArrayOESFn(GLuint array) { |
| 275 return GL_TRUE; |
| 276 } |
| 277 |
| 278 GLboolean GLStubApi::glTestFenceAPPLEFn(GLuint fence) { |
| 279 return GL_TRUE; |
| 280 } |
| 281 |
| 282 GLboolean GLStubApi::glTestFenceNVFn(GLuint fence) { |
| 283 return GL_TRUE; |
| 284 } |
| 285 |
| 286 GLboolean GLStubApi::glUnmapBufferFn(GLenum target) { |
| 287 return GL_TRUE; |
| 288 } |
| 289 |
| 290 GLenum GLStubApi::glWaitSyncFn(GLsync sync, |
| 291 GLbitfield flags, |
| 292 GLuint64 timeout) { |
| 293 return GL_TRUE; |
| 294 } |
| 295 |
| 296 } // namespace gl |
OLD | NEW |