diff options
author | awoloszyn <awoloszyn@chromium.org> | 2015-03-11 09:54:03 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-11 16:55:00 +0000 |
commit | 7e2af77dcd3b5df086be3421fad40b719779381c (patch) | |
tree | 94b166b79766a1d66c5bfcf8dfe89333a95c2715 /cc/output/dynamic_geometry_binding.h | |
parent | 61df875a6996c00838b8d6857b7c098a55a44e39 (diff) | |
download | chromium_src-7e2af77dcd3b5df086be3421fad40b719779381c.zip chromium_src-7e2af77dcd3b5df086be3421fad40b719779381c.tar.gz chromium_src-7e2af77dcd3b5df086be3421fad40b719779381c.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@{#320096}
Diffstat (limited to 'cc/output/dynamic_geometry_binding.h')
-rw-r--r-- | cc/output/dynamic_geometry_binding.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/cc/output/dynamic_geometry_binding.h b/cc/output/dynamic_geometry_binding.h new file mode 100644 index 0000000..4e4ea3d --- /dev/null +++ b/cc/output/dynamic_geometry_binding.h @@ -0,0 +1,30 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CC_OUTPUT_DYNAMIC_GEOMETRY_BINDING_H_ +#define CC_OUTPUT_DYNAMIC_GEOMETRY_BINDING_H_ + +#include "cc/output/geometry_binding.h" + +namespace cc { + +class DynamicGeometryBinding { + public: + explicit DynamicGeometryBinding(gpu::gles2::GLES2Interface* gl); + void PrepareForDraw(); + void InitializeCustomQuad(const gfx::QuadF& quad); + void InitializeCustomQuadWithUVs(const gfx::QuadF& quad, const float uv[8]); + + private: + gpu::gles2::GLES2Interface* gl_; + + GLuint quad_vertices_vbo_; + GLuint quad_elements_vbo_; + + DISALLOW_COPY_AND_ASSIGN(DynamicGeometryBinding); +}; + +} // namespace cc + +#endif // CC_OUTPUT_DYNAMIC_GEOMETRY_BINDING_H_ |