Monado OpenXR Runtime
comp_gl_memobj_swapchain.c File Reference

OpenGL client side glue to compositor implementation. More...

#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <stdlib.h>
#include <xrt/xrt_config_have.h>
#include <xrt/xrt_handles.h>
#include "util/u_misc.h"
#include "ogl/ogl_api.h"
#include "ogl/ogl_helpers.h"
#include "client/comp_gl_client.h"
#include "client/comp_gl_memobj_swapchain.h"
Include dependency graph for comp_gl_memobj_swapchain.c:

Functions

static void client_gl_memobj_swapchain_destroy (struct xrt_swapchain *xsc)
 
static bool client_gl_memobj_swapchain_import (GLuint memory, size_t size, xrt_graphics_buffer_handle_t handle)
 
struct xrt_swapchainclient_gl_memobj_swapchain_create (struct xrt_compositor *xc, const struct xrt_swapchain_create_info *info, struct xrt_swapchain_native *xscn, struct client_gl_swapchain **out_cglsc)
 Create a swapchain, belonging to a client_gl_compositor, that uses GL_memory_object and related extensions to use the native buffer. More...
 

Detailed Description

OpenGL client side glue to compositor implementation.

Author
Jakob Bornecrantz jakob.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m

Function Documentation

◆ client_gl_memobj_swapchain_create()

struct xrt_swapchain * client_gl_memobj_swapchain_create ( struct xrt_compositor xc,
const struct xrt_swapchain_create_info info,
struct xrt_swapchain_native xscn,
struct client_gl_swapchain **  out_cglsc 
)

Create a swapchain, belonging to a client_gl_compositor, that uses GL_memory_object and related extensions to use the native buffer.

This is most commonly used on desktop OpenGL.

The caller must ensure that the app context is current.

See also
client_gl_swapchain_create_func_t, client_gl_compositor_init

References client_gl_swapchain::base, xrt_swapchain_gl::base, xrt_swapchain_native::base, client_gl_compositor::client_gl_compositor(), xrt_swapchain::destroy, xrt_compositor::info, ogl_texture_target_for_swapchain_info(), and U_TYPED_CALLOC.