1 /* 2 * Copyright 2013 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef GrGLNoOpInterface_DEFINED 9 #define GrGLNoOpInterface_DEFINED 10 11 #include "gl/GrGLDefines.h" 12 #include "gl/GrGLFunctions.h" 13 14 // These are constants/functions that are common to the Null and Debug GL interface implementations. 15 16 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlendColor(GrGLclampf red, 17 GrGLclampf green, 18 GrGLclampf blue, 19 GrGLclampf alpha); 20 21 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBindFragDataLocation(GrGLuint program, 22 GrGLuint colorNumber, 23 const GrGLchar* name); 24 25 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlendFunc(GrGLenum sfactor, 26 GrGLenum dfactor); 27 28 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBufferSubData(GrGLenum target, 29 GrGLintptr offset, 30 GrGLsizeiptr size, 31 const GrGLvoid* data); 32 33 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLClear(GrGLbitfield mask); 34 35 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLClearColor(GrGLclampf red, 36 GrGLclampf green, 37 GrGLclampf blue, 38 GrGLclampf alpha); 39 40 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLClearStencil(GrGLint s); 41 42 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLColorMask(GrGLboolean red, 43 GrGLboolean green, 44 GrGLboolean blue, 45 GrGLboolean alpha); 46 47 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCompileShader(GrGLuint shader); 48 49 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCompressedTexImage2D(GrGLenum target, 50 GrGLint level, 51 GrGLenum internalformat, 52 GrGLsizei width, 53 GrGLsizei height, 54 GrGLint border, 55 GrGLsizei imageSize, 56 const GrGLvoid* data); 57 58 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCopyTexSubImage2D(GrGLenum target, 59 GrGLint level, 60 GrGLint xoffset, 61 GrGLint yoffset, 62 GrGLint x, 63 GrGLint y, 64 GrGLsizei width, 65 GrGLsizei height); 66 67 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCullFace(GrGLenum mode); 68 69 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDepthMask(GrGLboolean flag); 70 71 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDisable(GrGLenum cap); 72 73 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDisableClientState(GrGLenum); 74 75 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDisableVertexAttribArray(GrGLuint index); 76 77 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawArrays(GrGLenum mode, GrGLint first, GrGLsizei count); 78 79 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawBuffer(GrGLenum mode); 80 81 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawBuffers(GrGLsizei n, 82 const GrGLenum* bufs); 83 84 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawElements(GrGLenum mode, 85 GrGLsizei count, 86 GrGLenum type, 87 const GrGLvoid* indices); 88 89 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLEnable(GrGLenum cap); 90 91 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLEnableClientState(GrGLenum cap); 92 93 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLEnableVertexAttribArray(GrGLuint index); 94 95 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLEndQuery(GrGLenum target); 96 97 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLFinish(); 98 99 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLFlush(); 100 101 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLFrontFace(GrGLenum mode); 102 103 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLLoadIdentity(); 104 105 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLLoadMatrixf(const GrGLfloat*); 106 107 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLLineWidth(GrGLfloat width); 108 109 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLLinkProgram(GrGLuint program); 110 111 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLMatrixMode(GrGLenum); 112 113 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLQueryCounter(GrGLuint id, 114 GrGLenum target); 115 116 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLReadBuffer(GrGLenum src); 117 118 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLScissor(GrGLint x, 119 GrGLint y, 120 GrGLsizei width, 121 GrGLsizei height); 122 123 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLShaderSource(GrGLuint shader, 124 GrGLsizei count, 125 #if GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE 126 const char* const * str, 127 #else 128 const char** str, 129 #endif 130 const GrGLint* length); 131 132 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilFunc(GrGLenum func, GrGLint ref, GrGLuint mask); 133 134 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilFuncSeparate(GrGLenum face, 135 GrGLenum func, 136 GrGLint ref, 137 GrGLuint mask); 138 139 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilMask(GrGLuint mask); 140 141 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilMaskSeparate(GrGLenum face, GrGLuint mask); 142 143 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilOp(GrGLenum fail, GrGLenum zfail, GrGLenum zpass); 144 145 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilOpSeparate(GrGLenum face, 146 GrGLenum fail, 147 GrGLenum zfail, 148 GrGLenum zpass); 149 150 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexImage2D(GrGLenum target, 151 GrGLint level, 152 GrGLint internalformat, 153 GrGLsizei width, 154 GrGLsizei height, 155 GrGLint border, 156 GrGLenum format, 157 GrGLenum type, 158 const GrGLvoid* pixels); 159 160 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexParameteri(GrGLenum target, GrGLenum pname, GrGLint param); 161 162 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexParameteriv(GrGLenum target, 163 GrGLenum pname, 164 const GrGLint* params); 165 166 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexStorage2D(GrGLenum target, 167 GrGLsizei levels, 168 GrGLenum internalformat, 169 GrGLsizei width, 170 GrGLsizei height); 171 172 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexGenf(GrGLenum, GrGLenum, GrGLfloat); 173 174 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexGenfv(GrGLenum, GrGLenum, const GrGLfloat*); 175 176 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexGeni(GrGLenum, GrGLenum, GrGLint); 177 178 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDiscardFramebuffer(GrGLenum target, 179 GrGLsizei numAttachments, 180 const GrGLenum* attachments); 181 182 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexSubImage2D(GrGLenum target, 183 GrGLint level, 184 GrGLint xoffset, 185 GrGLint yoffset, 186 GrGLsizei width, 187 GrGLsizei height, 188 GrGLenum format, 189 GrGLenum type, 190 const GrGLvoid* pixels); 191 192 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1f(GrGLint location, GrGLfloat v0); 193 194 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1i(GrGLint location, GrGLint v0); 195 196 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1fv(GrGLint location, 197 GrGLsizei count, 198 const GrGLfloat* v); 199 200 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1iv(GrGLint location, 201 GrGLsizei count, 202 const GrGLint* v); 203 204 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2f(GrGLint location, 205 GrGLfloat v0, 206 GrGLfloat v1); 207 208 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2i(GrGLint location, GrGLint v0, GrGLint v1); 209 210 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2fv(GrGLint location, 211 GrGLsizei count, 212 const GrGLfloat* v); 213 214 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2iv(GrGLint location, 215 GrGLsizei count, 216 const GrGLint* v); 217 218 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3f(GrGLint location, 219 GrGLfloat v0, 220 GrGLfloat v1, 221 GrGLfloat v2); 222 223 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3i(GrGLint location, 224 GrGLint v0, 225 GrGLint v1, 226 GrGLint v2); 227 228 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3fv(GrGLint location, 229 GrGLsizei count, 230 const GrGLfloat* v); 231 232 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3iv(GrGLint location, 233 GrGLsizei count, 234 const GrGLint* v); 235 236 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4f(GrGLint location, 237 GrGLfloat v0, 238 GrGLfloat v1, 239 GrGLfloat v2, 240 GrGLfloat v3); 241 242 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4i(GrGLint location, 243 GrGLint v0, 244 GrGLint v1, 245 GrGLint v2, 246 GrGLint v3); 247 248 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4fv(GrGLint location, 249 GrGLsizei count, 250 const GrGLfloat* v); 251 252 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4iv(GrGLint location, 253 GrGLsizei count, 254 const GrGLint* v); 255 256 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix2fv(GrGLint location, 257 GrGLsizei count, 258 GrGLboolean transpose, 259 const GrGLfloat* value); 260 261 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix3fv(GrGLint location, 262 GrGLsizei count, 263 GrGLboolean transpose, 264 const GrGLfloat* value); 265 266 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix4fv(GrGLint location, 267 GrGLsizei count, 268 GrGLboolean transpose, 269 const GrGLfloat* value); 270 271 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttrib4fv(GrGLuint indx, const GrGLfloat* values); 272 273 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttribPointer(GrGLuint indx, 274 GrGLint size, 275 GrGLenum type, 276 GrGLboolean normalized, 277 GrGLsizei stride, 278 const GrGLvoid* ptr); 279 280 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexPointer(GrGLint, GrGLenum, GrGLsizei, const GrGLvoid*); 281 282 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLViewport(GrGLint x, 283 GrGLint y, 284 GrGLsizei width, 285 GrGLsizei height); 286 287 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetFramebufferAttachmentParameteriv(GrGLenum target, 288 GrGLenum attachment, 289 GrGLenum pname, 290 GrGLint* params); 291 292 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetRenderbufferParameteriv(GrGLenum target, 293 GrGLenum pname, 294 GrGLint* params); 295 296 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLRenderbufferStorage(GrGLenum target, 297 GrGLenum internalformat, 298 GrGLsizei width, 299 GrGLsizei height); 300 301 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLRenderbufferStorageMultisample(GrGLenum target, 302 GrGLsizei samples, 303 GrGLenum internalformat, 304 GrGLsizei width, 305 GrGLsizei height); 306 307 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlitFramebuffer(GrGLint srcX0, 308 GrGLint srcY0, 309 GrGLint srcX1, 310 GrGLint srcY1, 311 GrGLint dstX0, 312 GrGLint dstY0, 313 GrGLint dstX1, 314 GrGLint dstY1, 315 GrGLbitfield mask, 316 GrGLenum filter); 317 318 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLResolveMultisampleFramebuffer(); 319 320 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBindFragDataLocationIndexed(GrGLuint program, 321 GrGLuint colorNumber, 322 GrGLuint index, 323 const GrGLchar * name); 324 325 GrGLenum GR_GL_FUNCTION_TYPE noOpGLCheckFramebufferStatus(GrGLenum target); 326 327 // this function can be used for all glGen*(GLsize i, GLuint*) functions 328 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGenIds(GrGLsizei n, GrGLuint* ids); 329 330 // this function function can be used for all glDelete*(GLsize i, const GLuint*) 331 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDeleteIds(GrGLsizei n, const GrGLuint* ids); 332 333 GrGLenum GR_GL_FUNCTION_TYPE noOpGLGetError(); 334 335 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetIntegerv(GrGLenum pname, GrGLint* params); 336 337 // can be used for both the program and shader info logs 338 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetInfoLog(GrGLuint program, 339 GrGLsizei bufsize, 340 GrGLsizei* length, 341 char* infolog); 342 343 // can be used for both the program and shader params 344 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetShaderOrProgramiv(GrGLuint program, 345 GrGLenum pname, 346 GrGLint* params); 347 348 // Queries on bogus GLs just don't do anything at all. We could potentially make the timers work. 349 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryiv(GrGLenum GLtarget, 350 GrGLenum pname, 351 GrGLint *params); 352 353 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjecti64v(GrGLuint id, 354 GrGLenum pname, 355 GrGLint64 *params); 356 357 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectiv(GrGLuint id, GrGLenum pname, GrGLint *params); 358 359 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectui64v(GrGLuint id, 360 GrGLenum pname, 361 GrGLuint64 *params); 362 363 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectuiv(GrGLuint id, 364 GrGLenum pname, 365 GrGLuint *params); 366 367 const GrGLubyte* GR_GL_FUNCTION_TYPE noOpGLGetString(GrGLenum name); 368 369 const GrGLubyte* GR_GL_FUNCTION_TYPE noOpGLGetStringi(GrGLenum name, GrGLuint i); 370 371 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetTexLevelParameteriv(GrGLenum target, 372 GrGLint level, 373 GrGLenum pname, 374 GrGLint* params); 375 376 GrGLint GR_GL_FUNCTION_TYPE noOpGLGetUniformLocation(GrGLuint program, const char* name); 377 378 #endif 379