mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-19 20:32:15 +02:00
libobs: Add graphics API to get graphics object pointer
This commit is contained in:
parent
86572935af
commit
bf41fd5a6b
@ -829,6 +829,11 @@ void device_leave_context(gs_device_t *device)
|
||||
UNUSED_PARAMETER(device);
|
||||
}
|
||||
|
||||
void *device_get_device_obj(gs_device_t *device)
|
||||
{
|
||||
return (void *)device->device.Get();
|
||||
}
|
||||
|
||||
gs_swapchain_t *device_swapchain_create(gs_device_t *device,
|
||||
const struct gs_init_data *data)
|
||||
{
|
||||
|
@ -165,6 +165,11 @@ void device_leave_context(gs_device_t *device)
|
||||
[NSOpenGLContext clearCurrentContext];
|
||||
}
|
||||
|
||||
void *device_get_device_obj(gs_device_t *device)
|
||||
{
|
||||
return device->plat->context;
|
||||
}
|
||||
|
||||
void device_load_swapchain(gs_device_t *device, gs_swapchain_t *swap)
|
||||
{
|
||||
if (device->cur_swap == swap)
|
||||
|
@ -542,6 +542,11 @@ void device_leave_context(gs_device_t *device)
|
||||
UNUSED_PARAMETER(device);
|
||||
}
|
||||
|
||||
void *device_get_device_obj(gs_device_t *device)
|
||||
{
|
||||
return device->plat->hrc;
|
||||
}
|
||||
|
||||
void device_load_swapchain(gs_device_t *device, gs_swapchain_t *swap)
|
||||
{
|
||||
HDC hdc = device->plat->window.hdc;
|
||||
|
@ -510,6 +510,11 @@ extern void device_leave_context(gs_device_t *device)
|
||||
}
|
||||
}
|
||||
|
||||
void *device_get_device_obj(gs_device_t *device)
|
||||
{
|
||||
return device->plat->context;
|
||||
}
|
||||
|
||||
extern void gl_getclientsize(const struct gs_swap_chain *swap, uint32_t *width,
|
||||
uint32_t *height)
|
||||
{
|
||||
|
@ -33,6 +33,7 @@ EXPORT int device_create(gs_device_t **device, uint32_t adapter);
|
||||
EXPORT void device_destroy(gs_device_t *device);
|
||||
EXPORT void device_enter_context(gs_device_t *device);
|
||||
EXPORT void device_leave_context(gs_device_t *device);
|
||||
EXPORT void *device_get_device_obj(gs_device_t *device);
|
||||
EXPORT gs_swapchain_t *device_swapchain_create(gs_device_t *device,
|
||||
const struct gs_init_data *data);
|
||||
EXPORT void device_resize(gs_device_t *device, uint32_t x, uint32_t y);
|
||||
|
@ -50,6 +50,7 @@ bool load_graphics_imports(struct gs_exports *exports, void *module,
|
||||
GRAPHICS_IMPORT(device_destroy);
|
||||
GRAPHICS_IMPORT(device_enter_context);
|
||||
GRAPHICS_IMPORT(device_leave_context);
|
||||
GRAPHICS_IMPORT(device_get_device_obj);
|
||||
GRAPHICS_IMPORT(device_swapchain_create);
|
||||
GRAPHICS_IMPORT(device_resize);
|
||||
GRAPHICS_IMPORT(device_get_size);
|
||||
|
@ -34,6 +34,7 @@ struct gs_exports {
|
||||
void (*device_destroy)(gs_device_t *device);
|
||||
void (*device_enter_context)(gs_device_t *device);
|
||||
void (*device_leave_context)(gs_device_t *device);
|
||||
void *(*device_get_device_obj)(gs_device_t *device);
|
||||
gs_swapchain_t *(*device_swapchain_create)(
|
||||
gs_device_t *device, const struct gs_init_data *data);
|
||||
void (*device_resize)(gs_device_t *device, uint32_t x, uint32_t y);
|
||||
|
@ -288,6 +288,14 @@ graphics_t *gs_get_context(void)
|
||||
return thread_graphics;
|
||||
}
|
||||
|
||||
void *gs_get_device_obj(void)
|
||||
{
|
||||
if (!gs_valid("gs_get_device_obj"))
|
||||
return NULL;
|
||||
|
||||
return thread_graphics->exports.device_get_device_obj(thread_graphics);
|
||||
}
|
||||
|
||||
const char *gs_get_device_name(void)
|
||||
{
|
||||
return gs_valid("gs_get_device_name")
|
||||
|
@ -500,6 +500,7 @@ EXPORT void gs_destroy(graphics_t *graphics);
|
||||
EXPORT void gs_enter_context(graphics_t *graphics);
|
||||
EXPORT void gs_leave_context(void);
|
||||
EXPORT graphics_t *gs_get_context(void);
|
||||
EXPORT void *gs_get_device_obj(void);
|
||||
|
||||
EXPORT void gs_matrix_push(void);
|
||||
EXPORT void gs_matrix_pop(void);
|
||||
|
Loading…
Reference in New Issue
Block a user