Ocean
GLESStereoAttribute.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Meta Platforms, Inc. and affiliates.
3  *
4  * This source code is licensed under the MIT license found in the
5  * LICENSE file in the root directory of this source tree.
6  */
7 
8 #ifndef META_OCEAN_RENDERING_GLES_STEREO_ATTRIBUTE_H
9 #define META_OCEAN_RENDERING_GLES_STEREO_ATTRIBUTE_H
10 
13 
15 
16 namespace Ocean
17 {
18 
19 namespace Rendering
20 {
21 
22 namespace GLESceneGraph
23 {
24 
25 /**
26  * This class implements a GLESceneGraph stereo attribute.
27  * @ingroup renderinggles
28  */
29 class OCEAN_RENDERING_GLES_EXPORT GLESStereoAttribute :
30  virtual public GLESAttribute,
31  virtual public StereoAttribute
32 {
33  friend class GLESFactory;
34 
35  public:
36 
37  /**
38  * Returns the stereo visibility property.
39  * @see StereoAttribute::stereoVisibility().
40  */
42 
43  /**
44  * Sets the stereo visibility property.
45  * @see StereoAttribute::setStereoVisibility().
46  */
47  void setStereoVisibility(const StereoVisibility stereoVisibility) override;
48 
49  /**
50  * Binds this attribute.
51  * @see GLESAttribute::bindAttribute().
52  */
53  void bindAttribute(const GLESFramebuffer& framebuffer, GLESShaderProgram& shaderProgram) override;
54 
55  /**
56  * Unbindes this attribute.
57  * @see GLESAttribute::unbindAttribute().
58  */
59  void unbindAttribute() override;
60 
61  protected:
62 
63  /**
64  * Creates a new GLESceneGraph stereo attribute.
65  */
67 
68  /**
69  * Destructs a GLESceneGraph stereo attribute.
70  */
72 
73  protected:
74 
75  /// The stereo visibility property of this attribute.
77 
78  /// The previous cull face value, will be used to restore the previous state when unbinding.
80 
81  /// The previous cull face mode, will be used to restore the previous state when unbinding.
83 };
84 
85 }
86 
87 }
88 
89 }
90 
91 #endif // META_OCEAN_RENDERING_GLES_STEREO_ATTRIBUTE_H
This class wraps a GLESceneGraph attribute object.
Definition: GLESAttribute.h:36
This class implements a class factory for all GLESceneGraph objects.
Definition: GLESFactory.h:30
This class implements a base for all GLESceneGraph framebuffers.
Definition: rendering/glescenegraph/GLESFramebuffer.h:34
This class implements a container for an OpenGL ES shader program.
Definition: GLESShaderProgram.h:53
This class implements a GLESceneGraph stereo attribute.
Definition: GLESStereoAttribute.h:32
StereoVisibility stereoVisibility() const override
Returns the stereo visibility property.
GLboolean previousCullFaceValue_
The previous cull face value, will be used to restore the previous state when unbinding.
Definition: GLESStereoAttribute.h:79
~GLESStereoAttribute() override
Destructs a GLESceneGraph stereo attribute.
void unbindAttribute() override
Unbindes this attribute.
void bindAttribute(const GLESFramebuffer &framebuffer, GLESShaderProgram &shaderProgram) override
Binds this attribute.
GLESStereoAttribute()
Creates a new GLESceneGraph stereo attribute.
GLint previousCullFaceMode_
The previous cull face mode, will be used to restore the previous state when unbinding.
Definition: GLESStereoAttribute.h:82
void setStereoVisibility(const StereoVisibility stereoVisibility) override
Sets the stereo visibility property.
StereoVisibility stereoVisibility_
The stereo visibility property of this attribute.
Definition: GLESStereoAttribute.h:76
This class implements a stereo attribute specifying the stereo behavior for associated objects.
Definition: StereoAttribute.h:35
StereoVisibility
Definition of different stereo visibilities.
Definition: StereoAttribute.h:42
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15