diff options
author | awoloszyn <awoloszyn@chromium.org> | 2015-03-12 07:38:32 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-12 14:39:32 +0000 |
commit | 3d8eb1d841ec1ea36906d351bc65af4d7d27718a (patch) | |
tree | c5bdd8bbc4df5a7080973ba2c6c03efce11077d9 /cc/output/bsp_walk_action.h | |
parent | 884896c72542201a64c42ad20048e5b321ec3b81 (diff) | |
download | chromium_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.h | 16 |
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); |