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

Unified Diff: cc/quads/render_pass.h

Issue 2543473004: cc: Move filters from RenderPassDrawQuad to RenderPass (Closed)
Patch Set: Created 4 years 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/quads/render_pass.h
diff --git a/cc/quads/render_pass.h b/cc/quads/render_pass.h
index 7859ac323ae6776eae4ba0de2c5f27df697a8c2f..6be0d5c42138a5dbb1dc475cf2cf7aa1f4c940de 100644
--- a/cc/quads/render_pass.h
+++ b/cc/quads/render_pass.h
@@ -16,6 +16,7 @@
#include "base/macros.h"
#include "cc/base/cc_export.h"
#include "cc/base/list_container.h"
+#include "cc/output/filter_operations.h"
#include "cc/quads/draw_quad.h"
#include "cc/quads/largest_draw_quad.h"
#include "cc/quads/render_pass_id.h"
@@ -77,12 +78,16 @@ class CC_EXPORT RenderPass {
void SetNew(RenderPassId id,
const gfx::Rect& output_rect,
const gfx::Rect& damage_rect,
- const gfx::Transform& transform_to_root_target);
+ const gfx::Transform& transform_to_root_target,
+ const FilterOperations& filters,
+ const FilterOperations& background_filters);
void SetAll(RenderPassId id,
const gfx::Rect& output_rect,
const gfx::Rect& damage_rect,
const gfx::Transform& transform_to_root_target,
+ const FilterOperations& filters,
+ const FilterOperations& background_filters,
bool has_transparent_background);
void AsValueInto(base::trace_event::TracedValue* dict) const;
@@ -112,6 +117,13 @@ class CC_EXPORT RenderPass {
// render pass' |output_rect|.
gfx::Transform transform_to_root_target;
+ // Post-processing filters, applied to the pixels in the render pass' texture.
+ FilterOperations filters;
+
+ // Post-processing filters, applied to the pixels showing through the
+ // background of the render pass, from behind it.
+ FilterOperations background_filters;
+
// If false, the pixels in the render pass' texture are all opaque.
bool has_transparent_background;
@@ -141,6 +153,8 @@ class CC_EXPORT RenderPass {
using RenderPassList = std::vector<std::unique_ptr<RenderPass>>;
using RenderPassIdHashMap =
std::unordered_map<RenderPassId, RenderPass*, RenderPassIdHash>;
+using RenderPassFilterList =
+ std::vector<std::pair<RenderPassId, FilterOperations>>;
ajuma 2016/11/30 18:40:54 I made this a vector since the number of render pa
danakj 2016/12/01 01:50:46 You would need hundreds (or thousands?) of entries
weiliangc 2016/12/01 19:04:31 Maybe overall just use FilterOperations* when not
weiliangc 2016/12/01 20:16:11 Also sort of unrelated to the CL, but isn't using
weiliangc 2016/12/01 20:23:09 Wait no just realized std::map will need to be bal
danakj 2016/12/01 21:14:34 also std::map is a pointery (ie terrible) data str
ajuma 2016/12/13 15:08:11 Changed to sorting the vector and using std::lower
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698