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" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 GrGLsizeiptr size, | 77 GrGLsizeiptr size, |
78 const GrGLvoid* data, | 78 const GrGLvoid* data, |
79 GrGLenum usage) { | 79 GrGLenum usage) { |
80 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || | 80 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || |
81 GR_GL_ELEMENT_ARRAY_BUFFER == target); | 81 GR_GL_ELEMENT_ARRAY_BUFFER == target); |
82 GrAlwaysAssert(size >= 0); | 82 GrAlwaysAssert(size >= 0); |
83 GrAlwaysAssert(GR_GL_STREAM_DRAW == usage || | 83 GrAlwaysAssert(GR_GL_STREAM_DRAW == usage || |
84 GR_GL_STATIC_DRAW == usage || | 84 GR_GL_STATIC_DRAW == usage || |
85 GR_GL_DYNAMIC_DRAW == usage); | 85 GR_GL_DYNAMIC_DRAW == usage); |
86 | 86 |
87 GrBufferObj *buffer = NULL; | 87 GrBufferObj *buffer = nullptr; |
88 switch (target) { | 88 switch (target) { |
89 case GR_GL_ARRAY_BUFFER: | 89 case GR_GL_ARRAY_BUFFER: |
90 buffer = GrDebugGL::getInstance()->getArrayBuffer(); | 90 buffer = GrDebugGL::getInstance()->getArrayBuffer(); |
91 break; | 91 break; |
92 case GR_GL_ELEMENT_ARRAY_BUFFER: | 92 case GR_GL_ELEMENT_ARRAY_BUFFER: |
93 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); | 93 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); |
94 break; | 94 break; |
95 default: | 95 default: |
96 SkFAIL("Unexpected target to glBufferData"); | 96 SkFAIL("Unexpected target to glBufferData"); |
97 break; | 97 break; |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 for (unsigned int i = 0; | 234 for (unsigned int i = 0; |
235 i < GrDebugGL::getInstance()->getMaxTextureUnits(); | 235 i < GrDebugGL::getInstance()->getMaxTextureUnits(); |
236 ++i) { | 236 ++i) { |
237 GrTextureUnitObj *pTU = GrDebugGL::getInstance()->getTextureUnit(i); | 237 GrTextureUnitObj *pTU = GrDebugGL::getInstance()->getTextureUnit(i); |
238 | 238 |
239 if (pTU->getTexture()) { | 239 if (pTU->getTexture()) { |
240 for (int j = 0; j < n; ++j) { | 240 for (int j = 0; j < n; ++j) { |
241 | 241 |
242 if (textures[j] == pTU->getTexture()->getID()) { | 242 if (textures[j] == pTU->getTexture()->getID()) { |
243 // this ID is the current texture - revert the binding to 0 | 243 // this ID is the current texture - revert the binding to 0 |
244 pTU->setTexture(NULL); | 244 pTU->setTexture(nullptr); |
245 } | 245 } |
246 } | 246 } |
247 } | 247 } |
248 } | 248 } |
249 | 249 |
250 // TODO: fuse the following block with DeleteRenderBuffers? | 250 // TODO: fuse the following block with DeleteRenderBuffers? |
251 // Open GL will remove a deleted render buffer from the active | 251 // Open GL will remove a deleted render buffer from the active |
252 // frame buffer but not from any other frame buffer | 252 // frame buffer but not from any other frame buffer |
253 if (GrDebugGL::getInstance()->getFrameBuffer()) { | 253 if (GrDebugGL::getInstance()->getFrameBuffer()) { |
254 | 254 |
255 GrFrameBufferObj *frameBuffer = GrDebugGL::getInstance()->getFrameBuffe
r(); | 255 GrFrameBufferObj *frameBuffer = GrDebugGL::getInstance()->getFrameBuffe
r(); |
256 | 256 |
257 for (int i = 0; i < n; ++i) { | 257 for (int i = 0; i < n; ++i) { |
258 | 258 |
259 if (frameBuffer->getColor() && | 259 if (frameBuffer->getColor() && |
260 textures[i] == frameBuffer->getColor()->getID()) { | 260 textures[i] == frameBuffer->getColor()->getID()) { |
261 frameBuffer->setColor(NULL); | 261 frameBuffer->setColor(nullptr); |
262 } | 262 } |
263 if (frameBuffer->getDepth() && | 263 if (frameBuffer->getDepth() && |
264 textures[i] == frameBuffer->getDepth()->getID()) { | 264 textures[i] == frameBuffer->getDepth()->getID()) { |
265 frameBuffer->setDepth(NULL); | 265 frameBuffer->setDepth(nullptr); |
266 } | 266 } |
267 if (frameBuffer->getStencil() && | 267 if (frameBuffer->getStencil() && |
268 textures[i] == frameBuffer->getStencil()->getID()) { | 268 textures[i] == frameBuffer->getStencil()->getID()) { |
269 frameBuffer->setStencil(NULL); | 269 frameBuffer->setStencil(nullptr); |
270 } | 270 } |
271 } | 271 } |
272 } | 272 } |
273 | 273 |
274 // then actually "delete" the buffers | 274 // then actually "delete" the buffers |
275 for (int i = 0; i < n; ++i) { | 275 for (int i = 0; i < n; ++i) { |
276 GrTextureObj *buffer = GR_FIND(textures[i], | 276 GrTextureObj *buffer = GR_FIND(textures[i], |
277 GrTextureObj, | 277 GrTextureObj, |
278 GrDebugGL::kTexture_ObjTypes); | 278 GrDebugGL::kTexture_ObjTypes); |
279 GrAlwaysAssert(buffer); | 279 GrAlwaysAssert(buffer); |
(...skipping 11 matching lines...) Expand all Loading... |
291 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteFramebuffers(GrGLsizei n, | 291 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteFramebuffers(GrGLsizei n, |
292 const GrGLuint *frameBuf
fers) { | 292 const GrGLuint *frameBuf
fers) { |
293 | 293 |
294 // first potentially unbind the buffers | 294 // first potentially unbind the buffers |
295 if (GrDebugGL::getInstance()->getFrameBuffer()) { | 295 if (GrDebugGL::getInstance()->getFrameBuffer()) { |
296 for (int i = 0; i < n; ++i) { | 296 for (int i = 0; i < n; ++i) { |
297 | 297 |
298 if (frameBuffers[i] == | 298 if (frameBuffers[i] == |
299 GrDebugGL::getInstance()->getFrameBuffer()->getID()) { | 299 GrDebugGL::getInstance()->getFrameBuffer()->getID()) { |
300 // this ID is the current frame buffer - rebind to the default | 300 // this ID is the current frame buffer - rebind to the default |
301 GrDebugGL::getInstance()->setFrameBuffer(NULL); | 301 GrDebugGL::getInstance()->setFrameBuffer(nullptr); |
302 } | 302 } |
303 } | 303 } |
304 } | 304 } |
305 | 305 |
306 // then actually "delete" the buffers | 306 // then actually "delete" the buffers |
307 for (int i = 0; i < n; ++i) { | 307 for (int i = 0; i < n; ++i) { |
308 GrFrameBufferObj *buffer = GR_FIND(frameBuffers[i], | 308 GrFrameBufferObj *buffer = GR_FIND(frameBuffers[i], |
309 GrFrameBufferObj, | 309 GrFrameBufferObj, |
310 GrDebugGL::kFrameBuffer_ObjTypes); | 310 GrDebugGL::kFrameBuffer_ObjTypes); |
311 GrAlwaysAssert(buffer); | 311 GrAlwaysAssert(buffer); |
312 | 312 |
313 GrAlwaysAssert(!buffer->getDeleted()); | 313 GrAlwaysAssert(!buffer->getDeleted()); |
314 buffer->deleteAction(); | 314 buffer->deleteAction(); |
315 } | 315 } |
316 } | 316 } |
317 | 317 |
318 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteRenderbuffers(GrGLsizei n, | 318 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteRenderbuffers(GrGLsizei n, |
319 const GrGLuint *renderB
uffers) { | 319 const GrGLuint *renderB
uffers) { |
320 | 320 |
321 // first potentially unbind the buffers | 321 // first potentially unbind the buffers |
322 if (GrDebugGL::getInstance()->getRenderBuffer()) { | 322 if (GrDebugGL::getInstance()->getRenderBuffer()) { |
323 for (int i = 0; i < n; ++i) { | 323 for (int i = 0; i < n; ++i) { |
324 | 324 |
325 if (renderBuffers[i] == | 325 if (renderBuffers[i] == |
326 GrDebugGL::getInstance()->getRenderBuffer()->getID()) { | 326 GrDebugGL::getInstance()->getRenderBuffer()->getID()) { |
327 // this ID is the current render buffer - make no | 327 // this ID is the current render buffer - make no |
328 // render buffer be bound | 328 // render buffer be bound |
329 GrDebugGL::getInstance()->setRenderBuffer(NULL); | 329 GrDebugGL::getInstance()->setRenderBuffer(nullptr); |
330 } | 330 } |
331 } | 331 } |
332 } | 332 } |
333 | 333 |
334 // TODO: fuse the following block with DeleteTextures? | 334 // TODO: fuse the following block with DeleteTextures? |
335 // Open GL will remove a deleted render buffer from the active frame | 335 // Open GL will remove a deleted render buffer from the active frame |
336 // buffer but not from any other frame buffer | 336 // buffer but not from any other frame buffer |
337 if (GrDebugGL::getInstance()->getFrameBuffer()) { | 337 if (GrDebugGL::getInstance()->getFrameBuffer()) { |
338 | 338 |
339 GrFrameBufferObj *frameBuffer = | 339 GrFrameBufferObj *frameBuffer = |
340 GrDebugGL::getInstance()->getFrameBuffer(); | 340 GrDebugGL::getInstance()->getFrameBuffer(); |
341 | 341 |
342 for (int i = 0; i < n; ++i) { | 342 for (int i = 0; i < n; ++i) { |
343 | 343 |
344 if (frameBuffer->getColor() && | 344 if (frameBuffer->getColor() && |
345 renderBuffers[i] == frameBuffer->getColor()->getID()) { | 345 renderBuffers[i] == frameBuffer->getColor()->getID()) { |
346 frameBuffer->setColor(NULL); | 346 frameBuffer->setColor(nullptr); |
347 } | 347 } |
348 if (frameBuffer->getDepth() && | 348 if (frameBuffer->getDepth() && |
349 renderBuffers[i] == frameBuffer->getDepth()->getID()) { | 349 renderBuffers[i] == frameBuffer->getDepth()->getID()) { |
350 frameBuffer->setDepth(NULL); | 350 frameBuffer->setDepth(nullptr); |
351 } | 351 } |
352 if (frameBuffer->getStencil() && | 352 if (frameBuffer->getStencil() && |
353 renderBuffers[i] == frameBuffer->getStencil()->getID()) { | 353 renderBuffers[i] == frameBuffer->getStencil()->getID()) { |
354 frameBuffer->setStencil(NULL); | 354 frameBuffer->setStencil(nullptr); |
355 } | 355 } |
356 } | 356 } |
357 } | 357 } |
358 | 358 |
359 // then actually "delete" the buffers | 359 // then actually "delete" the buffers |
360 for (int i = 0; i < n; ++i) { | 360 for (int i = 0; i < n; ++i) { |
361 GrRenderBufferObj *buffer = GR_FIND(renderBuffers[i], | 361 GrRenderBufferObj *buffer = GR_FIND(renderBuffers[i], |
362 GrRenderBufferObj, | 362 GrRenderBufferObj, |
363 GrDebugGL::kRenderBuffer_ObjTypes); | 363 GrDebugGL::kRenderBuffer_ObjTypes); |
364 GrAlwaysAssert(buffer); | 364 GrAlwaysAssert(buffer); |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
545 } | 545 } |
546 | 546 |
547 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteVertexArrays(GrGLsizei n, const GrGLui
nt* ids) { | 547 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteVertexArrays(GrGLsizei n, const GrGLui
nt* ids) { |
548 for (GrGLsizei i = 0; i < n; ++i) { | 548 for (GrGLsizei i = 0; i < n; ++i) { |
549 GrVertexArrayObj* array = | 549 GrVertexArrayObj* array = |
550 GR_FIND(ids[i], GrVertexArrayObj, GrDebugGL::kVertexArray_ObjTypes); | 550 GR_FIND(ids[i], GrVertexArrayObj, GrDebugGL::kVertexArray_ObjTypes); |
551 GrAlwaysAssert(array); | 551 GrAlwaysAssert(array); |
552 | 552 |
553 // Deleting the current vertex array binds object 0 | 553 // Deleting the current vertex array binds object 0 |
554 if (GrDebugGL::getInstance()->getVertexArray() == array) { | 554 if (GrDebugGL::getInstance()->getVertexArray() == array) { |
555 GrDebugGL::getInstance()->setVertexArray(NULL); | 555 GrDebugGL::getInstance()->setVertexArray(nullptr); |
556 } | 556 } |
557 | 557 |
558 if (array->getRefCount()) { | 558 if (array->getRefCount()) { |
559 // someone is still using this vertex array so we can't delete it he
re | 559 // someone is still using this vertex array so we can't delete it he
re |
560 array->setMarkedForDeletion(); | 560 array->setMarkedForDeletion(); |
561 } else { | 561 } else { |
562 array->deleteAction(); | 562 array->deleteAction(); |
563 } | 563 } |
564 } | 564 } |
565 } | 565 } |
(...skipping 26 matching lines...) Expand all Loading... |
592 } | 592 } |
593 | 593 |
594 // deleting a bound buffer has the side effect of binding 0 | 594 // deleting a bound buffer has the side effect of binding 0 |
595 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteBuffers(GrGLsizei n, const GrGLuint* i
ds) { | 595 GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteBuffers(GrGLsizei n, const GrGLuint* i
ds) { |
596 // first potentially unbind the buffers | 596 // first potentially unbind the buffers |
597 for (int i = 0; i < n; ++i) { | 597 for (int i = 0; i < n; ++i) { |
598 | 598 |
599 if (GrDebugGL::getInstance()->getArrayBuffer() && | 599 if (GrDebugGL::getInstance()->getArrayBuffer() && |
600 ids[i] == GrDebugGL::getInstance()->getArrayBuffer()->getID()) { | 600 ids[i] == GrDebugGL::getInstance()->getArrayBuffer()->getID()) { |
601 // this ID is the current array buffer | 601 // this ID is the current array buffer |
602 GrDebugGL::getInstance()->setArrayBuffer(NULL); | 602 GrDebugGL::getInstance()->setArrayBuffer(nullptr); |
603 } | 603 } |
604 if (GrDebugGL::getInstance()->getElementArrayBuffer() && | 604 if (GrDebugGL::getInstance()->getElementArrayBuffer() && |
605 ids[i] == | 605 ids[i] == |
606 GrDebugGL::getInstance()->getElementArrayBuffer()->getID()) { | 606 GrDebugGL::getInstance()->getElementArrayBuffer()->getID()) { |
607 // this ID is the current element array buffer | 607 // this ID is the current element array buffer |
608 GrDebugGL::getInstance()->setElementArrayBuffer(NULL); | 608 GrDebugGL::getInstance()->setElementArrayBuffer(nullptr); |
609 } | 609 } |
610 } | 610 } |
611 | 611 |
612 // then actually "delete" the buffers | 612 // then actually "delete" the buffers |
613 for (int i = 0; i < n; ++i) { | 613 for (int i = 0; i < n; ++i) { |
614 GrBufferObj *buffer = GR_FIND(ids[i], | 614 GrBufferObj *buffer = GR_FIND(ids[i], |
615 GrBufferObj, | 615 GrBufferObj, |
616 GrDebugGL::kBuffer_ObjTypes); | 616 GrDebugGL::kBuffer_ObjTypes); |
617 GrAlwaysAssert(buffer); | 617 GrAlwaysAssert(buffer); |
618 | 618 |
619 GrAlwaysAssert(!buffer->getDeleted()); | 619 GrAlwaysAssert(!buffer->getDeleted()); |
620 buffer->deleteAction(); | 620 buffer->deleteAction(); |
621 } | 621 } |
622 } | 622 } |
623 | 623 |
624 // map a buffer to the caller's address space | 624 // map a buffer to the caller's address space |
625 GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBufferRange(GrGLenum target, GrGLintptr
offset, | 625 GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBufferRange(GrGLenum target, GrGLintptr
offset, |
626 GrGLsizeiptr length, GrGLbit
field access) { | 626 GrGLsizeiptr length, GrGLbit
field access) { |
627 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || | 627 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || |
628 GR_GL_ELEMENT_ARRAY_BUFFER == target); | 628 GR_GL_ELEMENT_ARRAY_BUFFER == target); |
629 | 629 |
630 // We only expect read access and we expect that the buffer or range is alwa
ys invalidated. | 630 // We only expect read access and we expect that the buffer or range is alwa
ys invalidated. |
631 GrAlwaysAssert(!SkToBool(GR_GL_MAP_READ_BIT & access)); | 631 GrAlwaysAssert(!SkToBool(GR_GL_MAP_READ_BIT & access)); |
632 GrAlwaysAssert((GR_GL_MAP_INVALIDATE_BUFFER_BIT | GR_GL_MAP_INVALIDATE_RANGE
_BIT) & access); | 632 GrAlwaysAssert((GR_GL_MAP_INVALIDATE_BUFFER_BIT | GR_GL_MAP_INVALIDATE_RANGE
_BIT) & access); |
633 | 633 |
634 GrBufferObj *buffer = NULL; | 634 GrBufferObj *buffer = nullptr; |
635 switch (target) { | 635 switch (target) { |
636 case GR_GL_ARRAY_BUFFER: | 636 case GR_GL_ARRAY_BUFFER: |
637 buffer = GrDebugGL::getInstance()->getArrayBuffer(); | 637 buffer = GrDebugGL::getInstance()->getArrayBuffer(); |
638 break; | 638 break; |
639 case GR_GL_ELEMENT_ARRAY_BUFFER: | 639 case GR_GL_ELEMENT_ARRAY_BUFFER: |
640 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); | 640 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); |
641 break; | 641 break; |
642 default: | 642 default: |
643 SkFAIL("Unexpected target to glMapBufferRange"); | 643 SkFAIL("Unexpected target to glMapBufferRange"); |
644 break; | 644 break; |
645 } | 645 } |
646 | 646 |
647 if (buffer) { | 647 if (buffer) { |
648 GrAlwaysAssert(offset >= 0 && offset + length <= buffer->getSize()); | 648 GrAlwaysAssert(offset >= 0 && offset + length <= buffer->getSize()); |
649 GrAlwaysAssert(!buffer->getMapped()); | 649 GrAlwaysAssert(!buffer->getMapped()); |
650 buffer->setMapped(offset, length); | 650 buffer->setMapped(offset, length); |
651 return buffer->getDataPtr() + offset; | 651 return buffer->getDataPtr() + offset; |
652 } | 652 } |
653 | 653 |
654 GrAlwaysAssert(false); | 654 GrAlwaysAssert(false); |
655 return NULL; // no buffer bound to the target | 655 return nullptr; // no buffer bound to the target |
656 } | 656 } |
657 | 657 |
658 GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBuffer(GrGLenum target, GrGLenum access)
{ | 658 GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBuffer(GrGLenum target, GrGLenum access)
{ |
659 GrAlwaysAssert(GR_GL_WRITE_ONLY == access); | 659 GrAlwaysAssert(GR_GL_WRITE_ONLY == access); |
660 | 660 |
661 GrBufferObj *buffer = NULL; | 661 GrBufferObj *buffer = nullptr; |
662 switch (target) { | 662 switch (target) { |
663 case GR_GL_ARRAY_BUFFER: | 663 case GR_GL_ARRAY_BUFFER: |
664 buffer = GrDebugGL::getInstance()->getArrayBuffer(); | 664 buffer = GrDebugGL::getInstance()->getArrayBuffer(); |
665 break; | 665 break; |
666 case GR_GL_ELEMENT_ARRAY_BUFFER: | 666 case GR_GL_ELEMENT_ARRAY_BUFFER: |
667 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); | 667 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); |
668 break; | 668 break; |
669 default: | 669 default: |
670 SkFAIL("Unexpected target to glMapBuffer"); | 670 SkFAIL("Unexpected target to glMapBuffer"); |
671 break; | 671 break; |
672 } | 672 } |
673 | 673 |
674 return debugGLMapBufferRange(target, 0, buffer->getSize(), | 674 return debugGLMapBufferRange(target, 0, buffer->getSize(), |
675 GR_GL_MAP_WRITE_BIT | GR_GL_MAP_INVALIDATE_BUFF
ER_BIT); | 675 GR_GL_MAP_WRITE_BIT | GR_GL_MAP_INVALIDATE_BUFF
ER_BIT); |
676 } | 676 } |
677 | 677 |
678 // remove a buffer from the caller's address space | 678 // remove a buffer from the caller's address space |
679 // TODO: check if the "access" method from "glMapBuffer" was honored | 679 // TODO: check if the "access" method from "glMapBuffer" was honored |
680 GrGLboolean GR_GL_FUNCTION_TYPE debugGLUnmapBuffer(GrGLenum target) { | 680 GrGLboolean GR_GL_FUNCTION_TYPE debugGLUnmapBuffer(GrGLenum target) { |
681 | 681 |
682 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || | 682 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || |
683 GR_GL_ELEMENT_ARRAY_BUFFER == target); | 683 GR_GL_ELEMENT_ARRAY_BUFFER == target); |
684 | 684 |
685 GrBufferObj *buffer = NULL; | 685 GrBufferObj *buffer = nullptr; |
686 switch (target) { | 686 switch (target) { |
687 case GR_GL_ARRAY_BUFFER: | 687 case GR_GL_ARRAY_BUFFER: |
688 buffer = GrDebugGL::getInstance()->getArrayBuffer(); | 688 buffer = GrDebugGL::getInstance()->getArrayBuffer(); |
689 break; | 689 break; |
690 case GR_GL_ELEMENT_ARRAY_BUFFER: | 690 case GR_GL_ELEMENT_ARRAY_BUFFER: |
691 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); | 691 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); |
692 break; | 692 break; |
693 default: | 693 default: |
694 SkFAIL("Unexpected target to glUnmapBuffer"); | 694 SkFAIL("Unexpected target to glUnmapBuffer"); |
695 break; | 695 break; |
696 } | 696 } |
697 | 697 |
698 if (buffer) { | 698 if (buffer) { |
699 GrAlwaysAssert(buffer->getMapped()); | 699 GrAlwaysAssert(buffer->getMapped()); |
700 buffer->resetMapped(); | 700 buffer->resetMapped(); |
701 return GR_GL_TRUE; | 701 return GR_GL_TRUE; |
702 } | 702 } |
703 | 703 |
704 GrAlwaysAssert(false); | 704 GrAlwaysAssert(false); |
705 return GR_GL_FALSE; // GR_GL_INVALID_OPERATION; | 705 return GR_GL_FALSE; // GR_GL_INVALID_OPERATION; |
706 } | 706 } |
707 | 707 |
708 GrGLvoid GR_GL_FUNCTION_TYPE debugGLFlushMappedBufferRange(GrGLenum target, | 708 GrGLvoid GR_GL_FUNCTION_TYPE debugGLFlushMappedBufferRange(GrGLenum target, |
709 GrGLintptr offset, | 709 GrGLintptr offset, |
710 GrGLsizeiptr length)
{ | 710 GrGLsizeiptr length)
{ |
711 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || | 711 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || |
712 GR_GL_ELEMENT_ARRAY_BUFFER == target); | 712 GR_GL_ELEMENT_ARRAY_BUFFER == target); |
713 | 713 |
714 GrBufferObj *buffer = NULL; | 714 GrBufferObj *buffer = nullptr; |
715 switch (target) { | 715 switch (target) { |
716 case GR_GL_ARRAY_BUFFER: | 716 case GR_GL_ARRAY_BUFFER: |
717 buffer = GrDebugGL::getInstance()->getArrayBuffer(); | 717 buffer = GrDebugGL::getInstance()->getArrayBuffer(); |
718 break; | 718 break; |
719 case GR_GL_ELEMENT_ARRAY_BUFFER: | 719 case GR_GL_ELEMENT_ARRAY_BUFFER: |
720 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); | 720 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); |
721 break; | 721 break; |
722 default: | 722 default: |
723 SkFAIL("Unexpected target to glUnmapBuffer"); | 723 SkFAIL("Unexpected target to glUnmapBuffer"); |
724 break; | 724 break; |
(...skipping 10 matching lines...) Expand all Loading... |
735 | 735 |
736 GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetBufferParameteriv(GrGLenum target, | 736 GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetBufferParameteriv(GrGLenum target, |
737 GrGLenum value, | 737 GrGLenum value, |
738 GrGLint* params) { | 738 GrGLint* params) { |
739 | 739 |
740 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || | 740 GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || |
741 GR_GL_ELEMENT_ARRAY_BUFFER == target); | 741 GR_GL_ELEMENT_ARRAY_BUFFER == target); |
742 GrAlwaysAssert(GR_GL_BUFFER_SIZE == value || | 742 GrAlwaysAssert(GR_GL_BUFFER_SIZE == value || |
743 GR_GL_BUFFER_USAGE == value); | 743 GR_GL_BUFFER_USAGE == value); |
744 | 744 |
745 GrBufferObj *buffer = NULL; | 745 GrBufferObj *buffer = nullptr; |
746 switch (target) { | 746 switch (target) { |
747 case GR_GL_ARRAY_BUFFER: | 747 case GR_GL_ARRAY_BUFFER: |
748 buffer = GrDebugGL::getInstance()->getArrayBuffer(); | 748 buffer = GrDebugGL::getInstance()->getArrayBuffer(); |
749 break; | 749 break; |
750 case GR_GL_ELEMENT_ARRAY_BUFFER: | 750 case GR_GL_ELEMENT_ARRAY_BUFFER: |
751 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); | 751 buffer = GrDebugGL::getInstance()->getElementArrayBuffer(); |
752 break; | 752 break; |
753 } | 753 } |
754 | 754 |
755 GrAlwaysAssert(buffer); | 755 GrAlwaysAssert(buffer); |
(...skipping 21 matching lines...) Expand all Loading... |
777 }; | 777 }; |
778 } // end of namespace | 778 } // end of namespace |
779 | 779 |
780 //////////////////////////////////////////////////////////////////////////////// | 780 //////////////////////////////////////////////////////////////////////////////// |
781 struct GrDebugGLInterface : public GrGLInterface { | 781 struct GrDebugGLInterface : public GrGLInterface { |
782 | 782 |
783 public: | 783 public: |
784 | 784 |
785 | 785 |
786 GrDebugGLInterface() | 786 GrDebugGLInterface() |
787 : fWrapped(NULL) { | 787 : fWrapped(nullptr) { |
788 GrDebugGL::staticRef(); | 788 GrDebugGL::staticRef(); |
789 } | 789 } |
790 | 790 |
791 virtual ~GrDebugGLInterface() { | 791 virtual ~GrDebugGLInterface() { |
792 GrDebugGL::staticUnRef(); | 792 GrDebugGL::staticUnRef(); |
793 } | 793 } |
794 | 794 |
795 void setWrapped(GrGLInterface *interface) { | 795 void setWrapped(GrGLInterface *interface) { |
796 fWrapped.reset(interface); | 796 fWrapped.reset(interface); |
797 } | 797 } |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
980 functions->fMatrixLoadIdentity = noOpGLMatrixLoadIdentity; | 980 functions->fMatrixLoadIdentity = noOpGLMatrixLoadIdentity; |
981 | 981 |
982 functions->fBindFragDataLocationIndexed = | 982 functions->fBindFragDataLocationIndexed = |
983 noOpGLBindFragDataLocationIndexed; | 983 noOpGLBindFragDataLocationIndexed; |
984 | 984 |
985 interface->fExtensions.init(kGL_GrGLStandard, functions->fGetString, functio
ns->fGetStringi, | 985 interface->fExtensions.init(kGL_GrGLStandard, functions->fGetString, functio
ns->fGetStringi, |
986 functions->fGetIntegerv); | 986 functions->fGetIntegerv); |
987 | 987 |
988 return interface; | 988 return interface; |
989 } | 989 } |
OLD | NEW |