forked from MoonsideGames/Refresh
started exposing command buffers
parent
5f00941900
commit
c818e332e7
|
@ -66,6 +66,7 @@ typedef struct REFRESH_ShaderModule REFRESH_ShaderModule;
|
|||
typedef struct REFRESH_RenderPass REFRESH_RenderPass;
|
||||
typedef struct REFRESH_ComputePipeline REFRESH_ComputePipeline;
|
||||
typedef struct REFRESH_GraphicsPipeline REFRESH_GraphicsPipeline;
|
||||
typedef struct REFRESH_CommandBuffer REFRESH_CommandBuffer;
|
||||
|
||||
typedef enum REFRESH_PresentMode
|
||||
{
|
||||
|
@ -1349,6 +1350,23 @@ REFRESHAPI void REFRESH_BindComputeTextures(
|
|||
|
||||
/* Submission/Presentation */
|
||||
|
||||
/* Returns an allocated REFRESH_CommandBuffer* object.
|
||||
*
|
||||
* NOTE:
|
||||
* A command buffer may only be used on the thread that
|
||||
* it was acquired on. Using it on any other thread is an error.
|
||||
*
|
||||
* fixed:
|
||||
* If a command buffer is designated as fixed, it can be
|
||||
* acquired once, have commands recorded into it, and
|
||||
* be re-submitted indefinitely.
|
||||
*
|
||||
*/
|
||||
REFRESHAPI REFRESH_CommandBuffer* REFRESH_AcquireCommandBuffer(
|
||||
REFRESH_Device *device,
|
||||
uint8_t fixed
|
||||
);
|
||||
|
||||
/* Queues an image to be presented to the screen.
|
||||
* The image will be presented upon the next REFRESH_Submit call.
|
||||
*
|
||||
|
|
|
@ -885,6 +885,17 @@ void REFRESH_BindComputeTextures(
|
|||
);
|
||||
}
|
||||
|
||||
REFRESH_CommandBuffer* REFRESH_AcquireCommandBuffer(
|
||||
REFRESH_Device *device,
|
||||
uint8_t fixed
|
||||
) {
|
||||
NULL_RETURN_NULL(device);
|
||||
return device->AcquireCommandBuffer(
|
||||
device->driverData,
|
||||
fixed
|
||||
);
|
||||
}
|
||||
|
||||
void REFRESH_QueuePresent(
|
||||
REFRESH_Device *device,
|
||||
REFRESH_TextureSlice* textureSlice,
|
||||
|
|
|
@ -523,6 +523,11 @@ struct REFRESH_Device
|
|||
REFRESH_Texture **pTextures
|
||||
);
|
||||
|
||||
REFRESH_CommandBuffer* (*AcquireCommandBuffer)(
|
||||
REFRESH_Renderer *driverData,
|
||||
uint8_t fixed
|
||||
);
|
||||
|
||||
void(*QueuePresent)(
|
||||
REFRESH_Renderer *driverData,
|
||||
REFRESH_TextureSlice *textureSlice,
|
||||
|
@ -590,6 +595,7 @@ struct REFRESH_Device
|
|||
ASSIGN_DRIVER_FUNC(BindComputePipeline, name) \
|
||||
ASSIGN_DRIVER_FUNC(BindComputeBuffers, name) \
|
||||
ASSIGN_DRIVER_FUNC(BindComputeTextures, name) \
|
||||
ASSIGN_DRIVER_FUNC(AcquireCommandBuffer, name) \
|
||||
ASSIGN_DRIVER_FUNC(QueuePresent, name) \
|
||||
ASSIGN_DRIVER_FUNC(Submit, name)
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue