Index: src/gpu/gl/GrGLCaps.h |
diff --git a/src/gpu/gl/GrGLCaps.h b/src/gpu/gl/GrGLCaps.h |
index 3d3319968fb87995899b734609a97047914d2291..fd03da5e466a2ba08ab52f1ec293012b8af21d6b 100644 |
--- a/src/gpu/gl/GrGLCaps.h |
+++ b/src/gpu/gl/GrGLCaps.h |
@@ -10,7 +10,7 @@ |
#define GrGLCaps_DEFINED |
#include "GrCaps.h" |
-#include "GrGLSL.h" |
+#include "glsl/GrGLSL.h" |
#include "GrGLStencilAttachment.h" |
#include "SkChecksum.h" |
#include "SkTHash.h" |
@@ -328,6 +328,10 @@ private: |
bool doReadPixelsSupported(const GrGLInterface* intf, GrGLenum format, GrGLenum type) const; |
+ void initShaderPrecisionTable(const GrGLContextInfo& ctxInfo, |
+ const GrGLInterface* intf, |
+ GrGLSLCaps* glslCaps); |
+ |
// tracks configs that have been verified to pass the FBO completeness when |
// used as a color attachment |
VerifiedColorConfigs fVerifiedColorConfigs; |
@@ -387,88 +391,4 @@ private: |
typedef GrCaps INHERITED; |
}; |
-class GrGLSLCaps : public GrShaderCaps { |
-public: |
- SK_DECLARE_INST_COUNT(GrGLSLCaps) |
- |
- /** |
- * Indicates how GLSL must interact with advanced blend equations. The KHR extension requires |
- * special layout qualifiers in the fragment shader. |
- */ |
- enum AdvBlendEqInteraction { |
- kNotSupported_AdvBlendEqInteraction, //<! No _blend_equation_advanced extension |
- kAutomatic_AdvBlendEqInteraction, //<! No interaction required |
- kGeneralEnable_AdvBlendEqInteraction, //<! layout(blend_support_all_equations) out |
- kSpecificEnables_AdvBlendEqInteraction, //<! Specific layout qualifiers per equation |
- |
- kLast_AdvBlendEqInteraction = kSpecificEnables_AdvBlendEqInteraction |
- }; |
- |
- /** |
- * Initializes the GrGLSLCaps to the set of features supported in the current |
- * OpenGL context accessible via ctxInfo. |
- */ |
- GrGLSLCaps(const GrContextOptions&, const GrGLContextInfo&, const GrGLInterface*, |
- const GrGLCaps&); |
- |
- /** |
- * Some helper functions for encapsulating various extensions to read FB Buffer on openglES |
- * |
- * TODO(joshualitt) On desktop opengl 4.2+ we can achieve something similar to this effect |
- */ |
- bool fbFetchSupport() const { return fFBFetchSupport; } |
- |
- bool fbFetchNeedsCustomOutput() const { return fFBFetchNeedsCustomOutput; } |
- |
- bool bindlessTextureSupport() const { return fBindlessTextureSupport; } |
- |
- const char* fbFetchColorName() const { return fFBFetchColorName; } |
- |
- const char* fbFetchExtensionString() const { return fFBFetchExtensionString; } |
- |
- bool dropsTileOnZeroDivide() const { return fDropsTileOnZeroDivide; } |
- |
- AdvBlendEqInteraction advBlendEqInteraction() const { return fAdvBlendEqInteraction; } |
- |
- bool mustEnableAdvBlendEqs() const { |
- return fAdvBlendEqInteraction >= kGeneralEnable_AdvBlendEqInteraction; |
- } |
- |
- bool mustEnableSpecificAdvBlendEqs() const { |
- return fAdvBlendEqInteraction == kSpecificEnables_AdvBlendEqInteraction; |
- } |
- |
- bool mustDeclareFragmentShaderOutput() const { |
- return fGLSLGeneration > k110_GrGLSLGeneration; |
- } |
- |
- GrGLSLGeneration generation() const { return fGLSLGeneration; } |
- |
- /** |
- * Returns a string containing the caps info. |
- */ |
- SkString dump() const override; |
- |
-private: |
- // Must be called after fGeometryShaderSupport is initialized. |
- void initShaderPrecisionTable(const GrGLContextInfo&, const GrGLInterface*); |
- |
- GrGLSLGeneration fGLSLGeneration; |
- |
- bool fDropsTileOnZeroDivide : 1; |
- bool fFBFetchSupport : 1; |
- bool fFBFetchNeedsCustomOutput : 1; |
- bool fBindlessTextureSupport : 1; |
- |
- const char* fFBFetchColorName; |
- const char* fFBFetchExtensionString; |
- |
- AdvBlendEqInteraction fAdvBlendEqInteraction; |
- |
- friend class GrGLCaps; // For initialization. |
- |
- typedef GrShaderCaps INHERITED; |
-}; |
- |
- |
#endif |