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

Unified Diff: cc/output/program_binding.h

Issue 2675813002: Make LUTs independent of YUV in cc shaders (Closed)
Patch Set: compile fix 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
Index: cc/output/program_binding.h
diff --git a/cc/output/program_binding.h b/cc/output/program_binding.h
index 4fcd7e559cbe20564c2bb31196840cc3c2a1db6a..58df9b606187108d4fbb13d9e4d8bdc64c420c44 100644
--- a/cc/output/program_binding.h
+++ b/cc/output/program_binding.h
@@ -94,7 +94,7 @@ class CC_EXPORT ProgramKey {
SamplerType sampler,
YUVAlphaTextureMode yuv_alpha_texture_mode,
UVTextureMode uv_texture_mode,
- ColorConversionMode color_conversion_mode);
+ bool use_lut);
bool operator==(const ProgramKey& other) const;
@@ -117,11 +117,11 @@ class CC_EXPORT ProgramKey {
MaskMode mask_mode_ = NO_MASK;
bool mask_for_background_ = false;
bool has_color_matrix_ = false;
+ bool has_resource_offset_ = false;
+ bool has_lut_ = false;
YUVAlphaTextureMode yuv_alpha_texture_mode_ = YUV_NO_ALPHA_TEXTURE;
UVTextureMode uv_texture_mode_ = UV_TEXTURE_MODE_NA;
-
- ColorConversionMode color_conversion_mode_ = COLOR_CONVERSION_MODE_NONE;
};
struct ProgramKeyHash {
@@ -140,7 +140,8 @@ struct ProgramKeyHash {
(static_cast<size_t>(key.has_color_matrix_) << 23) ^
(static_cast<size_t>(key.yuv_alpha_texture_mode_) << 24) ^
(static_cast<size_t>(key.uv_texture_mode_) << 25) ^
- (static_cast<size_t>(key.color_conversion_mode_) << 26);
+ (static_cast<size_t>(key.has_lut_) << 26) ^
+ (static_cast<size_t>(key.has_resource_offset_) << 27);
}
};
@@ -159,6 +160,9 @@ class Program : public ProgramBindingBase {
fragment_shader_.premultiply_alpha_mode_ = key.premultiplied_alpha_;
fragment_shader_.mask_mode_ = key.mask_mode_;
fragment_shader_.mask_for_background_ = key.mask_for_background_;
+ fragment_shader_.has_color_matrix_ = key.has_color_matrix_;
+ fragment_shader_.has_resource_offset_ = key.has_resource_offset_;
+ fragment_shader_.has_lut_ = key.has_lut_;
switch (key.type_) {
case PROGRAM_TYPE_DEBUG_BORDER:
@@ -266,10 +270,6 @@ class Program : public ProgramBindingBase {
return fragment_shader_.lut_texture_location_;
}
int lut_size_location() const { return fragment_shader_.lut_size_location_; }
- int yuv_matrix_location() const {
- return fragment_shader_.yuv_matrix_location_;
- }
- int yuv_adj_location() const { return fragment_shader_.yuv_adj_location_; }
int ya_clamp_rect_location() const {
return fragment_shader_.ya_clamp_rect_location_;
}
@@ -365,7 +365,6 @@ class Program : public ProgramBindingBase {
// Initialize fragment program.
fragment_shader_.frag_color_mode_ = FRAG_COLOR_MODE_APPLY_BLEND_MODE;
fragment_shader_.has_uniform_alpha_ = true;
- fragment_shader_.has_color_matrix_ = key.has_color_matrix_;
if (key.mask_mode_ == HAS_MASK) {
fragment_shader_.ignore_sampler_type_ = true;
} else {
@@ -389,7 +388,7 @@ class Program : public ProgramBindingBase {
fragment_shader_.has_uniform_alpha_ = true;
fragment_shader_.yuv_alpha_texture_mode_ = key.yuv_alpha_texture_mode_;
fragment_shader_.uv_texture_mode_ = key.uv_texture_mode_;
- fragment_shader_.color_conversion_mode_ = key.color_conversion_mode_;
+ DCHECK(key.has_lut_ || key.has_color_matrix_);
}
void InitializeInternal(ContextProvider* context_provider) {

Powered by Google App Engine
This is Rietveld 408576698