Chromium Code Reviews| Index: cc/output/shader.h |
| diff --git a/cc/output/shader.h b/cc/output/shader.h |
| index 21b4a70de5aaac404dc18061f6483967841dddf7..c3a98b92fb494bee74d3f140132a01eeb8abb958 100644 |
| --- a/cc/output/shader.h |
| +++ b/cc/output/shader.h |
| @@ -763,11 +763,21 @@ class FragmentShaderRGBATexAlphaMaskColorMatrix : public FragmentTexBlendMode { |
| class FragmentShaderYUVVideo : public FragmentTexBlendMode { |
| public: |
| + enum HighbitTexture { |
|
hubbe
2016/09/27 20:49:51
There is no need for three values here, because th
dshwang
2016/09/28 10:33:27
|resource_multiplier_location| and |resource_offse
hubbe
2016/09/28 17:57:44
True I suppose. But you'll need the resource_multi
dshwang
2016/09/29 18:52:28
no, RG88 don't need it.
|
| + HIGHBIT_Y8 = 0, // either RED_8 or LUMINANCE_8 |
| + HIGHBIT_LUMINANCE_F16 = 1, |
| + HIGHBIT_RG88 = 2, |
| + LAST_HIGHBIT_TEXTURE = HIGHBIT_RG88 |
| + }; |
| + |
| FragmentShaderYUVVideo(); |
| std::string GetShaderString( |
| TexCoordPrecision precision, SamplerType sampler) const; |
| - void SetFeatures(bool use_alpha_texture, bool use_nv12, bool use_color_lut); |
| + void SetFeatures(bool use_alpha_texture, |
| + bool use_nv12, |
| + bool use_color_lut, |
| + HighbitTexture highbit_texture); |
| void Init(gpu::gles2::GLES2Interface* context, |
| unsigned program, |
| @@ -781,8 +791,11 @@ class FragmentShaderYUVVideo : public FragmentTexBlendMode { |
| int alpha_location() const { return alpha_location_; } |
| int yuv_matrix_location() const { return yuv_matrix_location_; } |
| int yuv_adj_location() const { return yuv_adj_location_; } |
| + int ya_size_location() const { return ya_size_location_; } |
| + int uv_size_location() const { return uv_size_location_; } |
| int ya_clamp_rect_location() const { return ya_clamp_rect_location_; } |
| int uv_clamp_rect_location() const { return uv_clamp_rect_location_; } |
| + int max_channel_value_location() const { return max_channel_value_location_; } |
| int resource_multiplier_location() const { |
| return resource_multiplier_location_; |
| } |
| @@ -792,6 +805,7 @@ class FragmentShaderYUVVideo : public FragmentTexBlendMode { |
| bool use_alpha_texture_; |
| bool use_nv12_; |
| bool use_color_lut_; |
| + bool highbit_texture_ = HIGHBIT_Y8; |
| int y_texture_location_; |
| int u_texture_location_; |
| @@ -802,6 +816,9 @@ class FragmentShaderYUVVideo : public FragmentTexBlendMode { |
| int alpha_location_; |
| int yuv_matrix_location_; |
| int yuv_adj_location_; |
| + int max_channel_value_location_; |
| + int ya_size_location_; |
| + int uv_size_location_; |
| int ya_clamp_rect_location_; |
| int uv_clamp_rect_location_; |
| int resource_multiplier_location_; |