Index: cc/output/shader.h |
diff --git a/cc/output/shader.h b/cc/output/shader.h |
index 9d50182afa46bca37e57804d91e4db19353fb59c..81d4e10833dc29fc6b11a44cea7b4dbb58688920 100644 |
--- a/cc/output/shader.h |
+++ b/cc/output/shader.h |
@@ -7,6 +7,7 @@ |
#include <string> |
+#include "base/logging.h" |
#include "base/macros.h" |
#include "cc/base/cc_export.h" |
@@ -235,95 +236,163 @@ class VertexShaderBase { |
class VertexShaderPosTex : public VertexShaderBase { |
public: |
- void SetSubclassProperties() { |
- tex_coord_source_ = TEX_COORD_SOURCE_ATTRIBUTE; |
- has_matrix_ = true; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_ATTRIBUTE); |
+ DCHECK_EQ(has_matrix_, true); |
+ |
+ DCHECK_EQ(use_uniform_arrays_, false); |
+ DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE); |
+ DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_NONE); |
+ DCHECK_EQ(is_ya_uv_, false); |
+ DCHECK_EQ(has_dummy_variables_, false); |
+ DCHECK_EQ(has_vertex_opacity_, false); |
+ DCHECK_EQ(aa_mode_, NO_AA); |
} |
}; |
class VertexShaderPosTexYUVStretchOffset : public VertexShaderBase { |
public: |
- void SetSubclassProperties() { |
- tex_coord_source_ = TEX_COORD_SOURCE_ATTRIBUTE; |
- has_matrix_ = true; |
- is_ya_uv_ = true; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_ATTRIBUTE); |
+ DCHECK_EQ(has_matrix_, true); |
+ DCHECK_EQ(is_ya_uv_, true); |
+ |
+ DCHECK_EQ(use_uniform_arrays_, false); |
+ DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE); |
+ DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_NONE); |
+ DCHECK_EQ(has_dummy_variables_, false); |
+ DCHECK_EQ(has_vertex_opacity_, false); |
+ DCHECK_EQ(aa_mode_, NO_AA); |
} |
}; |
class VertexShaderPos : public VertexShaderBase { |
public: |
- void SetSubclassProperties() { has_matrix_ = true; } |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(has_matrix_, true); |
+ |
+ DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE); |
+ DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_NONE); |
+ DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_NONE); |
+ DCHECK_EQ(is_ya_uv_, false); |
+ DCHECK_EQ(has_dummy_variables_, false); |
+ DCHECK_EQ(has_vertex_opacity_, false); |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(use_uniform_arrays_, false); |
+ } |
}; |
class VertexShaderPosTexTransform : public VertexShaderBase { |
public: |
- void SetSubclassProperties() { |
- tex_coord_source_ = TEX_COORD_SOURCE_ATTRIBUTE; |
- tex_coord_transform_ = TEX_COORD_TRANSFORM_VEC4; |
- has_matrix_ = true; |
- has_vertex_opacity_ = true; |
- use_uniform_arrays_ = true; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_ATTRIBUTE); |
+ DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_VEC4); |
+ DCHECK_EQ(has_matrix_, true); |
+ DCHECK_EQ(has_vertex_opacity_, true); |
+ DCHECK_EQ(use_uniform_arrays_, true); |
+ |
+ DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE); |
+ DCHECK_EQ(is_ya_uv_, false); |
+ DCHECK_EQ(has_dummy_variables_, false); |
+ DCHECK_EQ(aa_mode_, NO_AA); |
} |
}; |
class VertexShaderQuad : public VertexShaderBase { |
public: |
- void SetSubclassProperties() { |
- position_source_ = POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM; |
- has_matrix_ = true; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM); |
+ DCHECK_EQ(has_matrix_, true); |
#if defined(OS_ANDROID) |
- has_dummy_variables_ = true; |
+ DCHECK_EQ(has_dummy_variables_, true); |
#endif |
+ |
+ DCHECK_EQ(use_uniform_arrays_, false); |
+ DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_NONE); |
+ DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_NONE); |
+ DCHECK_EQ(is_ya_uv_, false); |
+ DCHECK_EQ(has_vertex_opacity_, false); |
+ DCHECK_EQ(aa_mode_, NO_AA); |
} |
}; |
class VertexShaderQuadAA : public VertexShaderBase { |
public: |
- void SetSubclassProperties() { |
- position_source_ = POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM; |
- has_matrix_ = true; |
- aa_mode_ = USE_AA; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM); |
+ DCHECK_EQ(has_matrix_, true); |
+ DCHECK_EQ(aa_mode_, USE_AA); |
+ |
+ DCHECK_EQ(use_uniform_arrays_, false); |
+ DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_NONE); |
+ DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_NONE); |
+ DCHECK_EQ(is_ya_uv_, false); |
+ DCHECK_EQ(has_dummy_variables_, false); |
+ DCHECK_EQ(has_vertex_opacity_, false); |
} |
}; |
class VertexShaderQuadTexTransformAA : public VertexShaderBase { |
public: |
- void SetSubclassProperties() { |
- position_source_ = POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM; |
- tex_coord_source_ = TEX_COORD_SOURCE_POSITION; |
- tex_coord_transform_ = TEX_COORD_TRANSFORM_TRANSLATED_VEC4; |
- has_matrix_ = true; |
- aa_mode_ = USE_AA; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM); |
+ DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_POSITION); |
+ DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_TRANSLATED_VEC4); |
+ DCHECK_EQ(has_matrix_, true); |
+ DCHECK_EQ(aa_mode_, USE_AA); |
+ |
+ DCHECK_EQ(use_uniform_arrays_, false); |
+ DCHECK_EQ(is_ya_uv_, false); |
+ DCHECK_EQ(has_dummy_variables_, false); |
+ DCHECK_EQ(has_vertex_opacity_, false); |
} |
}; |
class VertexShaderTile : public VertexShaderBase { |
public: |
- void SetSubclassProperties() { |
- position_source_ = POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM; |
- tex_coord_source_ = TEX_COORD_SOURCE_ATTRIBUTE; |
- tex_coord_transform_ = TEX_COORD_TRANSFORM_VEC4; |
- has_matrix_ = true; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM); |
+ DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_ATTRIBUTE); |
+ DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_VEC4); |
+ DCHECK_EQ(has_matrix_, true); |
+ |
+ DCHECK_EQ(use_uniform_arrays_, false); |
+ DCHECK_EQ(is_ya_uv_, false); |
+ DCHECK_EQ(has_dummy_variables_, false); |
+ DCHECK_EQ(has_vertex_opacity_, false); |
+ DCHECK_EQ(aa_mode_, NO_AA); |
} |
}; |
class VertexShaderTileAA : public VertexShaderBase { |
public: |
- void SetSubclassProperties() { |
- position_source_ = POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM; |
- tex_coord_source_ = TEX_COORD_SOURCE_POSITION; |
- tex_coord_transform_ = TEX_COORD_TRANSFORM_VEC4; |
- has_matrix_ = true; |
- aa_mode_ = USE_AA; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE_INDEXED_UNIFORM); |
+ DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_POSITION); |
+ DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_VEC4); |
+ DCHECK_EQ(has_matrix_, true); |
+ DCHECK_EQ(aa_mode_, USE_AA); |
+ |
+ DCHECK_EQ(use_uniform_arrays_, false); |
+ DCHECK_EQ(is_ya_uv_, false); |
+ DCHECK_EQ(has_dummy_variables_, false); |
+ DCHECK_EQ(has_vertex_opacity_, false); |
} |
}; |
class VertexShaderVideoTransform : public VertexShaderBase { |
public: |
- void SetSubclassProperties() { |
- tex_coord_source_ = TEX_COORD_SOURCE_ATTRIBUTE; |
- tex_coord_transform_ = TEX_COORD_TRANSFORM_MATRIX; |
- has_matrix_ = true; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(tex_coord_source_, TEX_COORD_SOURCE_ATTRIBUTE); |
+ DCHECK_EQ(tex_coord_transform_, TEX_COORD_TRANSFORM_MATRIX); |
+ DCHECK_EQ(has_matrix_, true); |
+ |
+ DCHECK_EQ(use_uniform_arrays_, false); |
+ DCHECK_EQ(position_source_, POSITION_SOURCE_ATTRIBUTE); |
+ DCHECK_EQ(is_ya_uv_, false); |
+ DCHECK_EQ(has_dummy_variables_, false); |
+ DCHECK_EQ(has_vertex_opacity_, false); |
+ DCHECK_EQ(aa_mode_, NO_AA); |
} |
}; |
@@ -411,168 +480,347 @@ class FragmentShaderBase { |
class FragmentShaderRGBATexVaryingAlpha : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- has_varying_alpha_ = true; |
- frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(has_varying_alpha_, true); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_uniform_alpha_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderRGBATexPremultiplyAlpha : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- has_varying_alpha_ = true; |
- premultiply_alpha_mode_ = NON_PREMULTIPLIED_ALPHA; |
- frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(has_varying_alpha_, true); |
+ DCHECK_EQ(premultiply_alpha_mode_, NON_PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_uniform_alpha_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderTexBackgroundVaryingAlpha : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- has_background_color_ = true; |
- has_varying_alpha_ = true; |
- frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(has_background_color_, true); |
+ DCHECK_EQ(has_varying_alpha_, true); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_uniform_alpha_, false); |
} |
}; |
class FragmentShaderTexBackgroundPremultiplyAlpha : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- has_background_color_ = true; |
- has_varying_alpha_ = true; |
- premultiply_alpha_mode_ = NON_PREMULTIPLIED_ALPHA; |
- frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(has_background_color_, true); |
+ DCHECK_EQ(has_varying_alpha_, true); |
+ DCHECK_EQ(premultiply_alpha_mode_, NON_PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_uniform_alpha_, false); |
} |
}; |
class FragmentShaderRGBATexAlpha : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- has_uniform_alpha_ = true; |
- frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(has_uniform_alpha_, true); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderRGBATexColorMatrixAlpha : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- has_uniform_alpha_ = true; |
- has_color_matrix_ = true; |
- frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(has_uniform_alpha_, true); |
+ DCHECK_EQ(has_color_matrix_, true); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderRGBATexOpaque : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { frag_color_mode_ = FRAG_COLOR_MODE_OPAQUE; } |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_OPAQUE); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_uniform_alpha_, false); |
+ DCHECK_EQ(has_background_color_, false); |
+ } |
}; |
class FragmentShaderRGBATex : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; } |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
+ DCHECK_EQ(sampler_type_, SAMPLER_TYPE_EXTERNAL_OES); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_uniform_alpha_, false); |
+ DCHECK_EQ(has_background_color_, false); |
+ } |
}; |
// Swizzles the red and blue component of sampled texel with alpha. |
class FragmentShaderRGBATexSwizzleAlpha : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- has_uniform_alpha_ = true; |
- swizzle_mode_ = DO_SWIZZLE; |
- frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(has_uniform_alpha_, true); |
+ DCHECK_EQ(swizzle_mode_, DO_SWIZZLE); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
// Swizzles the red and blue component of sampled texel without alpha. |
class FragmentShaderRGBATexSwizzleOpaque : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- swizzle_mode_ = DO_SWIZZLE; |
- frag_color_mode_ = FRAG_COLOR_MODE_OPAQUE; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(swizzle_mode_, DO_SWIZZLE); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_OPAQUE); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_uniform_alpha_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderRGBATexAlphaAA : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- aa_mode_ = USE_AA; |
- has_uniform_alpha_ = true; |
- frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(aa_mode_, USE_AA); |
+ DCHECK_EQ(has_uniform_alpha_, true); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
+ |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderRGBATexClampAlphaAA : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- aa_mode_ = USE_AA; |
- has_uniform_alpha_ = true; |
- has_rgba_fragment_tex_transform_ = true; |
- frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(aa_mode_, USE_AA); |
+ DCHECK_EQ(has_uniform_alpha_, true); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, true); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
+ |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
// Swizzles the red and blue component of sampled texel. |
class FragmentShaderRGBATexClampSwizzleAlphaAA : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- aa_mode_ = USE_AA; |
- has_uniform_alpha_ = true; |
- has_rgba_fragment_tex_transform_ = true; |
- swizzle_mode_ = DO_SWIZZLE; |
- frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(aa_mode_, USE_AA); |
+ DCHECK_EQ(has_uniform_alpha_, true); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, true); |
+ DCHECK_EQ(swizzle_mode_, DO_SWIZZLE); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
+ |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderRGBATexAlphaMask : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- has_uniform_alpha_ = true; |
- mask_mode_ = HAS_MASK; |
- frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; |
- ignore_sampler_type_ = true; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(has_uniform_alpha_, true); |
+ DCHECK_EQ(mask_mode_, HAS_MASK); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
+ DCHECK_EQ(ignore_sampler_type_, true); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderRGBATexAlphaMaskAA : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- aa_mode_ = USE_AA; |
- has_uniform_alpha_ = true; |
- mask_mode_ = HAS_MASK; |
- frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; |
- ignore_sampler_type_ = true; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(aa_mode_, USE_AA); |
+ DCHECK_EQ(has_uniform_alpha_, true); |
+ DCHECK_EQ(mask_mode_, HAS_MASK); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
+ DCHECK_EQ(ignore_sampler_type_, true); |
+ |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderRGBATexAlphaMaskColorMatrixAA : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- aa_mode_ = USE_AA; |
- has_uniform_alpha_ = true; |
- mask_mode_ = HAS_MASK; |
- has_color_matrix_ = true; |
- frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; |
- ignore_sampler_type_ = true; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(aa_mode_, USE_AA); |
+ DCHECK_EQ(has_uniform_alpha_, true); |
+ DCHECK_EQ(mask_mode_, HAS_MASK); |
+ DCHECK_EQ(has_color_matrix_, true); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
+ DCHECK_EQ(ignore_sampler_type_, true); |
+ |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderRGBATexAlphaColorMatrixAA : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- aa_mode_ = USE_AA; |
- has_uniform_alpha_ = true; |
- has_color_matrix_ = true; |
- frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(aa_mode_, USE_AA); |
+ DCHECK_EQ(has_uniform_alpha_, true); |
+ DCHECK_EQ(has_color_matrix_, true); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
+ |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderRGBATexAlphaMaskColorMatrix : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- has_uniform_alpha_ = true; |
- mask_mode_ = HAS_MASK; |
- has_color_matrix_ = true; |
- frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE; |
- ignore_sampler_type_ = true; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(has_uniform_alpha_, true); |
+ DCHECK_EQ(mask_mode_, HAS_MASK); |
+ DCHECK_EQ(has_color_matrix_, true); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_APPLY_BLEND_MODE); |
+ DCHECK_EQ(ignore_sampler_type_, true); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_RGBA_TEXTURE); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
@@ -580,7 +828,7 @@ class FragmentShaderYUVVideo : public FragmentShaderBase { |
public: |
FragmentShaderYUVVideo(); |
- void SetSubclassProperties() {} |
+ void CheckSubclassProperties() {} |
void Init(gpu::gles2::GLES2Interface* context, |
unsigned program, |
@@ -628,18 +876,39 @@ class FragmentShaderYUVVideo : public FragmentShaderBase { |
class FragmentShaderColor : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- input_color_type_ = INPUT_COLOR_SOURCE_UNIFORM; |
- frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_UNIFORM); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
+ |
+ DCHECK_EQ(aa_mode_, NO_AA); |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_uniform_alpha_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |
class FragmentShaderColorAA : public FragmentShaderBase { |
public: |
- void SetSubclassProperties() { |
- input_color_type_ = INPUT_COLOR_SOURCE_UNIFORM; |
- aa_mode_ = USE_AA; |
- frag_color_mode_ = FRAG_COLOR_MODE_DEFAULT; |
+ void CheckSubclassProperties() { |
+ DCHECK_EQ(input_color_type_, INPUT_COLOR_SOURCE_UNIFORM); |
+ DCHECK_EQ(aa_mode_, USE_AA); |
+ DCHECK_EQ(frag_color_mode_, FRAG_COLOR_MODE_DEFAULT); |
+ |
+ DCHECK_EQ(has_varying_alpha_, false); |
+ DCHECK_EQ(swizzle_mode_, NO_SWIZZLE); |
+ DCHECK_EQ(premultiply_alpha_mode_, PREMULTIPLIED_ALPHA); |
+ DCHECK_EQ(has_rgba_fragment_tex_transform_, false); |
+ DCHECK_EQ(ignore_sampler_type_, false); |
+ DCHECK_EQ(mask_mode_, NO_MASK); |
+ DCHECK_EQ(has_color_matrix_, false); |
+ DCHECK_EQ(has_uniform_alpha_, false); |
+ DCHECK_EQ(has_background_color_, false); |
} |
}; |