| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 #include "gl/GrGLInterface.h" | 10 #include "gl/GrGLInterface.h" |
| 11 #include "GrDebugGL.h" | 11 #include "GrDebugGL.h" |
| 12 #include "GrShaderObj.h" | 12 #include "GrShaderObj.h" |
| 13 #include "GrProgramObj.h" | 13 #include "GrProgramObj.h" |
| 14 #include "GrBufferObj.h" | 14 #include "GrBufferObj.h" |
| 15 #include "GrTextureUnitObj.h" | 15 #include "GrTextureUnitObj.h" |
| 16 #include "GrTextureObj.h" | 16 #include "GrTextureObj.h" |
| 17 #include "GrFrameBufferObj.h" | 17 #include "GrFrameBufferObj.h" |
| 18 #include "GrRenderBufferObj.h" | 18 #include "GrRenderBufferObj.h" |
| 19 #include "GrVertexArrayObj.h" |
| 19 #include "SkFloatingPoint.h" | 20 #include "SkFloatingPoint.h" |
| 20 #include "../GrGLNoOpInterface.h" | 21 #include "../GrGLNoOpInterface.h" |
| 21 | 22 |
| 22 namespace { // suppress no previous prototype warning | 23 namespace { // suppress no previous prototype warning |
| 23 | 24 |
| 24 //////////////////////////////////////////////////////////////////////////////// | 25 //////////////////////////////////////////////////////////////////////////////// |
| 25 GrGLvoid GR_GL_FUNCTION_TYPE debugGLActiveTexture(GrGLenum texture) { | 26 GrGLvoid GR_GL_FUNCTION_TYPE debugGLActiveTexture(GrGLenum texture) { |
| 26 | 27 |
| 27 // Ganesh offsets the texture unit indices | 28 // Ganesh offsets the texture unit indices |
| 28 texture -= GR_GL_TEXTURE0; | 29 texture -= GR_GL_TEXTURE0; |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 | 206 |
| 206 // a frameBufferID of 0 is acceptable - it binds to the default | 207 // a frameBufferID of 0 is acceptable - it binds to the default |
| 207 // frame buffer | 208 // frame buffer |
| 208 GrFrameBufferObj *frameBuffer = GR_FIND(frameBufferID, | 209 GrFrameBufferObj *frameBuffer = GR_FIND(frameBufferID, |
| 209 GrFrameBufferObj, | 210 GrFrameBufferObj, |
| 210 GrDebugGL::kFrameBuffer_ObjTypes); | 211 GrDebugGL::kFrameBuffer_ObjTypes); |
| 211 | 212 |
| 212 GrDebugGL::getInstance()->setFrameBuffer(frameBuffer); | 213 GrDebugGL::getInstance()->setFrameBuffer(frameBuffer); |
| 213 } | 214 } |
| 214 | 215 |
| 215 GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindRenderbuffer(GrGLenum target, | 216 GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindRenderbuffer(GrGLenum target, GrGLuint
renderBufferID) { |
| 216 GrGLuint renderBufferID) { | |
| 217 | 217 |
| 218 GrAlwaysAssert(GR_GL_RENDERBUFFER == target); | 218 GrAlwaysAssert(GR_GL_RENDERBUFFER == target); |
| 219 | 219 |
| 220 // a renderBufferID of 0 is acceptable - it unbinds the bound render buffer | 220 // a renderBufferID of 0 is acceptable - it unbinds the bound render buffer |
| 221 GrRenderBufferObj *renderBuffer = GR_FIND(renderBufferID, | 221 GrRenderBufferObj *renderBuffer = GR_FIND(renderBufferID, |
| 222 GrRenderBufferObj, | 222 GrRenderBufferObj, |
| 223 GrDebugGL::kRenderBuffer_ObjTypes
); | 223 GrDebugGL::kRenderBuffer_ObjTypes
); |
| 224 | 224 |
| 225 GrDebugGL::getInstance()->setRenderBuffer(renderBuffer); | 225 GrDebugGL::getInstance()->setRenderBuffer(renderBuffer); |
| 226 } | 226 } |
| 227 | 227 |
| 228 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteTextures(GrGLsizei n, | 228 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteTextures(GrGLsizei n, const GrGLuint*
textures) { |
| 229 const GrGLuint* textures) { | |
| 230 | 229 |
| 231 // first potentially unbind the texture | 230 // first potentially unbind the texture |
| 232 // TODO: move this into GrDebugGL as unBindTexture? | 231 // TODO: move this into GrDebugGL as unBindTexture? |
| 233 for (unsigned int i = 0; | 232 for (unsigned int i = 0; |
| 234 i < GrDebugGL::getInstance()->getMaxTextureUnits(); | 233 i < GrDebugGL::getInstance()->getMaxTextureUnits(); |
| 235 ++i) { | 234 ++i) { |
| 236 GrTextureUnitObj *pTU = GrDebugGL::getInstance()->getTextureUnit(i); | 235 GrTextureUnitObj *pTU = GrDebugGL::getInstance()->getTextureUnit(i); |
| 237 | 236 |
| 238 if (pTU->getTexture()) { | 237 if (pTU->getTexture()) { |
| 239 for (int j = 0; j < n; ++j) { | 238 for (int j = 0; j < n; ++j) { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 // OpenGL gives no guarantees if a texture is deleted while attached to | 279 // OpenGL gives no guarantees if a texture is deleted while attached to |
| 281 // something other than the currently bound frame buffer | 280 // something other than the currently bound frame buffer |
| 282 GrAlwaysAssert(!buffer->getBound()); | 281 GrAlwaysAssert(!buffer->getBound()); |
| 283 | 282 |
| 284 GrAlwaysAssert(!buffer->getDeleted()); | 283 GrAlwaysAssert(!buffer->getDeleted()); |
| 285 buffer->deleteAction(); | 284 buffer->deleteAction(); |
| 286 } | 285 } |
| 287 | 286 |
| 288 } | 287 } |
| 289 | 288 |
| 290 | |
| 291 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteFramebuffers(GrGLsizei n, | 289 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteFramebuffers(GrGLsizei n, |
| 292 const GrGLuint *frameBuf
fers) { | 290 const GrGLuint *frameBuf
fers) { |
| 293 | 291 |
| 294 // first potentially unbind the buffers | 292 // first potentially unbind the buffers |
| 295 if (GrDebugGL::getInstance()->getFrameBuffer()) { | 293 if (GrDebugGL::getInstance()->getFrameBuffer()) { |
| 296 for (int i = 0; i < n; ++i) { | 294 for (int i = 0; i < n; ++i) { |
| 297 | 295 |
| 298 if (frameBuffers[i] == | 296 if (frameBuffers[i] == |
| 299 GrDebugGL::getInstance()->getFrameBuffer()->getID()) { | 297 GrDebugGL::getInstance()->getFrameBuffer()->getID()) { |
| 300 // this ID is the current frame buffer - rebind to the default | 298 // this ID is the current frame buffer - rebind to the default |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 GrGLuint* ids) { | 509 GrGLuint* ids) { |
| 512 | 510 |
| 513 for (int i = 0; i < n; ++i) { | 511 for (int i = 0; i < n; ++i) { |
| 514 GrFakeRefObj *obj = GrDebugGL::getInstance()->createObj(type); | 512 GrFakeRefObj *obj = GrDebugGL::getInstance()->createObj(type); |
| 515 GrAlwaysAssert(obj); | 513 GrAlwaysAssert(obj); |
| 516 ids[i] = obj->getID(); | 514 ids[i] = obj->getID(); |
| 517 } | 515 } |
| 518 } | 516 } |
| 519 | 517 |
| 520 GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenBuffers(GrGLsizei n, GrGLuint* ids) { | 518 GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenBuffers(GrGLsizei n, GrGLuint* ids) { |
| 521 | |
| 522 debugGenObjs(GrDebugGL::kBuffer_ObjTypes, n, ids); | 519 debugGenObjs(GrDebugGL::kBuffer_ObjTypes, n, ids); |
| 523 } | 520 } |
| 524 | 521 |
| 525 GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenFramebuffers(GrGLsizei n, | 522 GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenFramebuffers(GrGLsizei n, |
| 526 GrGLuint* ids) { | 523 GrGLuint* ids) { |
| 527 | |
| 528 debugGenObjs(GrDebugGL::kFrameBuffer_ObjTypes, n, ids); | 524 debugGenObjs(GrDebugGL::kFrameBuffer_ObjTypes, n, ids); |
| 529 } | 525 } |
| 530 | 526 |
| 531 GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenRenderbuffers(GrGLsizei n, | 527 GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenRenderbuffers(GrGLsizei n, |
| 532 GrGLuint* ids) { | 528 GrGLuint* ids) { |
| 533 | |
| 534 debugGenObjs(GrDebugGL::kRenderBuffer_ObjTypes, n, ids); | 529 debugGenObjs(GrDebugGL::kRenderBuffer_ObjTypes, n, ids); |
| 535 } | 530 } |
| 536 | 531 |
| 537 GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenTextures(GrGLsizei n, GrGLuint* ids) { | 532 GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenTextures(GrGLsizei n, GrGLuint* ids) { |
| 538 | |
| 539 debugGenObjs(GrDebugGL::kTexture_ObjTypes, n, ids); | 533 debugGenObjs(GrDebugGL::kTexture_ObjTypes, n, ids); |
| 540 } | 534 } |
| 541 | 535 |
| 542 GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindBuffer(GrGLenum target, | 536 GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenVertexArrays(GrGLsizei n, GrGLuint* ids)
{ |
| 543 GrGLuint bufferID) { | 537 debugGenObjs(GrDebugGL::kVertexArray_ObjTypes, n, ids); |
| 538 } |
| 544 | 539 |
| 545 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || | 540 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteVertexArrays(GrGLsizei n, const GrGLui
nt* ids) { |
| 546 GR_GL_ELEMENT_ARRAY_BUFFER == target); | 541 for (GrGLsizei i = 0; i < n; ++i) { |
| 542 GrVertexArrayObj* array = |
| 543 GR_FIND(ids[i], GrVertexArrayObj, GrDebugGL::kVertexArray_ObjTypes); |
| 544 GrAlwaysAssert(array); |
| 545 |
| 546 // Deleting the current vertex array binds object 0 |
| 547 if (GrDebugGL::getInstance()->getVertexArray() == array) { |
| 548 GrDebugGL::getInstance()->setVertexArray(NULL); |
| 549 } |
| 550 |
| 551 if (array->getRefCount()) { |
| 552 // someone is still using this vertex array so we can't delete it he
re |
| 553 array->setMarkedForDeletion(); |
| 554 } else { |
| 555 array->deleteAction(); |
| 556 } |
| 557 } |
| 558 } |
| 559 |
| 560 GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindVertexArray(GrGLuint id) { |
| 561 GrVertexArrayObj* array = GR_FIND(id, GrVertexArrayObj, GrDebugGL::kVertexAr
ray_ObjTypes); |
| 562 GrAlwaysAssert(array); |
| 563 GrDebugGL::getInstance()->setVertexArray(array); |
| 564 } |
| 565 |
| 566 GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindBuffer(GrGLenum target, GrGLuint bufferI
D) { |
| 567 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || GR_GL_ELEMENT_ARRAY_BUFFER ==
target); |
| 547 | 568 |
| 548 GrBufferObj *buffer = GR_FIND(bufferID, | 569 GrBufferObj *buffer = GR_FIND(bufferID, |
| 549 GrBufferObj, | 570 GrBufferObj, |
| 550 GrDebugGL::kBuffer_ObjTypes); | 571 GrDebugGL::kBuffer_ObjTypes); |
| 551 // 0 is a permissible bufferID - it unbinds the current buffer | 572 // 0 is a permissible bufferID - it unbinds the current buffer |
| 552 | 573 |
| 553 switch (target) { | 574 switch (target) { |
| 554 case GR_GL_ARRAY_BUFFER: | 575 case GR_GL_ARRAY_BUFFER: |
| 555 GrDebugGL::getInstance()->setArrayBuffer(buffer); | 576 GrDebugGL::getInstance()->setArrayBuffer(buffer); |
| 556 break; | 577 break; |
| 557 case GR_GL_ELEMENT_ARRAY_BUFFER: | 578 case GR_GL_ELEMENT_ARRAY_BUFFER: |
| 558 GrDebugGL::getInstance()->setElementArrayBuffer(buffer); | 579 GrDebugGL::getInstance()->setElementArrayBuffer(buffer); |
| 559 break; | 580 break; |
| 560 default: | 581 default: |
| 561 GrCrash("Unexpected target to glBindBuffer"); | 582 GrCrash("Unexpected target to glBindBuffer"); |
| 562 break; | 583 break; |
| 563 } | 584 } |
| 564 } | 585 } |
| 565 | 586 |
| 566 // deleting a bound buffer has the side effect of binding 0 | 587 // deleting a bound buffer has the side effect of binding 0 |
| 567 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteBuffers(GrGLsizei n, | 588 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteBuffers(GrGLsizei n, const GrGLuint* i
ds) { |
| 568 const GrGLuint* ids) { | |
| 569 // first potentially unbind the buffers | 589 // first potentially unbind the buffers |
| 570 for (int i = 0; i < n; ++i) { | 590 for (int i = 0; i < n; ++i) { |
| 571 | 591 |
| 572 if (GrDebugGL::getInstance()->getArrayBuffer() && | 592 if (GrDebugGL::getInstance()->getArrayBuffer() && |
| 573 ids[i] == GrDebugGL::getInstance()->getArrayBuffer()->getID()) { | 593 ids[i] == GrDebugGL::getInstance()->getArrayBuffer()->getID()) { |
| 574 // this ID is the current array buffer | 594 // this ID is the current array buffer |
| 575 GrDebugGL::getInstance()->setArrayBuffer(NULL); | 595 GrDebugGL::getInstance()->setArrayBuffer(NULL); |
| 576 } | 596 } |
| 577 if (GrDebugGL::getInstance()->getElementArrayBuffer() && | 597 if (GrDebugGL::getInstance()->getElementArrayBuffer() && |
| 578 ids[i] == | 598 ids[i] == |
| 579 GrDebugGL::getInstance()->getElementArrayBuffer()->getID()) { | 599 GrDebugGL::getInstance()->getElementArrayBuffer()->getID()) { |
| 580 // this ID is the current element array buffer | 600 // this ID is the current element array buffer |
| 581 GrDebugGL::getInstance()->setElementArrayBuffer(NULL); | 601 GrDebugGL::getInstance()->setElementArrayBuffer(NULL); |
| 582 } | 602 } |
| 583 } | 603 } |
| 584 | 604 |
| 585 // then actually "delete" the buffers | 605 // then actually "delete" the buffers |
| 586 for (int i = 0; i < n; ++i) { | 606 for (int i = 0; i < n; ++i) { |
| 587 GrBufferObj *buffer = GR_FIND(ids[i], | 607 GrBufferObj *buffer = GR_FIND(ids[i], |
| 588 GrBufferObj, | 608 GrBufferObj, |
| 589 GrDebugGL::kBuffer_ObjTypes); | 609 GrDebugGL::kBuffer_ObjTypes); |
| 590 GrAlwaysAssert(buffer); | 610 GrAlwaysAssert(buffer); |
| 591 | 611 |
| 592 GrAlwaysAssert(!buffer->getDeleted()); | 612 GrAlwaysAssert(!buffer->getDeleted()); |
| 593 buffer->deleteAction(); | 613 buffer->deleteAction(); |
| 594 } | 614 } |
| 595 } | 615 } |
| 596 | 616 |
| 597 // map a buffer to the caller's address space | 617 // map a buffer to the caller's address space |
| 598 GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBuffer(GrGLenum target, | 618 GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBuffer(GrGLenum target, GrGLenum access)
{ |
| 599 GrGLenum access) { | |
| 600 | 619 |
| 601 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || | 620 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || |
| 602 GR_GL_ELEMENT_ARRAY_BUFFER == target); | 621 GR_GL_ELEMENT_ARRAY_BUFFER == target); |
| 603 // GR_GL_READ_ONLY == access || || GR_GL_READ_WRIT == access); | 622 // GR_GL_READ_ONLY == access || || GR_GL_READ_WRIT == access); |
| 604 GrAlwaysAssert(GR_GL_WRITE_ONLY == access); | 623 GrAlwaysAssert(GR_GL_WRITE_ONLY == access); |
| 605 | 624 |
| 606 GrBufferObj *buffer = NULL; | 625 GrBufferObj *buffer = NULL; |
| 607 switch (target) { | 626 switch (target) { |
| 608 case GR_GL_ARRAY_BUFFER: | 627 case GR_GL_ARRAY_BUFFER: |
| 609 buffer = GrDebugGL::getInstance()->getArrayBuffer(); | 628 buffer = GrDebugGL::getInstance()->getArrayBuffer(); |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 760 GrGLInterface* interface = SkNEW(GrDebugGLInterface); | 779 GrGLInterface* interface = SkNEW(GrDebugGLInterface); |
| 761 | 780 |
| 762 interface->fBindingsExported = kDesktop_GrGLBinding; | 781 interface->fBindingsExported = kDesktop_GrGLBinding; |
| 763 interface->fActiveTexture = debugGLActiveTexture; | 782 interface->fActiveTexture = debugGLActiveTexture; |
| 764 interface->fAttachShader = debugGLAttachShader; | 783 interface->fAttachShader = debugGLAttachShader; |
| 765 interface->fBeginQuery = debugGLBeginQuery; | 784 interface->fBeginQuery = debugGLBeginQuery; |
| 766 interface->fBindAttribLocation = debugGLBindAttribLocation; | 785 interface->fBindAttribLocation = debugGLBindAttribLocation; |
| 767 interface->fBindBuffer = debugGLBindBuffer; | 786 interface->fBindBuffer = debugGLBindBuffer; |
| 768 interface->fBindFragDataLocation = noOpGLBindFragDataLocation; | 787 interface->fBindFragDataLocation = noOpGLBindFragDataLocation; |
| 769 interface->fBindTexture = debugGLBindTexture; | 788 interface->fBindTexture = debugGLBindTexture; |
| 789 interface->fBindVertexArray = debugGLBindVertexArray; |
| 770 interface->fBlendColor = noOpGLBlendColor; | 790 interface->fBlendColor = noOpGLBlendColor; |
| 771 interface->fBlendFunc = noOpGLBlendFunc; | 791 interface->fBlendFunc = noOpGLBlendFunc; |
| 772 interface->fBufferData = debugGLBufferData; | 792 interface->fBufferData = debugGLBufferData; |
| 773 interface->fBufferSubData = noOpGLBufferSubData; | 793 interface->fBufferSubData = noOpGLBufferSubData; |
| 774 interface->fClear = noOpGLClear; | 794 interface->fClear = noOpGLClear; |
| 775 interface->fClearColor = noOpGLClearColor; | 795 interface->fClearColor = noOpGLClearColor; |
| 776 interface->fClearStencil = noOpGLClearStencil; | 796 interface->fClearStencil = noOpGLClearStencil; |
| 777 interface->fColorMask = noOpGLColorMask; | 797 interface->fColorMask = noOpGLColorMask; |
| 778 interface->fCompileShader = noOpGLCompileShader; | 798 interface->fCompileShader = noOpGLCompileShader; |
| 779 interface->fCompressedTexImage2D = noOpGLCompressedTexImage2D; | 799 interface->fCompressedTexImage2D = noOpGLCompressedTexImage2D; |
| 780 interface->fCreateProgram = debugGLCreateProgram; | 800 interface->fCreateProgram = debugGLCreateProgram; |
| 781 interface->fCreateShader = debugGLCreateShader; | 801 interface->fCreateShader = debugGLCreateShader; |
| 782 interface->fCullFace = noOpGLCullFace; | 802 interface->fCullFace = noOpGLCullFace; |
| 783 interface->fDeleteBuffers = debugGLDeleteBuffers; | 803 interface->fDeleteBuffers = debugGLDeleteBuffers; |
| 784 interface->fDeleteProgram = debugGLDeleteProgram; | 804 interface->fDeleteProgram = debugGLDeleteProgram; |
| 785 interface->fDeleteQueries = noOpGLDeleteIds; | 805 interface->fDeleteQueries = noOpGLDeleteIds; |
| 786 interface->fDeleteShader = debugGLDeleteShader; | 806 interface->fDeleteShader = debugGLDeleteShader; |
| 787 interface->fDeleteTextures = debugGLDeleteTextures; | 807 interface->fDeleteTextures = debugGLDeleteTextures; |
| 808 interface->fDeleteVertexArrays = debugGLDeleteVertexArrays; |
| 788 interface->fDepthMask = noOpGLDepthMask; | 809 interface->fDepthMask = noOpGLDepthMask; |
| 789 interface->fDisable = noOpGLDisable; | 810 interface->fDisable = noOpGLDisable; |
| 790 interface->fDisableVertexAttribArray = noOpGLDisableVertexAttribArray; | 811 interface->fDisableVertexAttribArray = noOpGLDisableVertexAttribArray; |
| 791 interface->fDrawArrays = noOpGLDrawArrays; | 812 interface->fDrawArrays = noOpGLDrawArrays; |
| 792 interface->fDrawBuffer = noOpGLDrawBuffer; | 813 interface->fDrawBuffer = noOpGLDrawBuffer; |
| 793 interface->fDrawBuffers = noOpGLDrawBuffers; | 814 interface->fDrawBuffers = noOpGLDrawBuffers; |
| 794 interface->fDrawElements = noOpGLDrawElements; | 815 interface->fDrawElements = noOpGLDrawElements; |
| 795 interface->fEnable = noOpGLEnable; | 816 interface->fEnable = noOpGLEnable; |
| 796 interface->fEnableVertexAttribArray = noOpGLEnableVertexAttribArray; | 817 interface->fEnableVertexAttribArray = noOpGLEnableVertexAttribArray; |
| 797 interface->fEndQuery = noOpGLEndQuery; | 818 interface->fEndQuery = noOpGLEndQuery; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 810 interface->fGetQueryObjectuiv = noOpGLGetQueryObjectuiv; | 831 interface->fGetQueryObjectuiv = noOpGLGetQueryObjectuiv; |
| 811 interface->fGetQueryiv = noOpGLGetQueryiv; | 832 interface->fGetQueryiv = noOpGLGetQueryiv; |
| 812 interface->fGetProgramInfoLog = noOpGLGetInfoLog; | 833 interface->fGetProgramInfoLog = noOpGLGetInfoLog; |
| 813 interface->fGetProgramiv = noOpGLGetShaderOrProgramiv; | 834 interface->fGetProgramiv = noOpGLGetShaderOrProgramiv; |
| 814 interface->fGetShaderInfoLog = noOpGLGetInfoLog; | 835 interface->fGetShaderInfoLog = noOpGLGetInfoLog; |
| 815 interface->fGetShaderiv = noOpGLGetShaderOrProgramiv; | 836 interface->fGetShaderiv = noOpGLGetShaderOrProgramiv; |
| 816 interface->fGetString = noOpGLGetString; | 837 interface->fGetString = noOpGLGetString; |
| 817 interface->fGetStringi = noOpGLGetStringi; | 838 interface->fGetStringi = noOpGLGetStringi; |
| 818 interface->fGetTexLevelParameteriv = noOpGLGetTexLevelParameteriv; | 839 interface->fGetTexLevelParameteriv = noOpGLGetTexLevelParameteriv; |
| 819 interface->fGetUniformLocation = noOpGLGetUniformLocation; | 840 interface->fGetUniformLocation = noOpGLGetUniformLocation; |
| 841 interface->fGenVertexArrays = debugGLGenVertexArrays; |
| 820 interface->fLineWidth = noOpGLLineWidth; | 842 interface->fLineWidth = noOpGLLineWidth; |
| 821 interface->fLinkProgram = noOpGLLinkProgram; | 843 interface->fLinkProgram = noOpGLLinkProgram; |
| 822 interface->fPixelStorei = debugGLPixelStorei; | 844 interface->fPixelStorei = debugGLPixelStorei; |
| 823 interface->fQueryCounter = noOpGLQueryCounter; | 845 interface->fQueryCounter = noOpGLQueryCounter; |
| 824 interface->fReadBuffer = noOpGLReadBuffer; | 846 interface->fReadBuffer = noOpGLReadBuffer; |
| 825 interface->fReadPixels = debugGLReadPixels; | 847 interface->fReadPixels = debugGLReadPixels; |
| 826 interface->fScissor = noOpGLScissor; | 848 interface->fScissor = noOpGLScissor; |
| 827 interface->fShaderSource = noOpGLShaderSource; | 849 interface->fShaderSource = noOpGLShaderSource; |
| 828 interface->fStencilFunc = noOpGLStencilFunc; | 850 interface->fStencilFunc = noOpGLStencilFunc; |
| 829 interface->fStencilFuncSeparate = noOpGLStencilFuncSeparate; | 851 interface->fStencilFuncSeparate = noOpGLStencilFuncSeparate; |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 877 interface->fBlitFramebuffer = noOpGLBlitFramebuffer; | 899 interface->fBlitFramebuffer = noOpGLBlitFramebuffer; |
| 878 interface->fResolveMultisampleFramebuffer = | 900 interface->fResolveMultisampleFramebuffer = |
| 879 noOpGLResolveMultisampleFramebuffer; | 901 noOpGLResolveMultisampleFramebuffer; |
| 880 interface->fMapBuffer = debugGLMapBuffer; | 902 interface->fMapBuffer = debugGLMapBuffer; |
| 881 interface->fUnmapBuffer = debugGLUnmapBuffer; | 903 interface->fUnmapBuffer = debugGLUnmapBuffer; |
| 882 interface->fBindFragDataLocationIndexed = | 904 interface->fBindFragDataLocationIndexed = |
| 883 noOpGLBindFragDataLocationIndexed; | 905 noOpGLBindFragDataLocationIndexed; |
| 884 | 906 |
| 885 return interface; | 907 return interface; |
| 886 } | 908 } |
| OLD | NEW |