summaryrefslogtreecommitdiffstats
path: root/cc/output/bsp_walk_action.h
diff options
context:
space:
mode:
authorawoloszyn <awoloszyn@chromium.org>2015-03-12 07:38:32 -0700
committerCommit bot <commit-bot@chromium.org>2015-03-12 14:39:32 +0000
commit3d8eb1d841ec1ea36906d351bc65af4d7d27718a (patch)
treec5bdd8bbc4df5a7080973ba2c6c03efce11077d9 /cc/output/bsp_walk_action.h
parent884896c72542201a64c42ad20048e5b321ec3b81 (diff)
downloadchromium_src-3d8eb1d841ec1ea36906d351bc65af4d7d27718a.zip
chromium_src-3d8eb1d841ec1ea36906d351bc65af4d7d27718a.tar.gz
chromium_src-3d8eb1d841ec1ea36906d351bc65af4d7d27718a.tar.bz2
Splitting of layers for correct intersections
Sorting 3d-sorted layers and rendering them in that order causes issues when layers intersect. Instead place 3d-sorted layers in a bsp tree and fragment any intersecting layers into non-rectangular quads. We can then render the fragments in the correct sorted order regardless of intersections. BUG=455918,159225,132122,230833 Review URL: https://codereview.chromium.org/595593002 Cr-Commit-Position: refs/heads/master@{#320276}
Diffstat (limited to 'cc/output/bsp_walk_action.h')
-rw-r--r--cc/output/bsp_walk_action.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/cc/output/bsp_walk_action.h b/cc/output/bsp_walk_action.h
index ac8fa41..a89d8ea 100644
--- a/cc/output/bsp_walk_action.h
+++ b/cc/output/bsp_walk_action.h
@@ -20,6 +20,22 @@ class CC_EXPORT BspWalkAction {
// The BspTree class takes ownership of all the DrawPolygons returned in list_
// so the BspTree must be preserved while elements in that vector are in use.
+class CC_EXPORT BspWalkActionDrawPolygon : public BspWalkAction {
+ public:
+ void operator()(DrawPolygon* item) override;
+
+ BspWalkActionDrawPolygon(DirectRenderer* renderer,
+ DirectRenderer::DrawingFrame* frame,
+ const gfx::Rect& render_pass_scissor,
+ bool using_scissor_as_optimization);
+
+ private:
+ DirectRenderer* renderer_;
+ DirectRenderer::DrawingFrame* frame_;
+ const gfx::Rect& render_pass_scissor_;
+ bool using_scissor_as_optimization_;
+};
+
class CC_EXPORT BspWalkActionToVector : public BspWalkAction {
public:
explicit BspWalkActionToVector(std::vector<DrawPolygon*>* in_list);