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

Unified Diff: cc/output/shader.h

Issue 83883002: cc: Allow TEXTURE_RECTANGLE_ARB to be used for tile textures. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
Index: cc/output/shader.h
diff --git a/cc/output/shader.h b/cc/output/shader.h
index eb89d65a2dd8a074fb0205a9b80860993abb49bc..6c2189f3d7856779d55fb8cf338768917152d8ae 100644
--- a/cc/output/shader.h
+++ b/cc/output/shader.h
@@ -24,6 +24,15 @@ enum TexCoordPrecision {
TexCoordPrecisionNA,
TexCoordPrecisionMedium,
TexCoordPrecisionHigh,
+ NumTexCoordPrecisions,
+};
+
+enum SamplerType {
+ SamplerTypeNA,
+ SamplerType2D,
+ SamplerType2DRect,
+ SamplerTypeExternalOES,
+ NumSamplerTypes
};
// Note: The highp_threshold_cache must be provided by the caller to make
@@ -340,77 +349,67 @@ class FragmentTexBackgroundBinding {
class FragmentShaderRGBATexVaryingAlpha : public FragmentTexOpaqueBinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
class FragmentShaderRGBATexPremultiplyAlpha : public FragmentTexOpaqueBinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
class FragmentShaderTexBackgroundVaryingAlpha
: public FragmentTexBackgroundBinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
class FragmentShaderTexBackgroundPremultiplyAlpha
: public FragmentTexBackgroundBinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
class FragmentShaderRGBATexAlpha : public FragmentTexAlphaBinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
class FragmentShaderRGBATexColorMatrixAlpha
: public FragmentTexColorMatrixAlphaBinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
-};
-
-class FragmentShaderRGBATexRectVaryingAlpha : public FragmentTexOpaqueBinding {
- public:
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
class FragmentShaderRGBATexOpaque : public FragmentTexOpaqueBinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
class FragmentShaderRGBATex : public FragmentTexOpaqueBinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
// Swizzles the red and blue component of sampled texel with alpha.
class FragmentShaderRGBATexSwizzleAlpha : public FragmentTexAlphaBinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
// Swizzles the red and blue component of sampled texel without alpha.
class FragmentShaderRGBATexSwizzleOpaque : public FragmentTexOpaqueBinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
-};
-
-// Fragment shader for external textures.
-class FragmentShaderOESImageExternal : public FragmentTexAlphaBinding {
- public:
- FragmentShaderOESImageExternal();
-
- std::string GetShaderString(TexCoordPrecision precision) const;
- void Init(blink::WebGraphicsContext3D* context,
- unsigned program,
- int* base_uniform_index);
- private:
- int sampler_location_;
-
- DISALLOW_COPY_AND_ASSIGN(FragmentShaderOESImageExternal);
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
class FragmentShaderRGBATexAlphaAA {
@@ -420,7 +419,8 @@ class FragmentShaderRGBATexAlphaAA {
void Init(blink::WebGraphicsContext3D* context,
unsigned program,
int* base_uniform_index);
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
int alpha_location() const { return alpha_location_; }
int sampler_location() const { return sampler_location_; }
@@ -456,20 +456,23 @@ class FragmentTexClampAlphaAABinding {
class FragmentShaderRGBATexClampAlphaAA
: public FragmentTexClampAlphaAABinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
// Swizzles the red and blue component of sampled texel.
class FragmentShaderRGBATexClampSwizzleAlphaAA
: public FragmentTexClampAlphaAABinding {
public:
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
};
class FragmentShaderRGBATexAlphaMask {
public:
FragmentShaderRGBATexAlphaMask();
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
void Init(blink::WebGraphicsContext3D* context,
unsigned program,
@@ -497,7 +500,8 @@ class FragmentShaderRGBATexAlphaMask {
class FragmentShaderRGBATexAlphaMaskAA {
public:
FragmentShaderRGBATexAlphaMaskAA();
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
void Init(blink::WebGraphicsContext3D* context,
unsigned program,
@@ -525,7 +529,8 @@ class FragmentShaderRGBATexAlphaMaskAA {
class FragmentShaderRGBATexAlphaMaskColorMatrixAA {
public:
FragmentShaderRGBATexAlphaMaskColorMatrixAA();
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
void Init(blink::WebGraphicsContext3D* context,
unsigned program,
@@ -555,7 +560,8 @@ class FragmentShaderRGBATexAlphaMaskColorMatrixAA {
class FragmentShaderRGBATexAlphaColorMatrixAA {
public:
FragmentShaderRGBATexAlphaColorMatrixAA();
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
void Init(blink::WebGraphicsContext3D* context,
unsigned program,
@@ -575,7 +581,8 @@ class FragmentShaderRGBATexAlphaColorMatrixAA {
class FragmentShaderRGBATexAlphaMaskColorMatrix {
public:
FragmentShaderRGBATexAlphaMaskColorMatrix();
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
void Init(blink::WebGraphicsContext3D* context,
unsigned program,
@@ -605,7 +612,8 @@ class FragmentShaderRGBATexAlphaMaskColorMatrix {
class FragmentShaderYUVVideo {
public:
FragmentShaderYUVVideo();
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
void Init(blink::WebGraphicsContext3D* context,
unsigned program,
@@ -632,7 +640,8 @@ class FragmentShaderYUVVideo {
class FragmentShaderYUVAVideo {
public:
FragmentShaderYUVAVideo();
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
void Init(blink::WebGraphicsContext3D* context,
unsigned program,
@@ -661,7 +670,8 @@ class FragmentShaderYUVAVideo {
class FragmentShaderColor {
public:
FragmentShaderColor();
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
void Init(blink::WebGraphicsContext3D* context,
unsigned program,
@@ -677,7 +687,8 @@ class FragmentShaderColor {
class FragmentShaderColorAA {
public:
FragmentShaderColorAA();
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
void Init(blink::WebGraphicsContext3D* context,
unsigned program,
@@ -693,7 +704,8 @@ class FragmentShaderColorAA {
class FragmentShaderCheckerboard {
public:
FragmentShaderCheckerboard();
- std::string GetShaderString(TexCoordPrecision precision) const;
+ std::string GetShaderString(
+ TexCoordPrecision precision, SamplerType sampler) const;
void Init(blink::WebGraphicsContext3D* context,
unsigned program,

Powered by Google App Engine
This is Rietveld 408576698