| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file implements glue to a GL interface so we can mock it for unit | 5 // This file implements glue to a GL interface so we can mock it for unit |
| 6 // testing. It has to be Desktop GL, not GLES2 as it is used to test the service | 6 // testing. It has to be Desktop GL, not GLES2 as it is used to test the service |
| 7 // side code. | 7 // side code. |
| 8 | 8 |
| 9 #ifndef GPU_COMMAND_BUFFER_SERVICE_GL_INTERFACE_H_ | 9 #ifndef APP_GFX_GL_GL_INTERFACE_H_ |
| 10 #define GPU_COMMAND_BUFFER_SERVICE_GL_INTERFACE_H_ | 10 #define APP_GFX_GL_GL_INTERFACE_H_ |
| 11 | 11 |
| 12 #include <GLES2/gl2types.h> | 12 #include "app/gfx/gl/gl_bindings.h" |
| 13 | 13 |
| 14 // These are Desktop GL constants that we want to test that our GLES2 | 14 namespace gfx { |
| 15 // implemenation does not let through. | |
| 16 #define GL_PROXY_TEXTURE_CUBE_MAP 0x851B | |
| 17 #define GL_BGR 0x80E0 | |
| 18 #define GL_BGRA 0x80E1 | |
| 19 #define GL_UNPACK_SWAP_BYTES 0x0CF0 | |
| 20 #define GL_PACK_SWAP_BYTES 0x0D00 | |
| 21 #define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 | |
| 22 #define GL_QUADS 0x0007 | |
| 23 #define GL_POLYGON 0x0009 | |
| 24 #define GL_FOG 0x0B60 | |
| 25 #define GL_CLIP_PLANE0 0x3000 | |
| 26 #define GL_GENERATE_MIPMAP 0x8191 | |
| 27 #define GL_PIXEL_PACK_BUFFER 0x88EB | |
| 28 #define GL_POINT_SPRITE 0x8861 | |
| 29 #define GL_MIN 0x8007 | |
| 30 #define GL_MAX 0x8008 | |
| 31 #define GL_TEXTURE_1D 0x0DE0 | |
| 32 #define GL_TEXTURE_3D 0x806F | |
| 33 #define GL_DOUBLE 0x140A | |
| 34 #define GL_GEOMETRY_SHADER 0x8DD9 | |
| 35 #define GL_FOG_HINT 0x0C54 | |
| 36 | |
| 37 namespace gles2 { | |
| 38 | 15 |
| 39 class GLInterface { | 16 class GLInterface { |
| 40 public: | 17 public: |
| 41 virtual ~GLInterface() { | 18 virtual ~GLInterface() { |
| 42 } | 19 } |
| 43 | 20 |
| 44 static void SetGLInterface(GLInterface* gl_interface); | 21 static void SetGLInterface(GLInterface* gl_interface); |
| 45 | 22 |
| 46 static GLInterface* GetGLInterface(); | 23 static GLInterface* GetGLInterface(); |
| 47 | 24 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 78 virtual void BufferSubData( | 55 virtual void BufferSubData( |
| 79 GLenum target, GLintptr offset, GLsizeiptr size, const void* data) = 0; | 56 GLenum target, GLintptr offset, GLsizeiptr size, const void* data) = 0; |
| 80 | 57 |
| 81 virtual GLenum CheckFramebufferStatusEXT(GLenum target) = 0; | 58 virtual GLenum CheckFramebufferStatusEXT(GLenum target) = 0; |
| 82 | 59 |
| 83 virtual void Clear(GLbitfield mask) = 0; | 60 virtual void Clear(GLbitfield mask) = 0; |
| 84 | 61 |
| 85 virtual void ClearColor( | 62 virtual void ClearColor( |
| 86 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) = 0; | 63 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) = 0; |
| 87 | 64 |
| 88 virtual void ClearDepth(GLclampf depth) = 0; | 65 virtual void ClearDepth(GLclampd depth) = 0; |
| 66 |
| 67 virtual void ClearDepthf(GLclampf depth) = 0; |
| 89 | 68 |
| 90 virtual void ClearStencil(GLint s) = 0; | 69 virtual void ClearStencil(GLint s) = 0; |
| 91 | 70 |
| 92 virtual void ColorMask( | 71 virtual void ColorMask( |
| 93 GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) = 0; | 72 GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) = 0; |
| 94 | 73 |
| 95 virtual void CompileShader(GLuint shader) = 0; | 74 virtual void CompileShader(GLuint shader) = 0; |
| 96 | 75 |
| 97 virtual void CompressedTexImage2D( | 76 virtual void CompressedTexImage2D( |
| 98 GLenum target, GLint level, GLenum internalformat, GLsizei width, | 77 GLenum target, GLint level, GLenum internalformat, GLsizei width, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 126 GLsizei n, const GLuint* renderbuffers) = 0; | 105 GLsizei n, const GLuint* renderbuffers) = 0; |
| 127 | 106 |
| 128 virtual void DeleteShader(GLuint shader) = 0; | 107 virtual void DeleteShader(GLuint shader) = 0; |
| 129 | 108 |
| 130 virtual void DeleteTextures(GLsizei n, const GLuint* textures) = 0; | 109 virtual void DeleteTextures(GLsizei n, const GLuint* textures) = 0; |
| 131 | 110 |
| 132 virtual void DepthFunc(GLenum func) = 0; | 111 virtual void DepthFunc(GLenum func) = 0; |
| 133 | 112 |
| 134 virtual void DepthMask(GLboolean flag) = 0; | 113 virtual void DepthMask(GLboolean flag) = 0; |
| 135 | 114 |
| 136 virtual void DepthRange(GLclampf zNear, GLclampf zFar) = 0; | 115 virtual void DepthRange(GLclampd zNear, GLclampd zFar) = 0; |
| 116 |
| 117 virtual void DepthRangef(GLclampf zNear, GLclampf zFar) = 0; |
| 137 | 118 |
| 138 virtual void DetachShader(GLuint program, GLuint shader) = 0; | 119 virtual void DetachShader(GLuint program, GLuint shader) = 0; |
| 139 | 120 |
| 140 virtual void Disable(GLenum cap) = 0; | 121 virtual void Disable(GLenum cap) = 0; |
| 141 | 122 |
| 142 virtual void DisableVertexAttribArray(GLuint index) = 0; | 123 virtual void DisableVertexAttribArray(GLuint index) = 0; |
| 143 | 124 |
| 144 virtual void DrawArrays(GLenum mode, GLint first, GLsizei count) = 0; | 125 virtual void DrawArrays(GLenum mode, GLint first, GLsizei count) = 0; |
| 145 | 126 |
| 146 virtual void DrawElements( | 127 virtual void DrawElements( |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 400 | 381 |
| 401 virtual void SwapBuffers() = 0; | 382 virtual void SwapBuffers() = 0; |
| 402 | 383 |
| 403 virtual GLuint GetMaxValueInBuffer( | 384 virtual GLuint GetMaxValueInBuffer( |
| 404 GLuint buffer_id, GLsizei count, GLenum type, GLuint offset) = 0; | 385 GLuint buffer_id, GLsizei count, GLenum type, GLuint offset) = 0; |
| 405 | 386 |
| 406 private: | 387 private: |
| 407 static GLInterface* interface_; | 388 static GLInterface* interface_; |
| 408 }; | 389 }; |
| 409 | 390 |
| 410 } // namespace gles2 | 391 } // namespace gfx |
| 411 | 392 |
| 412 #define GL_IFACE_GET_FUN(name) ::gles2::GLInterface::GetGLInterface()->name | 393 #endif // APP_GFX_GL_GL_INTERFACE_H_ |
| 413 | |
| 414 #define glActiveTexture GL_IFACE_GET_FUN(ActiveTexture) | |
| 415 #define glAttachShader GL_IFACE_GET_FUN(AttachShader) | |
| 416 #define glBindAttribLocation GL_IFACE_GET_FUN(BindAttribLocation) | |
| 417 #define glBindBuffer GL_IFACE_GET_FUN(BindBuffer) | |
| 418 #define glBindFramebufferEXT GL_IFACE_GET_FUN(BindFramebufferEXT) | |
| 419 #define glBindRenderbufferEXT GL_IFACE_GET_FUN(BindRenderbufferEXT) | |
| 420 #define glBindTexture GL_IFACE_GET_FUN(BindTexture) | |
| 421 #define glBlendColor GL_IFACE_GET_FUN(BlendColor) | |
| 422 #define glBlendEquation GL_IFACE_GET_FUN(BlendEquation) | |
| 423 #define glBlendEquationSeparate GL_IFACE_GET_FUN(BlendEquationSeparate) | |
| 424 #define glBlendFunc GL_IFACE_GET_FUN(BlendFunc) | |
| 425 #define glBlendFuncSeparate GL_IFACE_GET_FUN(BlendFuncSeparate) | |
| 426 #define glBufferData GL_IFACE_GET_FUN(BufferData) | |
| 427 #define glBufferSubData GL_IFACE_GET_FUN(BufferSubData) | |
| 428 #define glCheckFramebufferStatusEXT GL_IFACE_GET_FUN(CheckFramebufferStatusEXT) | |
| 429 #define glClear GL_IFACE_GET_FUN(Clear) | |
| 430 #define glClearColor GL_IFACE_GET_FUN(ClearColor) | |
| 431 #define glClearDepth GL_IFACE_GET_FUN(ClearDepth) | |
| 432 #define glClearStencil GL_IFACE_GET_FUN(ClearStencil) | |
| 433 #define glColorMask GL_IFACE_GET_FUN(ColorMask) | |
| 434 #define glCompileShader GL_IFACE_GET_FUN(CompileShader) | |
| 435 #define glCompressedTexImage2D GL_IFACE_GET_FUN(CompressedTexImage2D) | |
| 436 #define glCompressedTexSubImage2D GL_IFACE_GET_FUN(CompressedTexSubImage2D) | |
| 437 #define glCopyTexImage2D GL_IFACE_GET_FUN(CopyTexImage2D) | |
| 438 #define glCopyTexSubImage2D GL_IFACE_GET_FUN(CopyTexSubImage2D) | |
| 439 #define glCreateProgram GL_IFACE_GET_FUN(CreateProgram) | |
| 440 #define glCreateShader GL_IFACE_GET_FUN(CreateShader) | |
| 441 #define glCullFace GL_IFACE_GET_FUN(CullFace) | |
| 442 #define glDeleteBuffersARB GL_IFACE_GET_FUN(DeleteBuffersARB) | |
| 443 #define glDeleteFramebuffersEXT GL_IFACE_GET_FUN(DeleteFramebuffersEXT) | |
| 444 #define glDeleteProgram GL_IFACE_GET_FUN(DeleteProgram) | |
| 445 #define glDeleteRenderbuffersEXT GL_IFACE_GET_FUN(DeleteRenderbuffersEXT) | |
| 446 #define glDeleteShader GL_IFACE_GET_FUN(DeleteShader) | |
| 447 #define glDeleteTextures GL_IFACE_GET_FUN(DeleteTextures) | |
| 448 #define glDepthFunc GL_IFACE_GET_FUN(DepthFunc) | |
| 449 #define glDepthMask GL_IFACE_GET_FUN(DepthMask) | |
| 450 #define glDepthRange GL_IFACE_GET_FUN(DepthRange) | |
| 451 #define glDetachShader GL_IFACE_GET_FUN(DetachShader) | |
| 452 #define glDisable GL_IFACE_GET_FUN(Disable) | |
| 453 #define glDisableVertexAttribArray GL_IFACE_GET_FUN(DisableVertexAttribArray) | |
| 454 #define glDrawArrays GL_IFACE_GET_FUN(DrawArrays) | |
| 455 #define glDrawElements GL_IFACE_GET_FUN(DrawElements) | |
| 456 #define glEnable GL_IFACE_GET_FUN(Enable) | |
| 457 #define glEnableVertexAttribArray GL_IFACE_GET_FUN(EnableVertexAttribArray) | |
| 458 #define glFinish GL_IFACE_GET_FUN(Finish) | |
| 459 #define glFlush GL_IFACE_GET_FUN(Flush) | |
| 460 #define glFramebufferRenderbufferEXT \ | |
| 461 GL_IFACE_GET_FUN(FramebufferRenderbufferEXT) | |
| 462 #define glFramebufferTexture2DEXT GL_IFACE_GET_FUN(FramebufferTexture2DEXT) | |
| 463 #define glFrontFace GL_IFACE_GET_FUN(FrontFace) | |
| 464 #define glGenBuffersARB GL_IFACE_GET_FUN(GenBuffersARB) | |
| 465 #define glGenerateMipmapEXT GL_IFACE_GET_FUN(GenerateMipmapEXT) | |
| 466 #define glGenFramebuffersEXT GL_IFACE_GET_FUN(GenFramebuffersEXT) | |
| 467 #define glGenRenderbuffersEXT GL_IFACE_GET_FUN(GenRenderbuffersEXT) | |
| 468 #define glGenTextures GL_IFACE_GET_FUN(GenTextures) | |
| 469 #define glGetActiveAttrib GL_IFACE_GET_FUN(GetActiveAttrib) | |
| 470 #define glGetActiveUniform GL_IFACE_GET_FUN(GetActiveUniform) | |
| 471 #define glGetAttachedShaders GL_IFACE_GET_FUN(GetAttachedShaders) | |
| 472 #define glGetAttribLocation GL_IFACE_GET_FUN(GetAttribLocation) | |
| 473 #define glGetBooleanv GL_IFACE_GET_FUN(GetBooleanv) | |
| 474 #define glGetBufferParameteriv GL_IFACE_GET_FUN(GetBufferParameteriv) | |
| 475 #define glGetError GL_IFACE_GET_FUN(GetError) | |
| 476 #define glGetFloatv GL_IFACE_GET_FUN(GetFloatv) | |
| 477 #define glGetFramebufferAttachmentParameterivEXT \ | |
| 478 GL_IFACE_GET_FUN(GetFramebufferAttachmentParameterivEXT) | |
| 479 #define glGetIntegerv GL_IFACE_GET_FUN(GetIntegerv) | |
| 480 #define glGetProgramiv GL_IFACE_GET_FUN(GetProgramiv) | |
| 481 #define glGetProgramInfoLog GL_IFACE_GET_FUN(GetProgramInfoLog) | |
| 482 #define glGetRenderbufferParameterivEXT \ | |
| 483 GL_IFACE_GET_FUN(GetRenderbufferParameterivEXT) | |
| 484 #define glGetShaderiv GL_IFACE_GET_FUN(GetShaderiv) | |
| 485 #define glGetShaderInfoLog GL_IFACE_GET_FUN(GetShaderInfoLog) | |
| 486 #define glGetShaderPrecisionFormat GL_IFACE_GET_FUN(GetShaderPrecisionFormat) | |
| 487 #define glGetShaderSource GL_IFACE_GET_FUN(GetShaderSource) | |
| 488 #define glGetString GL_IFACE_GET_FUN(GetString) | |
| 489 #define glGetTexParameterfv GL_IFACE_GET_FUN(GetTexParameterfv) | |
| 490 #define glGetTexParameteriv GL_IFACE_GET_FUN(GetTexParameteriv) | |
| 491 #define glGetUniformfv GL_IFACE_GET_FUN(GetUniformfv) | |
| 492 #define glGetUniformiv GL_IFACE_GET_FUN(GetUniformiv) | |
| 493 #define glGetUniformLocation GL_IFACE_GET_FUN(GetUniformLocation) | |
| 494 #define glGetVertexAttribfv GL_IFACE_GET_FUN(GetVertexAttribfv) | |
| 495 #define glGetVertexAttribiv GL_IFACE_GET_FUN(GetVertexAttribiv) | |
| 496 #define glGetVertexAttribPointerv GL_IFACE_GET_FUN(GetVertexAttribPointerv) | |
| 497 #define glHint GL_IFACE_GET_FUN(Hint) | |
| 498 #define glIsBuffer GL_IFACE_GET_FUN(IsBuffer) | |
| 499 #define glIsEnabled GL_IFACE_GET_FUN(IsEnabled) | |
| 500 #define glIsFramebufferEXT GL_IFACE_GET_FUN(IsFramebufferEXT) | |
| 501 #define glIsProgram GL_IFACE_GET_FUN(IsProgram) | |
| 502 #define glIsRenderbufferEXT GL_IFACE_GET_FUN(IsRenderbufferEXT) | |
| 503 #define glIsShader GL_IFACE_GET_FUN(IsShader) | |
| 504 #define glIsTexture GL_IFACE_GET_FUN(IsTexture) | |
| 505 #define glLineWidth GL_IFACE_GET_FUN(LineWidth) | |
| 506 #define glLinkProgram GL_IFACE_GET_FUN(LinkProgram) | |
| 507 #define glPixelStorei GL_IFACE_GET_FUN(PixelStorei) | |
| 508 #define glPolygonOffset GL_IFACE_GET_FUN(PolygonOffset) | |
| 509 #define glReadPixels GL_IFACE_GET_FUN(ReadPixels) | |
| 510 #define glReleaseShaderCompiler GL_IFACE_GET_FUN(ReleaseShaderCompiler) | |
| 511 #define glRenderbufferStorageEXT GL_IFACE_GET_FUN(RenderbufferStorageEXT) | |
| 512 #define glSampleCoverage GL_IFACE_GET_FUN(SampleCoverage) | |
| 513 #define glScissor GL_IFACE_GET_FUN(Scissor) | |
| 514 #define glShaderBinary GL_IFACE_GET_FUN(ShaderBinary) | |
| 515 #define glShaderSource GL_IFACE_GET_FUN(ShaderSource) | |
| 516 #define glStencilFunc GL_IFACE_GET_FUN(StencilFunc) | |
| 517 #define glStencilFuncSeparate GL_IFACE_GET_FUN(StencilFuncSeparate) | |
| 518 #define glStencilMask GL_IFACE_GET_FUN(StencilMask) | |
| 519 #define glStencilMaskSeparate GL_IFACE_GET_FUN(StencilMaskSeparate) | |
| 520 #define glStencilOp GL_IFACE_GET_FUN(StencilOp) | |
| 521 #define glStencilOpSeparate GL_IFACE_GET_FUN(StencilOpSeparate) | |
| 522 #define glTexImage2D GL_IFACE_GET_FUN(TexImage2D) | |
| 523 #define glTexParameterf GL_IFACE_GET_FUN(TexParameterf) | |
| 524 #define glTexParameterfv GL_IFACE_GET_FUN(TexParameterfv) | |
| 525 #define glTexParameteri GL_IFACE_GET_FUN(TexParameteri) | |
| 526 #define glTexParameteriv GL_IFACE_GET_FUN(TexParameteriv) | |
| 527 #define glTexSubImage2D GL_IFACE_GET_FUN(TexSubImage2D) | |
| 528 #define glUniform1f GL_IFACE_GET_FUN(Uniform1f) | |
| 529 #define glUniform1fv GL_IFACE_GET_FUN(Uniform1fv) | |
| 530 #define glUniform1i GL_IFACE_GET_FUN(Uniform1i) | |
| 531 #define glUniform1iv GL_IFACE_GET_FUN(Uniform1iv) | |
| 532 #define glUniform2f GL_IFACE_GET_FUN(Uniform2f) | |
| 533 #define glUniform2fv GL_IFACE_GET_FUN(Uniform2fv) | |
| 534 #define glUniform2i GL_IFACE_GET_FUN(Uniform2i) | |
| 535 #define glUniform2iv GL_IFACE_GET_FUN(Uniform2iv) | |
| 536 #define glUniform3f GL_IFACE_GET_FUN(Uniform3f) | |
| 537 #define glUniform3fv GL_IFACE_GET_FUN(Uniform3fv) | |
| 538 #define glUniform3i GL_IFACE_GET_FUN(Uniform3i) | |
| 539 #define glUniform3iv GL_IFACE_GET_FUN(Uniform3iv) | |
| 540 #define glUniform4f GL_IFACE_GET_FUN(Uniform4f) | |
| 541 #define glUniform4fv GL_IFACE_GET_FUN(Uniform4fv) | |
| 542 #define glUniform4i GL_IFACE_GET_FUN(Uniform4i) | |
| 543 #define glUniform4iv GL_IFACE_GET_FUN(Uniform4iv) | |
| 544 #define glUniformMatrix2fv GL_IFACE_GET_FUN(UniformMatrix2fv) | |
| 545 #define glUniformMatrix3fv GL_IFACE_GET_FUN(UniformMatrix3fv) | |
| 546 #define glUniformMatrix4fv GL_IFACE_GET_FUN(UniformMatrix4fv) | |
| 547 #define glUseProgram GL_IFACE_GET_FUN(UseProgram) | |
| 548 #define glValidateProgram GL_IFACE_GET_FUN(ValidateProgram) | |
| 549 #define glVertexAttrib1f GL_IFACE_GET_FUN(VertexAttrib1f) | |
| 550 #define glVertexAttrib1fv GL_IFACE_GET_FUN(VertexAttrib1fv) | |
| 551 #define glVertexAttrib2f GL_IFACE_GET_FUN(VertexAttrib2f) | |
| 552 #define glVertexAttrib2fv GL_IFACE_GET_FUN(VertexAttrib2fv) | |
| 553 #define glVertexAttrib3f GL_IFACE_GET_FUN(VertexAttrib3f) | |
| 554 #define glVertexAttrib3fv GL_IFACE_GET_FUN(VertexAttrib3fv) | |
| 555 #define glVertexAttrib4f GL_IFACE_GET_FUN(VertexAttrib4f) | |
| 556 #define glVertexAttrib4fv GL_IFACE_GET_FUN(VertexAttrib4fv) | |
| 557 #define glVertexAttribPointer GL_IFACE_GET_FUN(VertexAttribPointer) | |
| 558 #define glViewport GL_IFACE_GET_FUN(Viewport) | |
| 559 | |
| 560 #endif // GPU_COMMAND_BUFFER_SERVICE_GL_INTERFACE_H_ | |
| 561 | 394 |
| 562 | 395 |
| 563 | 396 |
| OLD | NEW |