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

Side by Side Diff: src/gpu/gl/GrGLGpu.cpp

Issue 1527383003: Generate a table of config->glformat info. Precursor to lifting this to caps. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 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
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 8
9 #include "GrGLGpu.h" 9 #include "GrGLGpu.h"
10 #include "GrGLGLSL.h" 10 #include "GrGLGLSL.h"
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 return nullptr; 188 return nullptr;
189 } 189 }
190 190
191 static bool gPrintStartupSpew; 191 static bool gPrintStartupSpew;
192 192
193 GrGLGpu::GrGLGpu(GrGLContext* ctx, GrContext* context) 193 GrGLGpu::GrGLGpu(GrGLContext* ctx, GrContext* context)
194 : GrGpu(context) 194 : GrGpu(context)
195 , fGLContext(ctx) { 195 , fGLContext(ctx) {
196 SkASSERT(ctx); 196 SkASSERT(ctx);
197 fCaps.reset(SkRef(ctx->caps())); 197 fCaps.reset(SkRef(ctx->caps()));
198 this->generateConfigTable();
198 199
199 fHWBoundTextureUniqueIDs.reset(this->glCaps().maxFragmentTextureUnits()); 200 fHWBoundTextureUniqueIDs.reset(this->glCaps().maxFragmentTextureUnits());
200 201
201 GrGLClearErr(this->glInterface()); 202 GrGLClearErr(this->glInterface());
202 if (gPrintStartupSpew) { 203 if (gPrintStartupSpew) {
203 const GrGLubyte* vendor; 204 const GrGLubyte* vendor;
204 const GrGLubyte* renderer; 205 const GrGLubyte* renderer;
205 const GrGLubyte* version; 206 const GrGLubyte* version;
206 GL_CALL_RET(vendor, GetString(GR_GL_VENDOR)); 207 GL_CALL_RET(vendor, GetString(GR_GL_VENDOR));
207 GL_CALL_RET(renderer, GetString(GR_GL_RENDERER)); 208 GL_CALL_RET(renderer, GetString(GR_GL_RENDERER));
(...skipping 2468 matching lines...) Expand 10 before | Expand all | Expand 10 after
2676 case GrPipelineBuilder::kBoth_DrawFace: 2677 case GrPipelineBuilder::kBoth_DrawFace:
2677 GL_CALL(Disable(GR_GL_CULL_FACE)); 2678 GL_CALL(Disable(GR_GL_CULL_FACE));
2678 break; 2679 break;
2679 default: 2680 default:
2680 SkFAIL("Unknown draw face."); 2681 SkFAIL("Unknown draw face.");
2681 } 2682 }
2682 fHWDrawFace = face; 2683 fHWDrawFace = face;
2683 } 2684 }
2684 } 2685 }
2685 2686
2687 void GrGLGpu::generateConfigTable() {
bsalomon 2015/12/16 19:10:45 This function mirrors the logic of the old configT
2688 fConfigTable[kUnknown_GrPixelConfig].fBaseInternalFormat = 0;
2689 fConfigTable[kUnknown_GrPixelConfig].fSizedInternalFormat = 0;
2690 fConfigTable[kUnknown_GrPixelConfig].fExternalFormat = 0;
2691 fConfigTable[kUnknown_GrPixelConfig].fExternalType = 0;
2692
2693 fConfigTable[kRGBA_8888_GrPixelConfig].fBaseInternalFormat = GR_GL_RGBA;
2694 fConfigTable[kRGBA_8888_GrPixelConfig].fSizedInternalFormat = GR_GL_RGBA8;
2695 fConfigTable[kRGBA_8888_GrPixelConfig].fExternalFormat = GR_GL_RGBA;
2696 fConfigTable[kRGBA_8888_GrPixelConfig].fExternalType = GR_GL_UNSIGNED_BYTE;
2697
2698 if (this->glCaps().bgraIsInternalFormat()) {
2699 fConfigTable[kBGRA_8888_GrPixelConfig].fBaseInternalFormat = GR_GL_BGRA;
2700 fConfigTable[kBGRA_8888_GrPixelConfig].fSizedInternalFormat = GR_GL_BGRA 8;
2701 } else {
2702 fConfigTable[kBGRA_8888_GrPixelConfig].fBaseInternalFormat = GR_GL_RGBA;
2703 fConfigTable[kBGRA_8888_GrPixelConfig].fSizedInternalFormat = GR_GL_RGBA 8;
2704 }
2705 fConfigTable[kBGRA_8888_GrPixelConfig].fExternalFormat= GR_GL_BGRA;
2706 fConfigTable[kBGRA_8888_GrPixelConfig].fExternalType = GR_GL_UNSIGNED_BYTE;
2707
2708
2709 fConfigTable[kSRGBA_8888_GrPixelConfig].fBaseInternalFormat = GR_GL_SRGB_ALP HA;
2710 fConfigTable[kSRGBA_8888_GrPixelConfig].fSizedInternalFormat = GR_GL_SRGB8_A LPHA8;
2711 // OpenGL ES 2.0 + GL_EXT_sRGB allows GL_SRGB_ALPHA to be specified as the < format>
2712 // param to Tex(Sub)Image2D. ES 2.0 requires the internalFormat and format t o match.
2713 // Thus, on ES 2.0 we will use GL_SRGB_ALPHA as the externalFormat. However,
2714 // onReadPixels needs code to override that because GL_SRGB_ALPHA is not all owed as a
2715 // glReadPixels format.
2716 // On OpenGL and ES 3.0 GL_SRGB_ALPHA does not work for the <format> param t o
2717 // glReadPixels nor does it work with Tex(Sub)Image2D So we always set the e xternalFormat
2718 // return to GL_RGBA.
2719 if (this->glStandard() == kGLES_GrGLStandard &&
2720 this->glVersion() == GR_GL_VER(2,0)) {
2721 fConfigTable[kSRGBA_8888_GrPixelConfig].fExternalFormat = GR_GL_SRGB_ALP HA;
2722 } else {
2723 fConfigTable[kSRGBA_8888_GrPixelConfig].fExternalFormat = GR_GL_RGBA;
2724 }
2725 fConfigTable[kSRGBA_8888_GrPixelConfig].fExternalType = GR_GL_UNSIGNED_BYTE;
2726
2727
2728 fConfigTable[kRGB_565_GrPixelConfig].fBaseInternalFormat = GR_GL_RGB;
2729 if (this->glCaps().ES2CompatibilitySupport()) {
2730 fConfigTable[kRGB_565_GrPixelConfig].fSizedInternalFormat = GR_GL_RGB565 ;
2731 } else {
2732 fConfigTable[kRGB_565_GrPixelConfig].fSizedInternalFormat = GR_GL_RGB5;
2733 }
2734 fConfigTable[kRGB_565_GrPixelConfig].fExternalFormat = GR_GL_RGB;
2735 fConfigTable[kRGB_565_GrPixelConfig].fExternalType = GR_GL_UNSIGNED_SHORT_5_ 6_5;
2736
2737 fConfigTable[kRGBA_4444_GrPixelConfig].fBaseInternalFormat = GR_GL_RGBA;
2738 fConfigTable[kRGBA_4444_GrPixelConfig].fSizedInternalFormat = GR_GL_RGBA4;
2739 fConfigTable[kRGBA_4444_GrPixelConfig].fExternalFormat = GR_GL_RGBA;
2740 fConfigTable[kRGBA_4444_GrPixelConfig].fExternalType = GR_GL_UNSIGNED_SHORT_ 4_4_4_4;
2741
2742
2743 if (this->glCaps().textureRedSupport()) {
2744 fConfigTable[kAlpha_8_GrPixelConfig].fBaseInternalFormat = GR_GL_RED;
2745 fConfigTable[kAlpha_8_GrPixelConfig].fSizedInternalFormat = GR_GL_R8;
2746 fConfigTable[kAlpha_8_GrPixelConfig].fExternalFormat = GR_GL_RED;
2747 } else {
2748 fConfigTable[kAlpha_8_GrPixelConfig].fBaseInternalFormat = GR_GL_ALPHA;
2749 fConfigTable[kAlpha_8_GrPixelConfig].fSizedInternalFormat = GR_GL_ALPHA8 ;
2750 fConfigTable[kAlpha_8_GrPixelConfig].fExternalFormat = GR_GL_ALPHA;
2751 }
2752 fConfigTable[kAlpha_8_GrPixelConfig].fExternalType = GR_GL_UNSIGNED_BYTE;
2753
2754 fConfigTable[kRGBA_float_GrPixelConfig].fBaseInternalFormat = GR_GL_RGBA;
2755 fConfigTable[kRGBA_float_GrPixelConfig].fSizedInternalFormat = GR_GL_RGBA32F ;
2756 fConfigTable[kRGBA_float_GrPixelConfig].fExternalFormat = GR_GL_RGBA;
2757 fConfigTable[kRGBA_float_GrPixelConfig].fExternalType = GR_GL_FLOAT;
2758
2759 if (this->glCaps().textureRedSupport()) {
2760 fConfigTable[kAlpha_half_GrPixelConfig].fBaseInternalFormat = GR_GL_RED;
2761 fConfigTable[kAlpha_half_GrPixelConfig].fSizedInternalFormat = GR_GL_R16 F;
2762 fConfigTable[kAlpha_half_GrPixelConfig].fExternalFormat = GR_GL_RED;
2763 } else {
2764 fConfigTable[kAlpha_half_GrPixelConfig].fBaseInternalFormat = GR_GL_ALPH A;
2765 fConfigTable[kAlpha_half_GrPixelConfig].fSizedInternalFormat = GR_GL_ALP HA16F;
2766 fConfigTable[kAlpha_half_GrPixelConfig].fExternalFormat = GR_GL_ALPHA;
2767 }
2768 if (kGL_GrGLStandard == this->glStandard() || this->glVersion() >= GR_GL_VER (3, 0)) {
2769 fConfigTable[kAlpha_half_GrPixelConfig].fExternalType = GR_GL_HALF_FLOAT ;
2770 } else {
2771 fConfigTable[kAlpha_half_GrPixelConfig].fExternalType = GR_GL_HALF_FLOAT _OES;
2772 }
2773
2774 fConfigTable[kRGBA_half_GrPixelConfig].fBaseInternalFormat = GR_GL_RGBA;
2775 fConfigTable[kRGBA_half_GrPixelConfig].fSizedInternalFormat = GR_GL_RGBA16F;
2776 fConfigTable[kRGBA_half_GrPixelConfig].fExternalFormat = GR_GL_RGBA;
2777 if (kGL_GrGLStandard == this->glStandard() || this->glVersion() >= GR_GL_VER (3, 0)) {
2778 fConfigTable[kRGBA_half_GrPixelConfig].fExternalType = GR_GL_HALF_FLOAT;
2779 } else {
2780 fConfigTable[kRGBA_half_GrPixelConfig].fExternalType = GR_GL_HALF_FLOAT_ OES;
2781 }
2782
2783 // No sized/unsized internal format distinction for compressed formats, no e xternal format.
2784
2785 fConfigTable[kIndex_8_GrPixelConfig].fBaseInternalFormat = GR_GL_PALETTE8_RG BA8;
2786 fConfigTable[kIndex_8_GrPixelConfig].fSizedInternalFormat = GR_GL_PALETTE8_R GBA8;
2787 fConfigTable[kIndex_8_GrPixelConfig].fExternalFormat = 0;
2788 fConfigTable[kIndex_8_GrPixelConfig].fExternalType = 0;
2789
2790 switch(this->glCaps().latcAlias()) {
2791 case GrGLCaps::kLATC_LATCAlias:
2792 fConfigTable[kLATC_GrPixelConfig].fBaseInternalFormat =
2793 GR_GL_COMPRESSED_LUMINANCE_LATC1;
2794 fConfigTable[kLATC_GrPixelConfig].fSizedInternalFormat =
2795 GR_GL_COMPRESSED_LUMINANCE_LATC1;
2796 break;
2797 case GrGLCaps::kRGTC_LATCAlias:
2798 fConfigTable[kLATC_GrPixelConfig].fBaseInternalFormat = GR_GL_COMPRE SSED_RED_RGTC1;
2799 fConfigTable[kLATC_GrPixelConfig].fSizedInternalFormat = GR_GL_COMPR ESSED_RED_RGTC1;
2800 break;
2801 case GrGLCaps::k3DC_LATCAlias:
2802 fConfigTable[kLATC_GrPixelConfig].fBaseInternalFormat = GR_GL_COMPRE SSED_3DC_X;
2803 fConfigTable[kLATC_GrPixelConfig].fSizedInternalFormat = GR_GL_COMPR ESSED_3DC_X;
2804 break;
2805 }
2806 fConfigTable[kLATC_GrPixelConfig].fExternalFormat = 0;
2807 fConfigTable[kLATC_GrPixelConfig].fExternalType = 0;
2808
2809 fConfigTable[kETC1_GrPixelConfig].fBaseInternalFormat = GR_GL_COMPRESSED_ETC 1_RGB8;
2810 fConfigTable[kETC1_GrPixelConfig].fSizedInternalFormat = GR_GL_COMPRESSED_ET C1_RGB8;
2811 fConfigTable[kETC1_GrPixelConfig].fExternalFormat = 0;
2812 fConfigTable[kETC1_GrPixelConfig].fExternalType = 0;
2813
2814 fConfigTable[kR11_EAC_GrPixelConfig].fBaseInternalFormat = GR_GL_COMPRESSED_ R11_EAC;
2815 fConfigTable[kR11_EAC_GrPixelConfig].fSizedInternalFormat = GR_GL_COMPRESSED _R11_EAC;
2816 fConfigTable[kR11_EAC_GrPixelConfig].fExternalFormat = 0;
2817 fConfigTable[kR11_EAC_GrPixelConfig].fExternalType = 0;
2818
2819 fConfigTable[kASTC_12x12_GrPixelConfig].fBaseInternalFormat = GR_GL_COMPRESS ED_RGBA_ASTC_12x12;
2820 fConfigTable[kASTC_12x12_GrPixelConfig].fSizedInternalFormat = GR_GL_COMPRES SED_RGBA_ASTC_12x12;
2821 fConfigTable[kASTC_12x12_GrPixelConfig].fExternalFormat = 0;
2822 fConfigTable[kASTC_12x12_GrPixelConfig].fExternalType = 0;
2823
2824 #ifdef SK_DEBUG
2825 // Make sure we initialized everything.
2826 ConfigEntry defaultEntry;
2827 for (int i = 0; i < kLast_GrPixelConfig; ++i) {
2828 SkASSERT(defaultEntry.fBaseInternalFormat != fConfigTable[i].fBaseIntern alFormat);
2829 SkASSERT(defaultEntry.fSizedInternalFormat != fConfigTable[i].fSizedInte rnalFormat);
2830 SkASSERT(defaultEntry.fExternalFormat != fConfigTable[i].fExternalFormat );
2831 SkASSERT(defaultEntry.fExternalType != fConfigTable[i].fExternalType);
2832 }
2833 #endif
2834 }
2835
2686 bool GrGLGpu::configToGLFormats(GrPixelConfig config, 2836 bool GrGLGpu::configToGLFormats(GrPixelConfig config,
2687 bool getSizedInternalFormat, 2837 bool getSizedInternalFormat,
2688 GrGLenum* internalFormat, 2838 GrGLenum* internalFormat,
2689 GrGLenum* externalFormat, 2839 GrGLenum* externalFormat,
2690 GrGLenum* externalType) const { 2840 GrGLenum* externalType) const {
2691 GrGLenum dontCare;
2692 if (nullptr == internalFormat) {
2693 internalFormat = &dontCare;
2694 }
2695 if (nullptr == externalFormat) {
2696 externalFormat = &dontCare;
2697 }
2698 if (nullptr == externalType) {
2699 externalType = &dontCare;
2700 }
2701
2702 if(!this->glCaps().isConfigTexturable(config)) { 2841 if(!this->glCaps().isConfigTexturable(config)) {
2703 return false; 2842 return false;
2704 } 2843 }
2705 2844
2706 switch (config) { 2845 if (nullptr != internalFormat) {
2707 case kRGBA_8888_GrPixelConfig: 2846 if (getSizedInternalFormat) {
2708 *internalFormat = GR_GL_RGBA; 2847 *internalFormat = fConfigTable[config].fSizedInternalFormat;
2709 *externalFormat = GR_GL_RGBA; 2848 } else {
2710 if (getSizedInternalFormat) { 2849 *internalFormat = fConfigTable[config].fBaseInternalFormat;
2711 *internalFormat = GR_GL_RGBA8; 2850 }
2712 } else { 2851 }
2713 *internalFormat = GR_GL_RGBA; 2852 if (nullptr != externalFormat) {
2714 } 2853 *externalFormat = fConfigTable[config].fExternalFormat;
2715 *externalType = GR_GL_UNSIGNED_BYTE; 2854 }
2716 break; 2855 if (nullptr != externalType) {
2717 case kBGRA_8888_GrPixelConfig: 2856 *externalType = fConfigTable[config].fExternalType;
2718 if (this->glCaps().bgraIsInternalFormat()) { 2857 }
2719 if (getSizedInternalFormat) {
2720 *internalFormat = GR_GL_BGRA8;
2721 } else {
2722 *internalFormat = GR_GL_BGRA;
2723 }
2724 } else {
2725 if (getSizedInternalFormat) {
2726 *internalFormat = GR_GL_RGBA8;
2727 } else {
2728 *internalFormat = GR_GL_RGBA;
2729 }
2730 }
2731 *externalFormat = GR_GL_BGRA;
2732 *externalType = GR_GL_UNSIGNED_BYTE;
2733 break;
2734 case kSRGBA_8888_GrPixelConfig:
2735 if (getSizedInternalFormat) {
2736 *internalFormat = GR_GL_SRGB8_ALPHA8;
2737 } else {
2738 *internalFormat = GR_GL_SRGB_ALPHA;
2739 }
2740 // OpenGL ES 2.0 + GL_EXT_sRGB allows GL_SRGB_ALPHA to be specified as the <format>
2741 // param to Tex(Sub)Image2D. ES 2.0 requires the internalFormat and format to match.
2742 // Thus, on ES 2.0 we will use GL_SRGB_ALPHA as the externalFormat. However,
2743 // onReadPixels needs code to override that because GL_SRGB_ALPHA is not allowed as a
2744 // glReadPixels format.
2745 // On OpenGL and ES 3.0 GL_SRGB_ALPHA does not work for the <format> param to
2746 // glReadPixels nor does it work with Tex(Sub)Image2D So we always s et the externalFormat
2747 // return to GL_RGBA.
2748 if (this->glStandard() == kGLES_GrGLStandard &&
2749 this->glVersion() == GR_GL_VER(2,0)) {
2750 *externalFormat = GR_GL_SRGB_ALPHA;
2751 } else {
2752 *externalFormat = GR_GL_RGBA;
2753 }
2754 *externalType = GR_GL_UNSIGNED_BYTE;
2755 break;
2756 case kRGB_565_GrPixelConfig:
2757 *internalFormat = GR_GL_RGB;
2758 *externalFormat = GR_GL_RGB;
2759 if (getSizedInternalFormat) {
2760 if (!this->glCaps().ES2CompatibilitySupport()) {
2761 *internalFormat = GR_GL_RGB5;
2762 } else {
2763 *internalFormat = GR_GL_RGB565;
2764 }
2765 } else {
2766 *internalFormat = GR_GL_RGB;
2767 }
2768 *externalType = GR_GL_UNSIGNED_SHORT_5_6_5;
2769 break;
2770 case kRGBA_4444_GrPixelConfig:
2771 *internalFormat = GR_GL_RGBA;
2772 *externalFormat = GR_GL_RGBA;
2773 if (getSizedInternalFormat) {
2774 *internalFormat = GR_GL_RGBA4;
2775 } else {
2776 *internalFormat = GR_GL_RGBA;
2777 }
2778 *externalType = GR_GL_UNSIGNED_SHORT_4_4_4_4;
2779 break;
2780 case kIndex_8_GrPixelConfig:
2781 // no sized/unsized internal format distinction here
2782 *internalFormat = GR_GL_PALETTE8_RGBA8;
2783 break;
2784 case kAlpha_8_GrPixelConfig:
2785 if (this->glCaps().textureRedSupport()) {
2786 *internalFormat = GR_GL_RED;
2787 *externalFormat = GR_GL_RED;
2788 if (getSizedInternalFormat) {
2789 *internalFormat = GR_GL_R8;
2790 } else {
2791 *internalFormat = GR_GL_RED;
2792 }
2793 *externalType = GR_GL_UNSIGNED_BYTE;
2794 } else {
2795 *internalFormat = GR_GL_ALPHA;
2796 *externalFormat = GR_GL_ALPHA;
2797 if (getSizedInternalFormat) {
2798 *internalFormat = GR_GL_ALPHA8;
2799 } else {
2800 *internalFormat = GR_GL_ALPHA;
2801 }
2802 *externalType = GR_GL_UNSIGNED_BYTE;
2803 }
2804 break;
2805 case kETC1_GrPixelConfig:
2806 *internalFormat = GR_GL_COMPRESSED_ETC1_RGB8;
2807 break;
2808 case kLATC_GrPixelConfig:
2809 switch(this->glCaps().latcAlias()) {
2810 case GrGLCaps::kLATC_LATCAlias:
2811 *internalFormat = GR_GL_COMPRESSED_LUMINANCE_LATC1;
2812 break;
2813 case GrGLCaps::kRGTC_LATCAlias:
2814 *internalFormat = GR_GL_COMPRESSED_RED_RGTC1;
2815 break;
2816 case GrGLCaps::k3DC_LATCAlias:
2817 *internalFormat = GR_GL_COMPRESSED_3DC_X;
2818 break;
2819 }
2820 break;
2821 case kR11_EAC_GrPixelConfig:
2822 *internalFormat = GR_GL_COMPRESSED_R11_EAC;
2823 break;
2824 2858
2825 case kASTC_12x12_GrPixelConfig:
2826 *internalFormat = GR_GL_COMPRESSED_RGBA_ASTC_12x12_KHR;
2827 break;
2828
2829 case kRGBA_float_GrPixelConfig:
2830 *internalFormat = GR_GL_RGBA32F;
2831 *externalFormat = GR_GL_RGBA;
2832 *externalType = GR_GL_FLOAT;
2833 break;
2834
2835 case kAlpha_half_GrPixelConfig:
2836 if (this->glCaps().textureRedSupport()) {
2837 if (getSizedInternalFormat) {
2838 *internalFormat = GR_GL_R16F;
2839 } else {
2840 *internalFormat = GR_GL_RED;
2841 }
2842 *externalFormat = GR_GL_RED;
2843 } else {
2844 if (getSizedInternalFormat) {
2845 *internalFormat = GR_GL_ALPHA16F;
2846 } else {
2847 *internalFormat = GR_GL_ALPHA;
2848 }
2849 *externalFormat = GR_GL_ALPHA;
2850 }
2851 if (kGL_GrGLStandard == this->glStandard() || this->glVersion() >= G R_GL_VER(3, 0)) {
2852 *externalType = GR_GL_HALF_FLOAT;
2853 } else {
2854 *externalType = GR_GL_HALF_FLOAT_OES;
2855 }
2856 break;
2857
2858 case kRGBA_half_GrPixelConfig:
2859 *internalFormat = GR_GL_RGBA16F;
2860 *externalFormat = GR_GL_RGBA;
2861 if (kGL_GrGLStandard == this->glStandard() || this->glVersion() >= G R_GL_VER(3, 0)) {
2862 *externalType = GR_GL_HALF_FLOAT;
2863 } else {
2864 *externalType = GR_GL_HALF_FLOAT_OES;
2865 }
2866 break;
2867
2868 default:
2869 return false;
2870 }
2871 return true; 2859 return true;
2872 } 2860 }
2873 2861
2874 void GrGLGpu::setTextureUnit(int unit) { 2862 void GrGLGpu::setTextureUnit(int unit) {
2875 SkASSERT(unit >= 0 && unit < fHWBoundTextureUniqueIDs.count()); 2863 SkASSERT(unit >= 0 && unit < fHWBoundTextureUniqueIDs.count());
2876 if (unit != fHWActiveTextureUnitIdx) { 2864 if (unit != fHWActiveTextureUnitIdx) {
2877 GL_CALL(ActiveTexture(GR_GL_TEXTURE0 + unit)); 2865 GL_CALL(ActiveTexture(GR_GL_TEXTURE0 + unit));
2878 fHWActiveTextureUnitIdx = unit; 2866 fHWActiveTextureUnitIdx = unit;
2879 } 2867 }
2880 } 2868 }
(...skipping 786 matching lines...) Expand 10 before | Expand all | Expand 10 after
3667 this->setVertexArrayID(gpu, 0); 3655 this->setVertexArrayID(gpu, 0);
3668 } 3656 }
3669 int attrCount = gpu->glCaps().maxVertexAttributes(); 3657 int attrCount = gpu->glCaps().maxVertexAttributes();
3670 if (fDefaultVertexArrayAttribState.count() != attrCount) { 3658 if (fDefaultVertexArrayAttribState.count() != attrCount) {
3671 fDefaultVertexArrayAttribState.resize(attrCount); 3659 fDefaultVertexArrayAttribState.resize(attrCount);
3672 } 3660 }
3673 attribState = &fDefaultVertexArrayAttribState; 3661 attribState = &fDefaultVertexArrayAttribState;
3674 } 3662 }
3675 return attribState; 3663 return attribState;
3676 } 3664 }
OLDNEW
« src/gpu/gl/GrGLGpu.h ('K') | « src/gpu/gl/GrGLGpu.h ('k') | third_party/ktx/ktx.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698