Blender  V2.93
GHOST_XrSwapchain.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16 
21 #pragma once
22 
23 #include <memory>
24 
25 struct OpenXRSwapchainData;
26 
28  public:
30  const XrSession &session,
31  const XrViewConfigurationView &view_config);
34 
35  XrSwapchainImageBaseHeader *acquireDrawableSwapchainImage();
36  void releaseImage();
37 
38  void updateCompositionLayerProjectViewSubImage(XrSwapchainSubImage &r_sub_image);
39 
40  bool isBufferSRGB();
41 
42  private:
43  std::unique_ptr<OpenXRSwapchainData> m_oxr; /* Could use stack, but PImpl is preferable. */
44  int32_t m_image_width, m_image_height;
45  bool m_is_srgb_buffer = false;
46 };
GHOST_XrSwapchain(GHOST_IXrGraphicsBinding &gpu_binding, const XrSession &session, const XrViewConfigurationView &view_config)
void updateCompositionLayerProjectViewSubImage(XrSwapchainSubImage &r_sub_image)
XrSwapchainImageBaseHeader * acquireDrawableSwapchainImage()
signed int int32_t
Definition: stdint.h:80