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

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

Issue 2489643002: Fix query for GR_GL_IMPLEMENTATION_COLOR_READ_FORMAT for GrPixelConfigs that aren't renderable (Closed)
Patch Set: fix Created 4 years, 1 month 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
« no previous file with comments | « src/gpu/gl/GrGLCaps.h ('k') | src/gpu/gl/GrGLGpu.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 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 "GrGLCaps.h" 9 #include "GrGLCaps.h"
10 10
(...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after
848 !gli->fFunctions.fStencilThenCoverStrokePathInstanced || 848 !gli->fFunctions.fStencilThenCoverStrokePathInstanced ||
849 !gli->fFunctions.fProgramPathFragmentInputGen) { 849 !gli->fFunctions.fProgramPathFragmentInputGen) {
850 return false; 850 return false;
851 } 851 }
852 return true; 852 return true;
853 } 853 }
854 854
855 bool GrGLCaps::readPixelsSupported(GrPixelConfig surfaceConfig, 855 bool GrGLCaps::readPixelsSupported(GrPixelConfig surfaceConfig,
856 GrPixelConfig readConfig, 856 GrPixelConfig readConfig,
857 std::function<void (GrGLenum, GrGLint*)> getI ntegerv, 857 std::function<void (GrGLenum, GrGLint*)> getI ntegerv,
858 std::function<bool ()> bindRenderTarget) cons t { 858 std::function<bool ()> bindRenderTarget,
859 std::function<void ()> unbindRenderTarget) co nst {
859 // If it's not possible to even have a color attachment of surfaceConfig the n read pixels is 860 // If it's not possible to even have a color attachment of surfaceConfig the n read pixels is
860 // not supported regardless of readConfig. 861 // not supported regardless of readConfig.
861 if (!this->canConfigBeFBOColorAttachment(surfaceConfig)) { 862 if (!this->canConfigBeFBOColorAttachment(surfaceConfig)) {
862 return false; 863 return false;
863 } 864 }
864 865
865 GrGLenum readFormat; 866 GrGLenum readFormat;
866 GrGLenum readType; 867 GrGLenum readType;
867 if (!this->getReadPixelsFormat(surfaceConfig, readConfig, &readFormat, &read Type)) { 868 if (!this->getReadPixelsFormat(surfaceConfig, readConfig, &readFormat, &read Type)) {
868 return false; 869 return false;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 ReadPixelsFormat* rpFormat = 906 ReadPixelsFormat* rpFormat =
906 const_cast<ReadPixelsFormat*>(&fConfigTable[surfaceConfig].fSecondRe adPixelsFormat); 907 const_cast<ReadPixelsFormat*>(&fConfigTable[surfaceConfig].fSecondRe adPixelsFormat);
907 GrGLint format = 0, type = 0; 908 GrGLint format = 0, type = 0;
908 if (!bindRenderTarget()) { 909 if (!bindRenderTarget()) {
909 return false; 910 return false;
910 } 911 }
911 getIntegerv(GR_GL_IMPLEMENTATION_COLOR_READ_FORMAT, &format); 912 getIntegerv(GR_GL_IMPLEMENTATION_COLOR_READ_FORMAT, &format);
912 getIntegerv(GR_GL_IMPLEMENTATION_COLOR_READ_TYPE, &type); 913 getIntegerv(GR_GL_IMPLEMENTATION_COLOR_READ_TYPE, &type);
913 rpFormat->fFormat = format; 914 rpFormat->fFormat = format;
914 rpFormat->fType = type; 915 rpFormat->fType = type;
916 unbindRenderTarget();
915 } 917 }
916 918
917 return fConfigTable[surfaceConfig].fSecondReadPixelsFormat.fFormat == readFo rmat && 919 return fConfigTable[surfaceConfig].fSecondReadPixelsFormat.fFormat == readFo rmat &&
918 fConfigTable[surfaceConfig].fSecondReadPixelsFormat.fType == readType ; 920 fConfigTable[surfaceConfig].fSecondReadPixelsFormat.fType == readType ;
919 } 921 }
920 922
921 void GrGLCaps::initFSAASupport(const GrGLContextInfo& ctxInfo, const GrGLInterfa ce* gli) { 923 void GrGLCaps::initFSAASupport(const GrGLContextInfo& ctxInfo, const GrGLInterfa ce* gli) {
922 if (kGL_GrGLStandard != ctxInfo.standard()) { 924 if (kGL_GrGLStandard != ctxInfo.standard()) {
923 // We prefer the EXT/IMG extension over ES3 MSAA because we've observed 925 // We prefer the EXT/IMG extension over ES3 MSAA because we've observed
924 // ES3 driver bugs on at least one device with a tiled GPU (N10). 926 // ES3 driver bugs on at least one device with a tiled GPU (N10).
(...skipping 1041 matching lines...) Expand 10 before | Expand all | Expand 10 after
1966 void GrGLCaps::onApplyOptionsOverrides(const GrContextOptions& options) { 1968 void GrGLCaps::onApplyOptionsOverrides(const GrContextOptions& options) {
1967 if (options.fEnableInstancedRendering) { 1969 if (options.fEnableInstancedRendering) {
1968 fInstancedSupport = gr_instanced::GLInstancedRendering::CheckSupport(*th is); 1970 fInstancedSupport = gr_instanced::GLInstancedRendering::CheckSupport(*th is);
1969 #ifndef SK_BUILD_FOR_MAC 1971 #ifndef SK_BUILD_FOR_MAC
1970 // OS X doesn't seem to write correctly to floating point textures when using 1972 // OS X doesn't seem to write correctly to floating point textures when using
1971 // glDraw*Indirect, regardless of the underlying GPU. 1973 // glDraw*Indirect, regardless of the underlying GPU.
1972 fAvoidInstancedDrawsToFPTargets = true; 1974 fAvoidInstancedDrawsToFPTargets = true;
1973 #endif 1975 #endif
1974 } 1976 }
1975 } 1977 }
OLDNEW
« no previous file with comments | « src/gpu/gl/GrGLCaps.h ('k') | src/gpu/gl/GrGLGpu.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698