summaryrefslogtreecommitdiff
path: root/src/mbgl/gl/cull_face_mode.hpp
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2018-08-23 01:05:26 +0300
committerAnder Conselvan de Oliveira <ander.deoliveira@mapbox.com>2018-09-13 08:42:36 +0300
commit05a7b78aa866720245022805410aae92bb887fa6 (patch)
tree1979e724d148cdb9c3a9fe2aac80f718a41c65b5 /src/mbgl/gl/cull_face_mode.hpp
parente4e43bb54fbc519464083300aef295abc4ee095b (diff)
downloadqtlocation-mapboxgl-05a7b78aa866720245022805410aae92bb887fa6.tar.gz
[core] Add face culling mode parameter to Program::draw
Add a parameter to Program::draw to control whether face culling should be enabled. This will be used in a follow up commit to enable face culling for fill extrusion layers.
Diffstat (limited to 'src/mbgl/gl/cull_face_mode.hpp')
-rw-r--r--src/mbgl/gl/cull_face_mode.hpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/mbgl/gl/cull_face_mode.hpp b/src/mbgl/gl/cull_face_mode.hpp
new file mode 100644
index 0000000000..a408d7a88c
--- /dev/null
+++ b/src/mbgl/gl/cull_face_mode.hpp
@@ -0,0 +1,40 @@
+#pragma once
+
+#include <cstdint>
+
+namespace mbgl {
+namespace gl {
+
+class CullFaceMode {
+public:
+ enum CullFace : bool {
+ Disable = false,
+ Enable = true,
+ };
+
+ enum CullFaceSide : uint32_t {
+ Front = 0x0404,
+ Back = 0x0405,
+ FrontAndBack = 0x0408,
+ };
+
+ enum FrontFace : uint32_t {
+ Clockwise = 0x0900,
+ CounterClockwise = 0x0901
+ };
+
+ CullFace cullFace;
+ CullFaceSide side;
+ FrontFace frontFace;
+
+ static CullFaceMode disabled() {
+ return CullFaceMode { Disable, CullFaceSide::Back, FrontFace::CounterClockwise };
+ }
+
+ static CullFaceMode backCCW() {
+ return CullFaceMode { Enable, CullFaceSide::Back, FrontFace::CounterClockwise };
+ }
+};
+
+} // namespace gl
+} // namespace mbgl