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

Unified Diff: cc/output/shader.cc

Issue 2610803002: The great shader refactor: Prepare to merge all vertex shaders. (Closed)
Patch Set: Merge Init and FillLocations Created 3 years, 11 months 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
« cc/output/shader.h ('K') | « cc/output/shader.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/shader.cc
diff --git a/cc/output/shader.cc b/cc/output/shader.cc
index ee0e6a7ae30087f86fa1a6d533f2470ac97d2d7d..ea5288b7a59564cbf3d2a56cf4a26a5306e53f10 100644
--- a/cc/output/shader.cc
+++ b/cc/output/shader.cc
@@ -29,7 +29,6 @@ std::string StripLambda(const char(&shader)[size]) {
// Shaders are passed in with lambda syntax, which tricks clang-format into
// handling them correctly. StipLambda removes this.
#define SHADER0(Src) StripLambda(#Src)
-#define VERTEX_SHADER(Head, Body) SetVertexShaderDefines(Head + Body)
using gpu::gles2::GLES2Interface;
@@ -76,18 +75,6 @@ static std::string SetFragmentTexCoordPrecision(
return shader_string;
}
-static std::string SetVertexShaderDefines(const std::string& shader_string) {
- // We unconditionally use highp in the vertex shader since
- // we are unlikely to be vertex shader bound when drawing large quads.
- // Also, some vertex shaders mutate the texture coordinate in such a
- // way that the effective precision might be lower than expected.
- return base::StringPrintf(
- "#define TexCoordPrecision highp\n"
- "#define NUM_STATIC_QUADS %d\n",
- StaticGeometryBinding::NUM_QUADS) +
- shader_string;
-}
-
TexCoordPrecision TexCoordPrecisionRequired(GLES2Interface* context,
int* highp_threshold_cache,
int highp_threshold_min,
@@ -173,41 +160,93 @@ TexCoordPrecision TexCoordPrecisionRequired(GLES2Interface* context,
max_size.height());
}
-VertexShaderPosTex::VertexShaderPosTex() : matrix_location_(-1) {
-}
+VertexShaderBase::VertexShaderBase() {}
-void VertexShaderPosTex::Init(GLES2Interface* context,
- unsigned program,
- int* base_uniform_index) {
- static const char* uniforms[] = {
- "matrix",
- };
- int locations[arraysize(uniforms)];
+void VertexShaderBase::Init(GLES2Interface* context,
+ unsigned program,
+ int* base_uniform_index) {
+ std::vector<const char*> uniforms;
+ std::vector<int> locations;
- GetProgramUniformLocations(context,
- program,
- arraysize(uniforms),
- uniforms,
- locations,
- base_uniform_index);
- matrix_location_ = locations[0];
+ if (has_tex_transform_)
+ uniforms.push_back("texTransform");
+ if (has_vertex_tex_transform_)
+ uniforms.push_back("vertexTexTransform");
+ if (has_tex_matrix_)
+ uniforms.push_back("texMatrix");
+ if (has_ya_uv_tex_scale_offset_) {
+ uniforms.push_back("yaTexScale");
+ uniforms.push_back("yaTexOffset");
+ uniforms.push_back("uvTexScale");
+ uniforms.push_back("uvTexOffset");
+ }
+ if (has_matrix_)
+ uniforms.push_back("matrix");
+ if (has_vertex_opacity_)
+ uniforms.push_back("opacity");
+ if (has_aa_) {
+ uniforms.push_back("viewport");
+ uniforms.push_back("edge");
+ }
+ if (has_quad_)
+ uniforms.push_back("quad");
+
+ locations.resize(uniforms.size());
+
+ GetProgramUniformLocations(context, program, uniforms.size(), uniforms.data(),
+ locations.data(), base_uniform_index);
+
+ size_t index = 0;
+ if (has_tex_transform_)
+ tex_transform_location_ = locations[index++];
+ if (has_vertex_tex_transform_)
+ vertex_tex_transform_location_ = locations[index++];
+ if (has_tex_matrix_)
+ tex_matrix_location_ = locations[index++];
+ if (has_ya_uv_tex_scale_offset_) {
+ ya_tex_scale_location_ = locations[index++];
+ ya_tex_offset_location_ = locations[index++];
+ uv_tex_scale_location_ = locations[index++];
+ uv_tex_offset_location_ = locations[index++];
+ }
+ if (has_matrix_)
+ matrix_location_ = locations[index++];
+ if (has_vertex_opacity_)
+ vertex_opacity_location_ = locations[index++];
+ if (has_aa_) {
+ viewport_location_ = locations[index++];
+ edge_location_ = locations[index++];
+ }
+ if (has_quad_)
+ quad_location_ = locations[index++];
}
-std::string VertexShaderPosTex::GetShaderString() const {
- return VERTEX_SHADER(GetShaderHead(), GetShaderBody());
+void VertexShaderBase::FillLocations(ShaderLocations* locations) const {
+ locations->quad = quad_location();
+ locations->edge = edge_location();
+ locations->viewport = viewport_location();
+ locations->matrix = matrix_location();
+ locations->tex_transform = tex_transform_location();
}
-std::string VertexShaderPosTex::GetShaderHead() {
+std::string VertexShaderBase::GetShaderString() const {
+ // We unconditionally use highp in the vertex shader since
+ // we are unlikely to be vertex shader bound when drawing large quads.
+ // Also, some vertex shaders mutate the texture coordinate in such a
+ // way that the effective precision might be lower than expected.
+ return base::StringPrintf(
+ "#define TexCoordPrecision highp\n"
+ "#define NUM_STATIC_QUADS %d\n",
+ StaticGeometryBinding::NUM_QUADS) +
+ GetShaderSource();
+}
+
+std::string VertexShaderPosTex::GetShaderSource() const {
return SHADER0([]() {
attribute vec4 a_position;
attribute TexCoordPrecision vec2 a_texCoord;
uniform mat4 matrix;
varying TexCoordPrecision vec2 v_texCoord;
- });
-}
-
-std::string VertexShaderPosTex::GetShaderBody() {
- return SHADER0([]() {
void main() {
gl_Position = matrix * a_position;
v_texCoord = a_texCoord;
@@ -215,40 +254,7 @@ std::string VertexShaderPosTex::GetShaderBody() {
});
}
-VertexShaderPosTexYUVStretchOffset::VertexShaderPosTexYUVStretchOffset()
- : matrix_location_(-1),
- ya_tex_scale_location_(-1),
- ya_tex_offset_location_(-1),
- uv_tex_scale_location_(-1),
- uv_tex_offset_location_(-1) {
-}
-
-void VertexShaderPosTexYUVStretchOffset::Init(GLES2Interface* context,
- unsigned program,
- int* base_uniform_index) {
- static const char* uniforms[] = {
- "matrix", "yaTexScale", "yaTexOffset", "uvTexScale", "uvTexOffset",
- };
- int locations[arraysize(uniforms)];
-
- GetProgramUniformLocations(context,
- program,
- arraysize(uniforms),
- uniforms,
- locations,
- base_uniform_index);
- matrix_location_ = locations[0];
- ya_tex_scale_location_ = locations[1];
- ya_tex_offset_location_ = locations[2];
- uv_tex_scale_location_ = locations[3];
- uv_tex_offset_location_ = locations[4];
-}
-
-std::string VertexShaderPosTexYUVStretchOffset::GetShaderString() const {
- return VERTEX_SHADER(GetShaderHead(), GetShaderBody());
-}
-
-std::string VertexShaderPosTexYUVStretchOffset::GetShaderHead() {
+std::string VertexShaderPosTexYUVStretchOffset::GetShaderSource() const {
return SHADER0([]() {
precision mediump float;
attribute vec4 a_position;
@@ -260,11 +266,6 @@ std::string VertexShaderPosTexYUVStretchOffset::GetShaderHead() {
uniform TexCoordPrecision vec2 yaTexOffset;
uniform TexCoordPrecision vec2 uvTexScale;
uniform TexCoordPrecision vec2 uvTexOffset;
- });
-}
-
-std::string VertexShaderPosTexYUVStretchOffset::GetShaderBody() {
- return SHADER0([]() {
void main() {
gl_Position = matrix * a_position;
v_yaTexCoord = a_texCoord * yaTexScale + yaTexOffset;
@@ -273,73 +274,15 @@ std::string VertexShaderPosTexYUVStretchOffset::GetShaderBody() {
});
}
-VertexShaderPos::VertexShaderPos() : matrix_location_(-1) {
-}
-
-void VertexShaderPos::Init(GLES2Interface* context,
- unsigned program,
- int* base_uniform_index) {
- static const char* uniforms[] = {
- "matrix",
- };
- int locations[arraysize(uniforms)];
-
- GetProgramUniformLocations(context,
- program,
- arraysize(uniforms),
- uniforms,
- locations,
- base_uniform_index);
- matrix_location_ = locations[0];
-}
-
-std::string VertexShaderPos::GetShaderString() const {
- return VERTEX_SHADER(GetShaderHead(), GetShaderBody());
-}
-
-std::string VertexShaderPos::GetShaderHead() {
+std::string VertexShaderPos::GetShaderSource() const {
return SHADER0([]() {
attribute vec4 a_position;
uniform mat4 matrix;
- });
-}
-
-std::string VertexShaderPos::GetShaderBody() {
- return SHADER0([]() {
void main() { gl_Position = matrix * a_position; }
});
}
-VertexShaderPosTexTransform::VertexShaderPosTexTransform()
- : matrix_location_(-1),
- tex_transform_location_(-1),
- vertex_opacity_location_(-1) {
-}
-
-void VertexShaderPosTexTransform::Init(GLES2Interface* context,
- unsigned program,
- int* base_uniform_index) {
- static const char* uniforms[] = {
- "matrix", "texTransform", "opacity",
- };
- int locations[arraysize(uniforms)];
-
- GetProgramUniformLocations(context,
- program,
- arraysize(uniforms),
- uniforms,
- locations,
- base_uniform_index);
- matrix_location_ = locations[0];
- tex_transform_location_ = locations[1];
- vertex_opacity_location_ = locations[2];
-}
-
-std::string VertexShaderPosTexTransform::GetShaderString() const {
- return VERTEX_SHADER(GetShaderHead(), GetShaderBody());
-}
-
-std::string VertexShaderPosTexTransform::GetShaderHead() {
+std::string VertexShaderPosTexTransform::GetShaderSource() const {
return SHADER0([]() {
attribute vec4 a_position;
attribute TexCoordPrecision vec2 a_texCoord;
@@ -349,11 +292,6 @@ std::string VertexShaderPosTexTransform::GetShaderHead() {
uniform float opacity[NUM_STATIC_QUADS * 4];
varying TexCoordPrecision vec2 v_texCoord;
varying float v_alpha;
- });
-}
-
-std::string VertexShaderPosTexTransform::GetShaderBody() {
- return SHADER0([]() {
void main() {
int quad_index = int(a_index * 0.25); // NOLINT
gl_Position = matrix[quad_index] * a_position;
@@ -364,25 +302,10 @@ std::string VertexShaderPosTexTransform::GetShaderBody() {
});
}
-void VertexShaderPosTexTransform::FillLocations(
- ShaderLocations* locations) const {
- locations->matrix = matrix_location();
- locations->tex_transform = tex_transform_location();
-}
-
-std::string VertexShaderPosTexIdentity::GetShaderString() const {
- return VERTEX_SHADER(GetShaderHead(), GetShaderBody());
-}
-
-std::string VertexShaderPosTexIdentity::GetShaderHead() {
+std::string VertexShaderPosTexIdentity::GetShaderSource() const {
return SHADER0([]() {
attribute vec4 a_position;
varying TexCoordPrecision vec2 v_texCoord;
- });
-}
-
-std::string VertexShaderPosTexIdentity::GetShaderBody() {
- return SHADER0([]() {
void main() {
gl_Position = a_position;
v_texCoord = (a_position.xy + vec2(1.0)) * 0.5;
@@ -390,33 +313,7 @@ std::string VertexShaderPosTexIdentity::GetShaderBody() {
});
}
-VertexShaderQuad::VertexShaderQuad()
- : matrix_location_(-1), quad_location_(-1) {
-}
-
-void VertexShaderQuad::Init(GLES2Interface* context,
- unsigned program,
- int* base_uniform_index) {
- static const char* uniforms[] = {
- "matrix", "quad",
- };
- int locations[arraysize(uniforms)];
-
- GetProgramUniformLocations(context,
- program,
- arraysize(uniforms),
- uniforms,
- locations,
- base_uniform_index);
- matrix_location_ = locations[0];
- quad_location_ = locations[1];
-}
-
-std::string VertexShaderQuad::GetShaderString() const {
- return VERTEX_SHADER(GetShaderHead(), GetShaderBody());
-}
-
-std::string VertexShaderQuad::GetShaderHead() {
+std::string VertexShaderQuad::GetShaderSource() const {
#if defined(OS_ANDROID)
// TODO(epenner): Find the cause of this 'quad' uniform
// being missing if we don't add dummy variables.
@@ -428,20 +325,6 @@ std::string VertexShaderQuad::GetShaderHead() {
uniform TexCoordPrecision vec2 quad[4];
uniform TexCoordPrecision vec2 dummy_uniform;
varying TexCoordPrecision vec2 dummy_varying;
- });
-#else
- return SHADER0([]() {
- attribute TexCoordPrecision vec4 a_position;
- attribute float a_index;
- uniform mat4 matrix;
- uniform TexCoordPrecision vec2 quad[4];
- });
-#endif
-}
-
-std::string VertexShaderQuad::GetShaderBody() {
-#if defined(OS_ANDROID)
- return SHADER0([]() {
void main() {
vec2 pos = quad[int(a_index)]; // NOLINT
gl_Position = matrix * vec4(pos, a_position.z, a_position.w);
@@ -450,6 +333,10 @@ std::string VertexShaderQuad::GetShaderBody() {
});
#else
return SHADER0([]() {
+ attribute TexCoordPrecision vec4 a_position;
+ attribute float a_index;
+ uniform mat4 matrix;
+ uniform TexCoordPrecision vec2 quad[4];
void main() {
vec2 pos = quad[int(a_index)]; // NOLINT
gl_Position = matrix * vec4(pos, a_position.z, a_position.w);
@@ -458,38 +345,7 @@ std::string VertexShaderQuad::GetShaderBody() {
#endif
}
-VertexShaderQuadAA::VertexShaderQuadAA()
- : matrix_location_(-1),
- viewport_location_(-1),
- quad_location_(-1),
- edge_location_(-1) {
-}
-
-void VertexShaderQuadAA::Init(GLES2Interface* context,
- unsigned program,
- int* base_uniform_index) {
- static const char* uniforms[] = {
- "matrix", "viewport", "quad", "edge",
- };
- int locations[arraysize(uniforms)];
-
- GetProgramUniformLocations(context,
- program,
- arraysize(uniforms),
- uniforms,
- locations,
- base_uniform_index);
- matrix_location_ = locations[0];
- viewport_location_ = locations[1];
- quad_location_ = locations[2];
- edge_location_ = locations[3];
-}
-
-std::string VertexShaderQuadAA::GetShaderString() const {
- return VERTEX_SHADER(GetShaderHead(), GetShaderBody());
-}
-
-std::string VertexShaderQuadAA::GetShaderHead() {
+std::string VertexShaderQuadAA::GetShaderSource() const {
return SHADER0([]() {
attribute TexCoordPrecision vec4 a_position;
attribute float a_index;
@@ -498,11 +354,6 @@ std::string VertexShaderQuadAA::GetShaderHead() {
uniform TexCoordPrecision vec2 quad[4];
uniform TexCoordPrecision vec3 edge[8];
varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances.
- });
-}
-
-std::string VertexShaderQuadAA::GetShaderBody() {
- return SHADER0([]() {
void main() {
vec2 pos = quad[int(a_index)]; // NOLINT
gl_Position = matrix * vec4(pos, a_position.z, a_position.w);
@@ -518,40 +369,7 @@ std::string VertexShaderQuadAA::GetShaderBody() {
});
}
-VertexShaderQuadTexTransformAA::VertexShaderQuadTexTransformAA()
- : matrix_location_(-1),
- viewport_location_(-1),
- quad_location_(-1),
- edge_location_(-1),
- tex_transform_location_(-1) {
-}
-
-void VertexShaderQuadTexTransformAA::Init(GLES2Interface* context,
- unsigned program,
- int* base_uniform_index) {
- static const char* uniforms[] = {
- "matrix", "viewport", "quad", "edge", "texTrans",
- };
- int locations[arraysize(uniforms)];
-
- GetProgramUniformLocations(context,
- program,
- arraysize(uniforms),
- uniforms,
- locations,
- base_uniform_index);
- matrix_location_ = locations[0];
- viewport_location_ = locations[1];
- quad_location_ = locations[2];
- edge_location_ = locations[3];
- tex_transform_location_ = locations[4];
-}
-
-std::string VertexShaderQuadTexTransformAA::GetShaderString() const {
- return VERTEX_SHADER(GetShaderHead(), GetShaderBody());
-}
-
-std::string VertexShaderQuadTexTransformAA::GetShaderHead() {
+std::string VertexShaderQuadTexTransformAA::GetShaderSource() const {
return SHADER0([]() {
attribute TexCoordPrecision vec4 a_position;
attribute float a_index;
@@ -559,14 +377,9 @@ std::string VertexShaderQuadTexTransformAA::GetShaderHead() {
uniform vec4 viewport;
uniform TexCoordPrecision vec2 quad[4];
uniform TexCoordPrecision vec3 edge[8];
- uniform TexCoordPrecision vec4 texTrans;
+ uniform TexCoordPrecision vec4 texTransform;
ccameron 2017/01/04 09:06:12 This is the one instance where I had to edit a sha
varying TexCoordPrecision vec2 v_texCoord;
varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances.
- });
-}
-
-std::string VertexShaderQuadTexTransformAA::GetShaderBody() {
- return SHADER0([]() {
void main() {
vec2 pos = quad[int(a_index)]; // NOLINT
gl_Position = matrix * vec4(pos, a_position.z, a_position.w);
@@ -578,51 +391,12 @@ std::string VertexShaderQuadTexTransformAA::GetShaderBody() {
edge_dist[1] = vec4(dot(edge[4], screen_pos), dot(edge[5], screen_pos),
dot(edge[6], screen_pos), dot(edge[7], screen_pos)) *
gl_Position.w;
- v_texCoord = (pos.xy + vec2(0.5)) * texTrans.zw + texTrans.xy;
+ v_texCoord = (pos.xy + vec2(0.5)) * texTransform.zw + texTransform.xy;
}
});
}
-void VertexShaderQuadTexTransformAA::FillLocations(
- ShaderLocations* locations) const {
- locations->quad = quad_location();
- locations->edge = edge_location();
- locations->viewport = viewport_location();
- locations->matrix = matrix_location();
- locations->tex_transform = tex_transform_location();
-}
-
-
-VertexShaderTile::VertexShaderTile()
- : matrix_location_(-1),
- quad_location_(-1),
- vertex_tex_transform_location_(-1) {
-}
-
-void VertexShaderTile::Init(GLES2Interface* context,
- unsigned program,
- int* base_uniform_index) {
- static const char* uniforms[] = {
- "matrix", "quad", "vertexTexTransform",
- };
- int locations[arraysize(uniforms)];
-
- GetProgramUniformLocations(context,
- program,
- arraysize(uniforms),
- uniforms,
- locations,
- base_uniform_index);
- matrix_location_ = locations[0];
- quad_location_ = locations[1];
- vertex_tex_transform_location_ = locations[2];
-}
-
-std::string VertexShaderTile::GetShaderString() const {
- return VERTEX_SHADER(GetShaderHead(), GetShaderBody());
-}
-
-std::string VertexShaderTile::GetShaderHead() {
+std::string VertexShaderTile::GetShaderSource() const {
return SHADER0([]() {
attribute TexCoordPrecision vec4 a_position;
attribute TexCoordPrecision vec2 a_texCoord;
@@ -631,11 +405,6 @@ std::string VertexShaderTile::GetShaderHead() {
uniform TexCoordPrecision vec2 quad[4];
uniform TexCoordPrecision vec4 vertexTexTransform;
varying TexCoordPrecision vec2 v_texCoord;
- });
-}
-
-std::string VertexShaderTile::GetShaderBody() {
- return SHADER0([]() {
void main() {
vec2 pos = quad[int(a_index)]; // NOLINT
gl_Position = matrix * vec4(pos, a_position.z, a_position.w);
@@ -644,40 +413,7 @@ std::string VertexShaderTile::GetShaderBody() {
});
}
-VertexShaderTileAA::VertexShaderTileAA()
- : matrix_location_(-1),
- viewport_location_(-1),
- quad_location_(-1),
- edge_location_(-1),
- vertex_tex_transform_location_(-1) {
-}
-
-void VertexShaderTileAA::Init(GLES2Interface* context,
- unsigned program,
- int* base_uniform_index) {
- static const char* uniforms[] = {
- "matrix", "viewport", "quad", "edge", "vertexTexTransform",
- };
- int locations[arraysize(uniforms)];
-
- GetProgramUniformLocations(context,
- program,
- arraysize(uniforms),
- uniforms,
- locations,
- base_uniform_index);
- matrix_location_ = locations[0];
- viewport_location_ = locations[1];
- quad_location_ = locations[2];
- edge_location_ = locations[3];
- vertex_tex_transform_location_ = locations[4];
-}
-
-std::string VertexShaderTileAA::GetShaderString() const {
- return VERTEX_SHADER(GetShaderHead(), GetShaderBody());
-}
-
-std::string VertexShaderTileAA::GetShaderHead() {
+std::string VertexShaderTileAA::GetShaderSource() const {
return SHADER0([]() {
attribute TexCoordPrecision vec4 a_position;
attribute float a_index;
@@ -688,11 +424,6 @@ std::string VertexShaderTileAA::GetShaderHead() {
uniform TexCoordPrecision vec4 vertexTexTransform;
varying TexCoordPrecision vec2 v_texCoord;
varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances.
- });
-}
-
-std::string VertexShaderTileAA::GetShaderBody() {
- return SHADER0([]() {
void main() {
vec2 pos = quad[int(a_index)]; // NOLINT
gl_Position = matrix * vec4(pos, a_position.z, a_position.w);
@@ -709,44 +440,13 @@ std::string VertexShaderTileAA::GetShaderBody() {
});
}
-VertexShaderVideoTransform::VertexShaderVideoTransform()
- : matrix_location_(-1), tex_matrix_location_(-1) {
-}
-
-void VertexShaderVideoTransform::Init(GLES2Interface* context,
- unsigned program,
- int* base_uniform_index) {
- static const char* uniforms[] = {
- "matrix", "texMatrix",
- };
- int locations[arraysize(uniforms)];
-
- GetProgramUniformLocations(context,
- program,
- arraysize(uniforms),
- uniforms,
- locations,
- base_uniform_index);
- matrix_location_ = locations[0];
- tex_matrix_location_ = locations[1];
-}
-
-std::string VertexShaderVideoTransform::GetShaderString() const {
- return VERTEX_SHADER(GetShaderHead(), GetShaderBody());
-}
-
-std::string VertexShaderVideoTransform::GetShaderHead() {
+std::string VertexShaderVideoTransform::GetShaderSource() const {
return SHADER0([]() {
attribute vec4 a_position;
attribute TexCoordPrecision vec2 a_texCoord;
uniform mat4 matrix;
uniform TexCoordPrecision mat4 texMatrix;
varying TexCoordPrecision vec2 v_texCoord;
- });
-}
-
-std::string VertexShaderVideoTransform::GetShaderBody() {
- return SHADER0([]() {
void main() {
gl_Position = matrix * a_position;
v_texCoord = (texMatrix * vec4(a_texCoord.xy, 0.0, 1.0)).xy;
@@ -1319,20 +1019,7 @@ std::string FragmentShaderBase::GetShaderSource() const {
return header + source;
}
-FragmentShaderYUVVideo::FragmentShaderYUVVideo()
- : y_texture_location_(-1),
- u_texture_location_(-1),
- v_texture_location_(-1),
- uv_texture_location_(-1),
- a_texture_location_(-1),
- lut_texture_location_(-1),
- alpha_location_(-1),
- yuv_matrix_location_(-1),
- yuv_adj_location_(-1),
- ya_clamp_rect_location_(-1),
- uv_clamp_rect_location_(-1),
- resource_multiplier_location_(-1),
- resource_offset_location_(-1) {}
+FragmentShaderYUVVideo::FragmentShaderYUVVideo() {}
void FragmentShaderYUVVideo::SetFeatures(bool use_alpha_texture,
bool use_nv12,
« cc/output/shader.h ('K') | « cc/output/shader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698