8 #ifndef META_OCEAN_RENDERING_GLES_QUEST_OPENXR_GLES_WINDOW_FRAMEBUFFER_H
9 #define META_OCEAN_RENDERING_GLES_QUEST_OPENXR_GLES_WINDOW_FRAMEBUFFER_H
16 #ifdef OCEAN_RENDERING_GLES_QUEST_PLATFORM_OPENXR
28 namespace GLESceneGraph
35 class GLESEngineQuest;
53 static constexpr
size_t numberEyes_ = 2;
75 inline unsigned int width(
const size_t eyeIndex)
const;
82 inline unsigned int height(
const size_t eyeIndex)
const;
89 inline XrSwapchain xrSwapchain(
const size_t eyeIndex)
const;
96 inline size_t textureSwapChainIndex(
const size_t eyeIndex)
const;
127 size_t nextRenderFirstEyeIndex_ = 0;
148 ocean_assert(
false &&
"Invalid eye index!");
161 ocean_assert(
false &&
"Invalid eye index!");
174 ocean_assert(
false &&
"Invalid eye index!");
175 return XR_NULL_HANDLE;
187 ocean_assert(
false &&
"Invalid eye index!");
This class holds framebuffer configurations.
Definition: rendering/Framebuffer.h:94
This class implements a base for all GLESceneGraph framebuffers.
Definition: rendering/glescenegraph/GLESFramebuffer.h:34
This class implements a traverser for renderables.
Definition: GLESTraverser.h:39
This class implements the engine for Quest platforms.
Definition: GLESEngineQuest.h:31
This class is the base class for all GLESceneGraph window framebuffers for Quest platforms.
Definition: quest/openxr/GLESWindowFramebuffer.h:47
void release() override
Releases the framebuffer.
static constexpr size_t numberEyes_
The number of framebuffers used.
Definition: quest/openxr/GLESWindowFramebuffer.h:53
bool initializeContext() override
Initialize the OpenGL ES dispaly and context.
bool initializeById(const size_t id, const FramebufferRef &shareFramebuffer=FramebufferRef()) override
Initializes the framebuffer based on the platform specific id.
Platform::Meta::Quest::OpenXR::GLESFramebuffers glesFramebuffers_
The actual implementation of the Quest specific framebuffer(s).
Definition: quest/openxr/GLESWindowFramebuffer.h:124
unsigned int height(const size_t eyeIndex) const
Returns the height of an individual framebuffer.
Definition: quest/openxr/GLESWindowFramebuffer.h:152
~GLESWindowFramebuffer() override
Destructs a window framebuffer.
GLESTraverser traverser_
The traverser which is used for rendering.
Definition: quest/openxr/GLESWindowFramebuffer.h:130
void render() override
Renders the next frame into the framebuffer.
XrSwapchain xrSwapchain(const size_t eyeIndex) const
Returns OpenXR's swap chain for the individual eyes/framebuffers.
Definition: quest/openxr/GLESWindowFramebuffer.h:165
GLESWindowFramebuffer(const Framebuffer::FramebufferConfig &config)
Creates a new window framebuffer.
size_t textureSwapChainIndex(const size_t eyeIndex) const
Returns the index of the current texture of OpenXR's swap chain for the individual eyes/framebuffers.
Definition: quest/openxr/GLESWindowFramebuffer.h:178
Framebuffer::FramebufferConfig config_
The configuration to be used.
Definition: quest/openxr/GLESWindowFramebuffer.h:136
unsigned int width(const size_t eyeIndex) const
Returns the width of an individual framebuffer.
Definition: quest/openxr/GLESWindowFramebuffer.h:139
This class is the base class for all window framebuffers.
Definition: rendering/WindowFramebuffer.h:55
SmartObjectRef< Framebuffer > FramebufferRef
Definition of a smart object reference holding a framebuffer.
Definition: rendering/Framebuffer.h:31
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15