Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: Source/core/platform/graphics/GraphicsContext3D.cpp

Issue 93873009: Moved GL enums from GraphicsContext3D to a more generic location. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Changed over to use the standard GL headers and enums. Also fixed some minor style issues. Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2010 Apple Inc. All rights reserved.
3 * Copyright (C) 2010 Google Inc. All rights reserved. 3 * Copyright (C) 2010 Google Inc. All rights reserved.
4 * Copyright (C) 2010 Mozilla Corporation. All rights reserved. 4 * Copyright (C) 2010 Mozilla Corporation. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 DELEGATE_TO_WEBCONTEXT_1R(isFramebuffer, Platform3DObject, GC3Dboolean) 423 DELEGATE_TO_WEBCONTEXT_1R(isFramebuffer, Platform3DObject, GC3Dboolean)
424 DELEGATE_TO_WEBCONTEXT_1R(isProgram, Platform3DObject, GC3Dboolean) 424 DELEGATE_TO_WEBCONTEXT_1R(isProgram, Platform3DObject, GC3Dboolean)
425 DELEGATE_TO_WEBCONTEXT_1R(isRenderbuffer, Platform3DObject, GC3Dboolean) 425 DELEGATE_TO_WEBCONTEXT_1R(isRenderbuffer, Platform3DObject, GC3Dboolean)
426 DELEGATE_TO_WEBCONTEXT_1R(isShader, Platform3DObject, GC3Dboolean) 426 DELEGATE_TO_WEBCONTEXT_1R(isShader, Platform3DObject, GC3Dboolean)
427 DELEGATE_TO_WEBCONTEXT_1R(isTexture, Platform3DObject, GC3Dboolean) 427 DELEGATE_TO_WEBCONTEXT_1R(isTexture, Platform3DObject, GC3Dboolean)
428 DELEGATE_TO_WEBCONTEXT_1(lineWidth, GC3Dfloat) 428 DELEGATE_TO_WEBCONTEXT_1(lineWidth, GC3Dfloat)
429 DELEGATE_TO_WEBCONTEXT_1(linkProgram, Platform3DObject) 429 DELEGATE_TO_WEBCONTEXT_1(linkProgram, Platform3DObject)
430 430
431 void GraphicsContext3D::pixelStorei(GC3Denum pname, GC3Dint param) 431 void GraphicsContext3D::pixelStorei(GC3Denum pname, GC3Dint param)
432 { 432 {
433 if (pname == PACK_ALIGNMENT) 433 if (pname == GL_PACK_ALIGNMENT)
434 m_packAlignment = param; 434 m_packAlignment = param;
435 m_impl->pixelStorei(pname, param); 435 m_impl->pixelStorei(pname, param);
436 } 436 }
437 437
438 DELEGATE_TO_WEBCONTEXT_2(polygonOffset, GC3Dfloat, GC3Dfloat) 438 DELEGATE_TO_WEBCONTEXT_2(polygonOffset, GC3Dfloat, GC3Dfloat)
439 439
440 DELEGATE_TO_WEBCONTEXT_7(readPixels, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, GC3 Denum, GC3Denum, void*) 440 DELEGATE_TO_WEBCONTEXT_7(readPixels, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei, GC3 Denum, GC3Denum, void*)
441 441
442 DELEGATE_TO_WEBCONTEXT(releaseShaderCompiler) 442 DELEGATE_TO_WEBCONTEXT(releaseShaderCompiler)
443 DELEGATE_TO_WEBCONTEXT_4(renderbufferStorage, GC3Denum, GC3Denum, GC3Dsizei, GC3 Dsizei) 443 DELEGATE_TO_WEBCONTEXT_4(renderbufferStorage, GC3Denum, GC3Denum, GC3Dsizei, GC3 Dsizei)
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 getDrawingParameters(drawingBuffer, m_impl, &framebufferId, &width, &height) ; 528 getDrawingParameters(drawingBuffer, m_impl, &framebufferId, &width, &height) ;
529 529
530 Checked<int, RecordOverflow> dataSize = 4; 530 Checked<int, RecordOverflow> dataSize = 4;
531 dataSize *= width; 531 dataSize *= width;
532 dataSize *= height; 532 dataSize *= height;
533 if (dataSize.hasOverflowed()) 533 if (dataSize.hasOverflowed())
534 return 0; 534 return 0;
535 535
536 RefPtr<Uint8ClampedArray> pixels = Uint8ClampedArray::createUninitialized(wi dth * height * 4); 536 RefPtr<Uint8ClampedArray> pixels = Uint8ClampedArray::createUninitialized(wi dth * height * 4);
537 537
538 m_impl->bindFramebuffer(FRAMEBUFFER, framebufferId); 538 m_impl->bindFramebuffer(GL_FRAMEBUFFER, framebufferId);
539 readBackFramebuffer(pixels->data(), width, height, ReadbackRGBA, AlphaDoNoth ing); 539 readBackFramebuffer(pixels->data(), width, height, ReadbackRGBA, AlphaDoNoth ing);
540 flipVertically(pixels->data(), width, height); 540 flipVertically(pixels->data(), width, height);
541 541
542 return pixels.release(); 542 return pixels.release();
543 } 543 }
544 544
545 void GraphicsContext3D::readBackFramebuffer(unsigned char* pixels, int width, in t height, ReadbackOrder readbackOrder, AlphaOp op) 545 void GraphicsContext3D::readBackFramebuffer(unsigned char* pixels, int width, in t height, ReadbackOrder readbackOrder, AlphaOp op)
546 { 546 {
547 if (m_packAlignment > 4) 547 if (m_packAlignment > 4)
548 m_impl->pixelStorei(PACK_ALIGNMENT, 1); 548 m_impl->pixelStorei(GL_PACK_ALIGNMENT, 1);
549 m_impl->readPixels(0, 0, width, height, RGBA, UNSIGNED_BYTE, pixels); 549 m_impl->readPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
550 if (m_packAlignment > 4) 550 if (m_packAlignment > 4)
551 m_impl->pixelStorei(PACK_ALIGNMENT, m_packAlignment); 551 m_impl->pixelStorei(GL_PACK_ALIGNMENT, m_packAlignment);
552 552
553 size_t bufferSize = 4 * width * height; 553 size_t bufferSize = 4 * width * height;
554 554
555 if (readbackOrder == ReadbackSkia) { 555 if (readbackOrder == ReadbackSkia) {
556 #if (SK_R32_SHIFT == 16) && !SK_B32_SHIFT 556 #if (SK_R32_SHIFT == 16) && !SK_B32_SHIFT
557 // Swizzle red and blue channels to match SkBitmap's byte ordering. 557 // Swizzle red and blue channels to match SkBitmap's byte ordering.
558 // TODO(kbr): expose GL_BGRA as extension. 558 // TODO(kbr): expose GL_BGRA as extension.
559 for (size_t i = 0; i < bufferSize; i += 4) { 559 for (size_t i = 0; i < bufferSize; i += 4) {
560 std::swap(pixels[i], pixels[i + 2]); 560 std::swap(pixels[i], pixels[i + 2]);
561 } 561 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 texImage2D(target, level, internalformat, width, height, border, format, typ e, 0); 602 texImage2D(target, level, internalformat, width, height, border, format, typ e, 0);
603 return true; 603 return true;
604 } 604 }
605 605
606 bool GraphicsContext3D::computeFormatAndTypeParameters(GC3Denum format, 606 bool GraphicsContext3D::computeFormatAndTypeParameters(GC3Denum format,
607 GC3Denum type, 607 GC3Denum type,
608 unsigned int* componentsP erPixel, 608 unsigned int* componentsP erPixel,
609 unsigned int* bytesPerCom ponent) 609 unsigned int* bytesPerCom ponent)
610 { 610 {
611 switch (format) { 611 switch (format) {
612 case GraphicsContext3D::ALPHA: 612 case GL_ALPHA:
613 case GraphicsContext3D::LUMINANCE: 613 case GL_LUMINANCE:
614 case GraphicsContext3D::DEPTH_COMPONENT: 614 case GL_DEPTH_COMPONENT:
615 case GraphicsContext3D::DEPTH_STENCIL: 615 case GL_DEPTH_STENCIL_OES:
616 *componentsPerPixel = 1; 616 *componentsPerPixel = 1;
617 break; 617 break;
618 case GraphicsContext3D::LUMINANCE_ALPHA: 618 case GL_LUMINANCE_ALPHA:
619 *componentsPerPixel = 2; 619 *componentsPerPixel = 2;
620 break; 620 break;
621 case GraphicsContext3D::RGB: 621 case GL_RGB:
622 *componentsPerPixel = 3; 622 *componentsPerPixel = 3;
623 break; 623 break;
624 case GraphicsContext3D::RGBA: 624 case GL_RGBA:
625 case Extensions3D::BGRA_EXT: // GL_EXT_texture_format_BGRA8888 625 case Extensions3D::BGRA_EXT: // GL_EXT_texture_format_BGRA8888
626 *componentsPerPixel = 4; 626 *componentsPerPixel = 4;
627 break; 627 break;
628 default: 628 default:
629 return false; 629 return false;
630 } 630 }
631 switch (type) { 631 switch (type) {
632 case GraphicsContext3D::UNSIGNED_BYTE: 632 case GL_UNSIGNED_BYTE:
633 *bytesPerComponent = sizeof(GC3Dubyte); 633 *bytesPerComponent = sizeof(GC3Dubyte);
634 break; 634 break;
635 case GraphicsContext3D::UNSIGNED_SHORT: 635 case GL_UNSIGNED_SHORT:
636 *bytesPerComponent = sizeof(GC3Dushort); 636 *bytesPerComponent = sizeof(GC3Dushort);
637 break; 637 break;
638 case GraphicsContext3D::UNSIGNED_SHORT_5_6_5: 638 case GL_UNSIGNED_SHORT_5_6_5:
639 case GraphicsContext3D::UNSIGNED_SHORT_4_4_4_4: 639 case GL_UNSIGNED_SHORT_4_4_4_4:
640 case GraphicsContext3D::UNSIGNED_SHORT_5_5_5_1: 640 case GL_UNSIGNED_SHORT_5_5_5_1:
641 *componentsPerPixel = 1; 641 *componentsPerPixel = 1;
642 *bytesPerComponent = sizeof(GC3Dushort); 642 *bytesPerComponent = sizeof(GC3Dushort);
643 break; 643 break;
644 case GraphicsContext3D::UNSIGNED_INT_24_8: 644 case GL_UNSIGNED_INT_24_8_OES:
645 case GraphicsContext3D::UNSIGNED_INT: 645 case GL_UNSIGNED_INT:
646 *bytesPerComponent = sizeof(GC3Duint); 646 *bytesPerComponent = sizeof(GC3Duint);
647 break; 647 break;
648 case GraphicsContext3D::FLOAT: // OES_texture_float 648 case GL_FLOAT: // OES_texture_float
649 *bytesPerComponent = sizeof(GC3Dfloat); 649 *bytesPerComponent = sizeof(GC3Dfloat);
650 break; 650 break;
651 case GraphicsContext3D::HALF_FLOAT_OES: // OES_texture_half_float 651 case GL_HALF_FLOAT_OES: // OES_texture_half_float
652 *bytesPerComponent = sizeof(GC3Dhalffloat); 652 *bytesPerComponent = sizeof(GC3Dhalffloat);
653 break; 653 break;
654 default: 654 default:
655 return false; 655 return false;
656 } 656 }
657 return true; 657 return true;
658 } 658 }
659 659
660 GC3Denum GraphicsContext3D::computeImageSizeInBytes(GC3Denum format, GC3Denum ty pe, GC3Dsizei width, GC3Dsizei height, GC3Dint alignment, 660 GC3Denum GraphicsContext3D::computeImageSizeInBytes(GC3Denum format, GC3Denum ty pe, GC3Dsizei width, GC3Dsizei height, GC3Dint alignment,
661 unsigned int* imageSizeInByt es, unsigned int* paddingInBytes) 661 unsigned int* imageSizeInByt es, unsigned int* paddingInBytes)
662 { 662 {
663 ASSERT(imageSizeInBytes); 663 ASSERT(imageSizeInBytes);
664 ASSERT(alignment == 1 || alignment == 2 || alignment == 4 || alignment == 8) ; 664 ASSERT(alignment == 1 || alignment == 2 || alignment == 4 || alignment == 8) ;
665 if (width < 0 || height < 0) 665 if (width < 0 || height < 0)
666 return GraphicsContext3D::INVALID_VALUE; 666 return GL_INVALID_VALUE;
667 unsigned int bytesPerComponent, componentsPerPixel; 667 unsigned int bytesPerComponent, componentsPerPixel;
668 if (!computeFormatAndTypeParameters(format, type, &bytesPerComponent, &compo nentsPerPixel)) 668 if (!computeFormatAndTypeParameters(format, type, &bytesPerComponent, &compo nentsPerPixel))
669 return GraphicsContext3D::INVALID_ENUM; 669 return GL_INVALID_ENUM;
670 if (!width || !height) { 670 if (!width || !height) {
671 *imageSizeInBytes = 0; 671 *imageSizeInBytes = 0;
672 if (paddingInBytes) 672 if (paddingInBytes)
673 *paddingInBytes = 0; 673 *paddingInBytes = 0;
674 return GraphicsContext3D::NO_ERROR; 674 return GL_NO_ERROR;
675 } 675 }
676 CheckedInt<uint32_t> checkedValue(bytesPerComponent * componentsPerPixel); 676 CheckedInt<uint32_t> checkedValue(bytesPerComponent * componentsPerPixel);
677 checkedValue *= width; 677 checkedValue *= width;
678 if (!checkedValue.isValid()) 678 if (!checkedValue.isValid())
679 return GraphicsContext3D::INVALID_VALUE; 679 return GL_INVALID_VALUE;
680 unsigned int validRowSize = checkedValue.value(); 680 unsigned int validRowSize = checkedValue.value();
681 unsigned int padding = 0; 681 unsigned int padding = 0;
682 unsigned int residual = validRowSize % alignment; 682 unsigned int residual = validRowSize % alignment;
683 if (residual) { 683 if (residual) {
684 padding = alignment - residual; 684 padding = alignment - residual;
685 checkedValue += padding; 685 checkedValue += padding;
686 } 686 }
687 // Last row needs no padding. 687 // Last row needs no padding.
688 checkedValue *= (height - 1); 688 checkedValue *= (height - 1);
689 checkedValue += validRowSize; 689 checkedValue += validRowSize;
690 if (!checkedValue.isValid()) 690 if (!checkedValue.isValid())
691 return GraphicsContext3D::INVALID_VALUE; 691 return GL_INVALID_VALUE;
692 *imageSizeInBytes = checkedValue.value(); 692 *imageSizeInBytes = checkedValue.value();
693 if (paddingInBytes) 693 if (paddingInBytes)
694 *paddingInBytes = padding; 694 *paddingInBytes = padding;
695 return GraphicsContext3D::NO_ERROR; 695 return GL_NO_ERROR;
696 } 696 }
697 697
698 GraphicsContext3D::ImageExtractor::ImageExtractor(Image* image, ImageHtmlDomSour ce imageHtmlDomSource, bool premultiplyAlpha, bool ignoreGammaAndColorProfile) 698 GraphicsContext3D::ImageExtractor::ImageExtractor(Image* image, ImageHtmlDomSour ce imageHtmlDomSource, bool premultiplyAlpha, bool ignoreGammaAndColorProfile)
699 { 699 {
700 m_image = image; 700 m_image = image;
701 m_imageHtmlDomSource = imageHtmlDomSource; 701 m_imageHtmlDomSource = imageHtmlDomSource;
702 m_extractSucceeded = extractImage(premultiplyAlpha, ignoreGammaAndColorProfi le); 702 m_extractSucceeded = extractImage(premultiplyAlpha, ignoreGammaAndColorProfi le);
703 } 703 }
704 704
705 GraphicsContext3D::ImageExtractor::~ImageExtractor() 705 GraphicsContext3D::ImageExtractor::~ImageExtractor()
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 return false; 756 return false;
757 m_imageSourceUnpackAlignment = 0; 757 m_imageSourceUnpackAlignment = 0;
758 m_skiaImage->bitmap().lockPixels(); 758 m_skiaImage->bitmap().lockPixels();
759 m_imagePixelData = m_skiaImage->bitmap().getPixels(); 759 m_imagePixelData = m_skiaImage->bitmap().getPixels();
760 return true; 760 return true;
761 } 761 }
762 762
763 unsigned GraphicsContext3D::getClearBitsByFormat(GC3Denum format) 763 unsigned GraphicsContext3D::getClearBitsByFormat(GC3Denum format)
764 { 764 {
765 switch (format) { 765 switch (format) {
766 case GraphicsContext3D::ALPHA: 766 case GL_ALPHA:
767 case GraphicsContext3D::LUMINANCE: 767 case GL_LUMINANCE:
768 case GraphicsContext3D::LUMINANCE_ALPHA: 768 case GL_LUMINANCE_ALPHA:
769 case GraphicsContext3D::RGB: 769 case GL_RGB:
770 case GraphicsContext3D::RGB565: 770 case GL_RGB565:
771 case GraphicsContext3D::RGBA: 771 case GL_RGBA:
772 case GraphicsContext3D::RGBA4: 772 case GL_RGBA4:
773 case GraphicsContext3D::RGB5_A1: 773 case GL_RGB5_A1:
774 return GraphicsContext3D::COLOR_BUFFER_BIT; 774 return GL_COLOR_BUFFER_BIT;
775 case GraphicsContext3D::DEPTH_COMPONENT16: 775 case GL_DEPTH_COMPONENT16:
776 case GraphicsContext3D::DEPTH_COMPONENT: 776 case GL_DEPTH_COMPONENT:
777 return GraphicsContext3D::DEPTH_BUFFER_BIT; 777 return GL_DEPTH_BUFFER_BIT;
778 case GraphicsContext3D::STENCIL_INDEX8: 778 case GL_STENCIL_INDEX8:
779 return GraphicsContext3D::STENCIL_BUFFER_BIT; 779 return GL_STENCIL_BUFFER_BIT;
780 case GraphicsContext3D::DEPTH_STENCIL: 780 case GL_DEPTH_STENCIL_OES:
781 return GraphicsContext3D::DEPTH_BUFFER_BIT | GraphicsContext3D::STENCIL_ BUFFER_BIT; 781 return GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT;
782 default: 782 default:
783 return 0; 783 return 0;
784 } 784 }
785 } 785 }
786 786
787 unsigned GraphicsContext3D::getChannelBitsByFormat(GC3Denum format) 787 unsigned GraphicsContext3D::getChannelBitsByFormat(GC3Denum format)
788 { 788 {
789 switch (format) { 789 switch (format) {
790 case GraphicsContext3D::ALPHA: 790 case GL_ALPHA:
791 return ChannelAlpha; 791 return ChannelAlpha;
792 case GraphicsContext3D::LUMINANCE: 792 case GL_LUMINANCE:
793 return ChannelRGB; 793 return ChannelRGB;
794 case GraphicsContext3D::LUMINANCE_ALPHA: 794 case GL_LUMINANCE_ALPHA:
795 return ChannelRGBA; 795 return ChannelRGBA;
796 case GraphicsContext3D::RGB: 796 case GL_RGB:
797 case GraphicsContext3D::RGB565: 797 case GL_RGB565:
798 return ChannelRGB; 798 return ChannelRGB;
799 case GraphicsContext3D::RGBA: 799 case GL_RGBA:
800 case GraphicsContext3D::RGBA4: 800 case GL_RGBA4:
801 case GraphicsContext3D::RGB5_A1: 801 case GL_RGB5_A1:
802 return ChannelRGBA; 802 return ChannelRGBA;
803 case GraphicsContext3D::DEPTH_COMPONENT16: 803 case GL_DEPTH_COMPONENT16:
804 case GraphicsContext3D::DEPTH_COMPONENT: 804 case GL_DEPTH_COMPONENT:
805 return ChannelDepth; 805 return ChannelDepth;
806 case GraphicsContext3D::STENCIL_INDEX8: 806 case GL_STENCIL_INDEX8:
807 return ChannelStencil; 807 return ChannelStencil;
808 case GraphicsContext3D::DEPTH_STENCIL: 808 case GL_DEPTH_STENCIL_OES:
809 return ChannelDepth | ChannelStencil; 809 return ChannelDepth | ChannelStencil;
810 default: 810 default:
811 return 0; 811 return 0;
812 } 812 }
813 } 813 }
814 814
815 void GraphicsContext3D::paintFramebufferToCanvas(int framebuffer, int width, int height, bool premultiplyAlpha, ImageBuffer* imageBuffer) 815 void GraphicsContext3D::paintFramebufferToCanvas(int framebuffer, int width, int height, bool premultiplyAlpha, ImageBuffer* imageBuffer)
816 { 816 {
817 unsigned char* pixels = 0; 817 unsigned char* pixels = 0;
818 818
(...skipping 14 matching lines...) Expand all
833 if (!m_resizingBitmap.allocPixels()) 833 if (!m_resizingBitmap.allocPixels())
834 return; 834 return;
835 } 835 }
836 readbackBitmap = &m_resizingBitmap; 836 readbackBitmap = &m_resizingBitmap;
837 } 837 }
838 838
839 // Read back the frame buffer. 839 // Read back the frame buffer.
840 SkAutoLockPixels bitmapLock(*readbackBitmap); 840 SkAutoLockPixels bitmapLock(*readbackBitmap);
841 pixels = static_cast<unsigned char*>(readbackBitmap->getPixels()); 841 pixels = static_cast<unsigned char*>(readbackBitmap->getPixels());
842 842
843 m_impl->bindFramebuffer(FRAMEBUFFER, framebuffer); 843 m_impl->bindFramebuffer(GL_FRAMEBUFFER, framebuffer);
844 readBackFramebuffer(pixels, width, height, ReadbackSkia, premultiplyAlpha ? AlphaDoPremultiply : AlphaDoNothing); 844 readBackFramebuffer(pixels, width, height, ReadbackSkia, premultiplyAlpha ? AlphaDoPremultiply : AlphaDoNothing);
845 flipVertically(pixels, width, height); 845 flipVertically(pixels, width, height);
846 846
847 readbackBitmap->notifyPixelsChanged(); 847 readbackBitmap->notifyPixelsChanged();
848 if (m_resizingBitmap.readyToDraw()) { 848 if (m_resizingBitmap.readyToDraw()) {
849 // We need to draw the resizing bitmap into the canvas's backing store. 849 // We need to draw the resizing bitmap into the canvas's backing store.
850 SkCanvas canvas(*canvasBitmap); 850 SkCanvas canvas(*canvasBitmap);
851 SkRect dst; 851 SkRect dst;
852 dst.set(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(canvasBitmap-> width()), SkIntToScalar(canvasBitmap->height())); 852 dst.set(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(canvasBitmap-> width()), SkIntToScalar(canvasBitmap->height()));
853 canvas.drawBitmapRect(m_resizingBitmap, 0, dst); 853 canvas.drawBitmapRect(m_resizingBitmap, 0, dst);
(...skipping 24 matching lines...) Expand all
878 { 878 {
879 if (m_initializedAvailableExtensions) 879 if (m_initializedAvailableExtensions)
880 return; 880 return;
881 881
882 m_initializedAvailableExtensions = true; 882 m_initializedAvailableExtensions = true;
883 bool success = m_impl->makeContextCurrent(); 883 bool success = m_impl->makeContextCurrent();
884 ASSERT(success); 884 ASSERT(success);
885 if (!success) 885 if (!success)
886 return; 886 return;
887 887
888 String extensionsString = m_impl->getString(GraphicsContext3D::EXTENSIONS); 888 String extensionsString = m_impl->getString(GL_EXTENSIONS);
889 splitStringHelper(extensionsString, m_enabledExtensions); 889 splitStringHelper(extensionsString, m_enabledExtensions);
890 890
891 String requestableExtensionsString = m_impl->getRequestableExtensionsCHROMIU M(); 891 String requestableExtensionsString = m_impl->getRequestableExtensionsCHROMIU M();
892 splitStringHelper(requestableExtensionsString, m_requestableExtensions); 892 splitStringHelper(requestableExtensionsString, m_requestableExtensions);
893 } 893 }
894 894
895 895
896 bool GraphicsContext3D::supportsExtension(const String& name) 896 bool GraphicsContext3D::supportsExtension(const String& name)
897 { 897 {
898 initializeExtensions(); 898 initializeExtensions();
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
936 for (unsigned i = 0; i < count; i++) { 936 for (unsigned i = 0; i < count; i++) {
937 uint8* rowA = framebuffer + i * rowBytes; 937 uint8* rowA = framebuffer + i * rowBytes;
938 uint8* rowB = framebuffer + (height - i - 1) * rowBytes; 938 uint8* rowB = framebuffer + (height - i - 1) * rowBytes;
939 memcpy(scanline, rowB, rowBytes); 939 memcpy(scanline, rowB, rowBytes);
940 memcpy(rowB, rowA, rowBytes); 940 memcpy(rowB, rowA, rowBytes);
941 memcpy(rowA, scanline, rowBytes); 941 memcpy(rowA, scanline, rowBytes);
942 } 942 }
943 } 943 }
944 944
945 } // namespace WebCore 945 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698