Files
Gryphn/projects/extensions/synchronization/loader/sync_functions.h
2025-07-29 06:24:38 -04:00

25 lines
1.1 KiB
C

#pragma once
#include "stdint.h"
#include "core/gryphn_return_code.h"
#include <extensions/synchronization/fence/gryphn_fence.h>
#include <extensions/synchronization/semaphore/gryphn_semaphore.h>
#include "core/src/gryphn_handles.h"
typedef struct gnSubmitSyncInfo gnSubmitSyncInfo;
typedef struct gnPresentSyncInfo gnPresentSyncInfo;
typedef struct gnSyncExtFunctions {
gnReturnCode (*_gnPresentationQueueGetImageAsync)(gnPresentationQueueHandle presentationQueue, uint64_t timeout, gnSemaphoreHandle semaphore, uint32_t* imageIndex);
gnReturnCode (*_gnCreateSemaphore)(gnSemaphoreHandle semaphore, gnOutputDeviceHandle device);
void (*_gnDestroySemaphore)(gnSemaphoreHandle semaphore);
gnReturnCode (*_gnCreateFence)(gnFenceHandle fence, gnOutputDeviceHandle device);
void (*_gnWaitForFence)(gnFenceHandle fence, uint64_t timeout);
void (*_gnResetFence)(gnFenceHandle fence);
void (*_gnDestroyFence)(gnFenceHandle fence);
gnReturnCode (*_gnSubmitSync)(gnOutputDevice device, gnSubmitSyncInfo info);
gnReturnCode (*_gnPresentSync)(gnOutputDeviceHandle device, gnPresentSyncInfo info);
} gnSyncExtFunctions;