implement transfer queue

pull/9/head
cosmonaut 2021-01-02 13:31:17 -08:00 committed by thatcosmonaut
parent c818e332e7
commit e0ff380989
4 changed files with 406 additions and 151 deletions

View File

@ -658,6 +658,7 @@ REFRESHAPI void REFRESH_DestroyDevice(REFRESH_Device *device);
*/ */
REFRESHAPI void REFRESH_Clear( REFRESHAPI void REFRESH_Clear(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Rect *clearRect, REFRESH_Rect *clearRect,
REFRESH_ClearOptions options, REFRESH_ClearOptions options,
REFRESH_Color *colors, REFRESH_Color *colors,
@ -681,6 +682,7 @@ REFRESHAPI void REFRESH_Clear(
*/ */
REFRESHAPI void REFRESH_DrawInstancedPrimitives( REFRESHAPI void REFRESH_DrawInstancedPrimitives(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
uint32_t baseVertex, uint32_t baseVertex,
uint32_t minVertexIndex, uint32_t minVertexIndex,
uint32_t numVertices, uint32_t numVertices,
@ -707,6 +709,7 @@ REFRESHAPI void REFRESH_DrawInstancedPrimitives(
*/ */
REFRESHAPI void REFRESH_DrawIndexedPrimitives( REFRESHAPI void REFRESH_DrawIndexedPrimitives(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
uint32_t baseVertex, uint32_t baseVertex,
uint32_t minVertexIndex, uint32_t minVertexIndex,
uint32_t numVertices, uint32_t numVertices,
@ -727,6 +730,7 @@ REFRESHAPI void REFRESH_DrawIndexedPrimitives(
*/ */
REFRESHAPI void REFRESH_DrawPrimitives( REFRESHAPI void REFRESH_DrawPrimitives(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
uint32_t vertexStart, uint32_t vertexStart,
uint32_t primitiveCount, uint32_t primitiveCount,
uint32_t vertexParamOffset, uint32_t vertexParamOffset,
@ -742,6 +746,7 @@ REFRESHAPI void REFRESH_DrawPrimitives(
*/ */
REFRESHAPI void REFRESH_DispatchCompute( REFRESHAPI void REFRESH_DispatchCompute(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
uint32_t groupCountX, uint32_t groupCountX,
uint32_t groupCountY, uint32_t groupCountY,
uint32_t groupCountZ, uint32_t groupCountZ,
@ -895,7 +900,7 @@ REFRESHAPI REFRESH_Buffer* REFRESH_CreateBuffer(
* dataLength: The size of the image data in bytes. * dataLength: The size of the image data in bytes.
*/ */
REFRESHAPI void REFRESH_SetTextureData2D( REFRESHAPI void REFRESH_SetTextureData2D(
REFRESH_Device *device, REFRESH_Device *driverData,
REFRESH_Texture *texture, REFRESH_Texture *texture,
uint32_t x, uint32_t x,
uint32_t y, uint32_t y,
@ -920,7 +925,7 @@ REFRESHAPI void REFRESH_SetTextureData2D(
* dataLength: The size of the image data in bytes. * dataLength: The size of the image data in bytes.
*/ */
REFRESHAPI void REFRESH_SetTextureData3D( REFRESHAPI void REFRESH_SetTextureData3D(
REFRESH_Device *device, REFRESH_Device *driverData,
REFRESH_Texture *texture, REFRESH_Texture *texture,
uint32_t x, uint32_t x,
uint32_t y, uint32_t y,
@ -946,7 +951,7 @@ REFRESHAPI void REFRESH_SetTextureData3D(
* dataLength: The size of the image data in bytes. * dataLength: The size of the image data in bytes.
*/ */
REFRESHAPI void REFRESH_SetTextureDataCube( REFRESHAPI void REFRESH_SetTextureDataCube(
REFRESH_Device *device, REFRESH_Device *driverData,
REFRESH_Texture *texture, REFRESH_Texture *texture,
uint32_t x, uint32_t x,
uint32_t y, uint32_t y,
@ -971,7 +976,7 @@ REFRESHAPI void REFRESH_SetTextureDataCube(
* dataLength: The size of the image data in bytes. * dataLength: The size of the image data in bytes.
*/ */
REFRESHAPI void REFRESH_SetTextureDataYUV( REFRESHAPI void REFRESH_SetTextureDataYUV(
REFRESH_Device *device, REFRESH_Device *driverData,
REFRESH_Texture *y, REFRESH_Texture *y,
REFRESH_Texture *u, REFRESH_Texture *u,
REFRESH_Texture *v, REFRESH_Texture *v,
@ -1014,6 +1019,7 @@ REFRESHAPI void REFRESH_SetBufferData(
*/ */
REFRESHAPI uint32_t REFRESH_PushVertexShaderParams( REFRESHAPI uint32_t REFRESH_PushVertexShaderParams(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
void *data, void *data,
uint32_t paramBlockCount uint32_t paramBlockCount
); );
@ -1030,6 +1036,7 @@ REFRESHAPI uint32_t REFRESH_PushVertexShaderParams(
*/ */
REFRESHAPI uint32_t REFRESH_PushFragmentShaderParams( REFRESHAPI uint32_t REFRESH_PushFragmentShaderParams(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
void *data, void *data,
uint32_t paramBlockCount uint32_t paramBlockCount
); );
@ -1046,6 +1053,7 @@ REFRESHAPI uint32_t REFRESH_PushFragmentShaderParams(
*/ */
REFRESHAPI uint32_t REFRESH_PushComputeShaderParams( REFRESHAPI uint32_t REFRESH_PushComputeShaderParams(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
void *data, void *data,
uint32_t paramBlockCount uint32_t paramBlockCount
); );
@ -1061,6 +1069,7 @@ REFRESHAPI uint32_t REFRESH_PushComputeShaderParams(
*/ */
REFRESHAPI void REFRESH_SetVertexSamplers( REFRESHAPI void REFRESH_SetVertexSamplers(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Texture **pTextures, REFRESH_Texture **pTextures,
REFRESH_Sampler **pSamplers REFRESH_Sampler **pSamplers
); );
@ -1076,6 +1085,7 @@ REFRESHAPI void REFRESH_SetVertexSamplers(
*/ */
REFRESHAPI void REFRESH_SetFragmentSamplers( REFRESHAPI void REFRESH_SetFragmentSamplers(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Texture **pTextures, REFRESH_Texture **pTextures,
REFRESH_Sampler **pSamplers REFRESH_Sampler **pSamplers
); );
@ -1284,6 +1294,7 @@ REFRESHAPI void REFRESH_AddDisposeGraphicsPipeline(
*/ */
REFRESHAPI void REFRESH_BeginRenderPass( REFRESHAPI void REFRESH_BeginRenderPass(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_RenderPass *renderPass, REFRESH_RenderPass *renderPass,
REFRESH_Framebuffer *framebuffer, REFRESH_Framebuffer *framebuffer,
REFRESH_Rect renderArea, REFRESH_Rect renderArea,
@ -1294,18 +1305,21 @@ REFRESHAPI void REFRESH_BeginRenderPass(
/* Ends the current render pass. */ /* Ends the current render pass. */
REFRESHAPI void REFRESH_EndRenderPass( REFRESHAPI void REFRESH_EndRenderPass(
REFRESH_Device *device REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer
); );
/* Binds a graphics pipeline to the graphics bind point. */ /* Binds a graphics pipeline to the graphics bind point. */
REFRESHAPI void REFRESH_BindGraphicsPipeline( REFRESHAPI void REFRESH_BindGraphicsPipeline(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_GraphicsPipeline *graphicsPipeline REFRESH_GraphicsPipeline *graphicsPipeline
); );
/* Binds vertex buffers for use with subsequent draw calls. */ /* Binds vertex buffers for use with subsequent draw calls. */
REFRESHAPI void REFRESH_BindVertexBuffers( REFRESHAPI void REFRESH_BindVertexBuffers(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
uint32_t firstBinding, uint32_t firstBinding,
uint32_t bindingCount, uint32_t bindingCount,
REFRESH_Buffer **pBuffers, REFRESH_Buffer **pBuffers,
@ -1315,6 +1329,7 @@ REFRESHAPI void REFRESH_BindVertexBuffers(
/* Binds an index buffer for use with subsequent draw calls. */ /* Binds an index buffer for use with subsequent draw calls. */
REFRESHAPI void REFRESH_BindIndexBuffer( REFRESHAPI void REFRESH_BindIndexBuffer(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Buffer *buffer, REFRESH_Buffer *buffer,
uint64_t offset, uint64_t offset,
REFRESH_IndexElementSize indexElementSize REFRESH_IndexElementSize indexElementSize
@ -1323,6 +1338,7 @@ REFRESHAPI void REFRESH_BindIndexBuffer(
/* Binds a compute pipeline to the compute bind point. */ /* Binds a compute pipeline to the compute bind point. */
REFRESHAPI void REFRESH_BindComputePipeline( REFRESHAPI void REFRESH_BindComputePipeline(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_ComputePipeline *computePipeline REFRESH_ComputePipeline *computePipeline
); );
@ -1334,6 +1350,7 @@ REFRESHAPI void REFRESH_BindComputePipeline(
*/ */
REFRESHAPI void REFRESH_BindComputeBuffers( REFRESHAPI void REFRESH_BindComputeBuffers(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Buffer **pBuffers REFRESH_Buffer **pBuffers
); );
@ -1345,6 +1362,7 @@ REFRESHAPI void REFRESH_BindComputeBuffers(
*/ */
REFRESHAPI void REFRESH_BindComputeTextures( REFRESHAPI void REFRESH_BindComputeTextures(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Texture **pTextures REFRESH_Texture **pTextures
); );
@ -1379,6 +1397,7 @@ REFRESHAPI REFRESH_CommandBuffer* REFRESH_AcquireCommandBuffer(
*/ */
REFRESHAPI void REFRESH_QueuePresent( REFRESHAPI void REFRESH_QueuePresent(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_TextureSlice *textureSlice, REFRESH_TextureSlice *textureSlice,
REFRESH_Rect *sourceRectangle, REFRESH_Rect *sourceRectangle,
REFRESH_Rect *destinationRectangle REFRESH_Rect *destinationRectangle
@ -1386,7 +1405,9 @@ REFRESHAPI void REFRESH_QueuePresent(
/* Submits all of the enqueued commands. */ /* Submits all of the enqueued commands. */
REFRESHAPI void REFRESH_Submit( REFRESHAPI void REFRESH_Submit(
REFRESH_Device* device REFRESH_Device* device,
REFRESH_CommandBuffer **pCommandBuffers,
uint32_t commandBufferCount
); );
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -148,7 +148,8 @@ void REFRESH_DestroyDevice(REFRESH_Device *device)
} }
void REFRESH_Clear( void REFRESH_Clear(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Rect *clearRect, REFRESH_Rect *clearRect,
REFRESH_ClearOptions options, REFRESH_ClearOptions options,
REFRESH_Color *colors, REFRESH_Color *colors,
@ -159,6 +160,7 @@ void REFRESH_Clear(
NULL_RETURN(device); NULL_RETURN(device);
device->Clear( device->Clear(
device->driverData, device->driverData,
commandBuffer,
clearRect, clearRect,
options, options,
colors, colors,
@ -170,6 +172,7 @@ void REFRESH_Clear(
void REFRESH_DrawIndexedPrimitives( void REFRESH_DrawIndexedPrimitives(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
uint32_t baseVertex, uint32_t baseVertex,
uint32_t minVertexIndex, uint32_t minVertexIndex,
uint32_t numVertices, uint32_t numVertices,
@ -183,6 +186,7 @@ void REFRESH_DrawIndexedPrimitives(
NULL_RETURN(device); NULL_RETURN(device);
device->DrawIndexedPrimitives( device->DrawIndexedPrimitives(
device->driverData, device->driverData,
commandBuffer,
baseVertex, baseVertex,
minVertexIndex, minVertexIndex,
numVertices, numVertices,
@ -197,6 +201,7 @@ void REFRESH_DrawIndexedPrimitives(
void REFRESH_DrawInstancedPrimitives( void REFRESH_DrawInstancedPrimitives(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
uint32_t baseVertex, uint32_t baseVertex,
uint32_t minVertexIndex, uint32_t minVertexIndex,
uint32_t numVertices, uint32_t numVertices,
@ -211,6 +216,7 @@ void REFRESH_DrawInstancedPrimitives(
NULL_RETURN(device); NULL_RETURN(device);
device->DrawInstancedPrimitives( device->DrawInstancedPrimitives(
device->driverData, device->driverData,
commandBuffer,
baseVertex, baseVertex,
minVertexIndex, minVertexIndex,
numVertices, numVertices,
@ -226,6 +232,7 @@ void REFRESH_DrawInstancedPrimitives(
void REFRESH_DrawPrimitives( void REFRESH_DrawPrimitives(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
uint32_t vertexStart, uint32_t vertexStart,
uint32_t primitiveCount, uint32_t primitiveCount,
uint32_t vertexParamOffset, uint32_t vertexParamOffset,
@ -234,6 +241,7 @@ void REFRESH_DrawPrimitives(
NULL_RETURN(device); NULL_RETURN(device);
device->DrawPrimitives( device->DrawPrimitives(
device->driverData, device->driverData,
commandBuffer,
vertexStart, vertexStart,
primitiveCount, primitiveCount,
vertexParamOffset, vertexParamOffset,
@ -243,6 +251,7 @@ void REFRESH_DrawPrimitives(
void REFRESH_DispatchCompute( void REFRESH_DispatchCompute(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
uint32_t groupCountX, uint32_t groupCountX,
uint32_t groupCountY, uint32_t groupCountY,
uint32_t groupCountZ, uint32_t groupCountZ,
@ -251,6 +260,7 @@ void REFRESH_DispatchCompute(
NULL_RETURN(device); NULL_RETURN(device);
device->DispatchCompute( device->DispatchCompute(
device->driverData, device->driverData,
commandBuffer,
groupCountX, groupCountX,
groupCountY, groupCountY,
groupCountZ, groupCountZ,
@ -549,12 +559,14 @@ void REFRESH_SetBufferData(
uint32_t REFRESH_PushVertexShaderParams( uint32_t REFRESH_PushVertexShaderParams(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
void *data, void *data,
uint32_t elementCount uint32_t elementCount
) { ) {
if (device == NULL) { return 0; } if (device == NULL) { return 0; }
return device->PushVertexShaderParams( return device->PushVertexShaderParams(
device->driverData, device->driverData,
commandBuffer,
data, data,
elementCount elementCount
); );
@ -562,12 +574,14 @@ uint32_t REFRESH_PushVertexShaderParams(
uint32_t REFRESH_PushFragmentShaderParams( uint32_t REFRESH_PushFragmentShaderParams(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
void *data, void *data,
uint32_t elementCount uint32_t elementCount
) { ) {
if (device == NULL) { return 0; } if (device == NULL) { return 0; }
return device->PushFragmentShaderParams( return device->PushFragmentShaderParams(
device->driverData, device->driverData,
commandBuffer,
data, data,
elementCount elementCount
); );
@ -575,12 +589,14 @@ uint32_t REFRESH_PushFragmentShaderParams(
uint32_t REFRESH_PushComputeShaderParams( uint32_t REFRESH_PushComputeShaderParams(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
void *data, void *data,
uint32_t elementCount uint32_t elementCount
) { ) {
if (device == NULL) { return 0; } if (device == NULL) { return 0; }
return device->PushComputeShaderParams( return device->PushComputeShaderParams(
device->driverData, device->driverData,
commandBuffer,
data, data,
elementCount elementCount
); );
@ -588,12 +604,14 @@ uint32_t REFRESH_PushComputeShaderParams(
void REFRESH_SetVertexSamplers( void REFRESH_SetVertexSamplers(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Texture **pTextures, REFRESH_Texture **pTextures,
REFRESH_Sampler **pSamplers REFRESH_Sampler **pSamplers
) { ) {
NULL_RETURN(device); NULL_RETURN(device);
device->SetVertexSamplers( device->SetVertexSamplers(
device->driverData, device->driverData,
commandBuffer,
pTextures, pTextures,
pSamplers pSamplers
); );
@ -601,12 +619,14 @@ void REFRESH_SetVertexSamplers(
void REFRESH_SetFragmentSamplers( void REFRESH_SetFragmentSamplers(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Texture **pTextures, REFRESH_Texture **pTextures,
REFRESH_Sampler **pSamplers REFRESH_Sampler **pSamplers
) { ) {
NULL_RETURN(device); NULL_RETURN(device);
device->SetFragmentSamplers( device->SetFragmentSamplers(
device->driverData, device->driverData,
commandBuffer,
pTextures, pTextures,
pSamplers pSamplers
); );
@ -783,6 +803,7 @@ void REFRESH_AddDisposeGraphicsPipeline(
void REFRESH_BeginRenderPass( void REFRESH_BeginRenderPass(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_RenderPass *renderPass, REFRESH_RenderPass *renderPass,
REFRESH_Framebuffer *framebuffer, REFRESH_Framebuffer *framebuffer,
REFRESH_Rect renderArea, REFRESH_Rect renderArea,
@ -793,6 +814,7 @@ void REFRESH_BeginRenderPass(
NULL_RETURN(device); NULL_RETURN(device);
device->BeginRenderPass( device->BeginRenderPass(
device->driverData, device->driverData,
commandBuffer,
renderPass, renderPass,
framebuffer, framebuffer,
renderArea, renderArea,
@ -803,25 +825,32 @@ void REFRESH_BeginRenderPass(
} }
void REFRESH_EndRenderPass( void REFRESH_EndRenderPass(
REFRESH_Device *device REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer
) { ) {
NULL_RETURN(device); NULL_RETURN(device);
device->EndRenderPass(device->driverData); device->EndRenderPass(
device->driverData,
commandBuffer
);
} }
void REFRESH_BindGraphicsPipeline( void REFRESH_BindGraphicsPipeline(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_GraphicsPipeline *graphicsPipeline REFRESH_GraphicsPipeline *graphicsPipeline
) { ) {
NULL_RETURN(device); NULL_RETURN(device);
device->BindGraphicsPipeline( device->BindGraphicsPipeline(
device->driverData, device->driverData,
commandBuffer,
graphicsPipeline graphicsPipeline
); );
} }
void REFRESH_BindVertexBuffers( void REFRESH_BindVertexBuffers(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
uint32_t firstBinding, uint32_t firstBinding,
uint32_t bindingCount, uint32_t bindingCount,
REFRESH_Buffer **pBuffers, REFRESH_Buffer **pBuffers,
@ -830,6 +859,7 @@ void REFRESH_BindVertexBuffers(
NULL_RETURN(device); NULL_RETURN(device);
device->BindVertexBuffers( device->BindVertexBuffers(
device->driverData, device->driverData,
commandBuffer,
firstBinding, firstBinding,
bindingCount, bindingCount,
pBuffers, pBuffers,
@ -839,6 +869,7 @@ void REFRESH_BindVertexBuffers(
void REFRESH_BindIndexBuffer( void REFRESH_BindIndexBuffer(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Buffer *buffer, REFRESH_Buffer *buffer,
uint64_t offset, uint64_t offset,
REFRESH_IndexElementSize indexElementSize REFRESH_IndexElementSize indexElementSize
@ -846,6 +877,7 @@ void REFRESH_BindIndexBuffer(
NULL_RETURN(device); NULL_RETURN(device);
device->BindIndexBuffer( device->BindIndexBuffer(
device->driverData, device->driverData,
commandBuffer,
buffer, buffer,
offset, offset,
indexElementSize indexElementSize
@ -854,33 +886,39 @@ void REFRESH_BindIndexBuffer(
void REFRESH_BindComputePipeline( void REFRESH_BindComputePipeline(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_ComputePipeline *computePipeline REFRESH_ComputePipeline *computePipeline
) { ) {
NULL_RETURN(device); NULL_RETURN(device);
device->BindComputePipeline( device->BindComputePipeline(
device->driverData, device->driverData,
commandBuffer,
computePipeline computePipeline
); );
} }
void REFRESH_BindComputeBuffers( void REFRESH_BindComputeBuffers(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Buffer **pBuffers REFRESH_Buffer **pBuffers
) { ) {
NULL_RETURN(device); NULL_RETURN(device);
device->BindComputeBuffers( device->BindComputeBuffers(
device->driverData, device->driverData,
commandBuffer,
pBuffers pBuffers
); );
} }
void REFRESH_BindComputeTextures( void REFRESH_BindComputeTextures(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Texture **pTextures REFRESH_Texture **pTextures
) { ) {
NULL_RETURN(device); NULL_RETURN(device);
device->BindComputeTextures( device->BindComputeTextures(
device->driverData, device->driverData,
commandBuffer,
pTextures pTextures
); );
} }
@ -898,6 +936,7 @@ REFRESH_CommandBuffer* REFRESH_AcquireCommandBuffer(
void REFRESH_QueuePresent( void REFRESH_QueuePresent(
REFRESH_Device *device, REFRESH_Device *device,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_TextureSlice* textureSlice, REFRESH_TextureSlice* textureSlice,
REFRESH_Rect *sourceRectangle, REFRESH_Rect *sourceRectangle,
REFRESH_Rect *destinationRectangle REFRESH_Rect *destinationRectangle
@ -905,6 +944,7 @@ void REFRESH_QueuePresent(
NULL_RETURN(device); NULL_RETURN(device);
device->QueuePresent( device->QueuePresent(
device->driverData, device->driverData,
commandBuffer,
textureSlice, textureSlice,
sourceRectangle, sourceRectangle,
destinationRectangle destinationRectangle
@ -912,11 +952,15 @@ void REFRESH_QueuePresent(
} }
void REFRESH_Submit( void REFRESH_Submit(
REFRESH_Device *device REFRESH_Device *device,
REFRESH_CommandBuffer **pCommandBuffers,
uint32_t commandBufferCount
) { ) {
NULL_RETURN(device); NULL_RETURN(device);
device->Submit( device->Submit(
device->driverData device->driverData,
pCommandBuffers,
commandBufferCount
); );
} }

View File

@ -169,6 +169,7 @@ struct REFRESH_Device
void (*Clear)( void (*Clear)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Rect *clearRect, REFRESH_Rect *clearRect,
REFRESH_ClearOptions options, REFRESH_ClearOptions options,
REFRESH_Color *colors, REFRESH_Color *colors,
@ -179,6 +180,7 @@ struct REFRESH_Device
void (*DrawInstancedPrimitives)( void (*DrawInstancedPrimitives)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
uint32_t baseVertex, uint32_t baseVertex,
uint32_t minVertexIndex, uint32_t minVertexIndex,
uint32_t numVertices, uint32_t numVertices,
@ -193,6 +195,7 @@ struct REFRESH_Device
void (*DrawIndexedPrimitives)( void (*DrawIndexedPrimitives)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
uint32_t baseVertex, uint32_t baseVertex,
uint32_t minVertexIndex, uint32_t minVertexIndex,
uint32_t numVertices, uint32_t numVertices,
@ -206,6 +209,7 @@ struct REFRESH_Device
void (*DrawPrimitives)( void (*DrawPrimitives)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
uint32_t vertexStart, uint32_t vertexStart,
uint32_t primitiveCount, uint32_t primitiveCount,
uint32_t vertexParamOffset, uint32_t vertexParamOffset,
@ -214,6 +218,7 @@ struct REFRESH_Device
void (*DispatchCompute)( void (*DispatchCompute)(
REFRESH_Renderer *device, REFRESH_Renderer *device,
REFRESH_CommandBuffer *commandBuffer,
uint32_t groupCountX, uint32_t groupCountX,
uint32_t groupCountY, uint32_t groupCountY,
uint32_t groupCountZ, uint32_t groupCountZ,
@ -362,30 +367,35 @@ struct REFRESH_Device
uint32_t(*PushVertexShaderParams)( uint32_t(*PushVertexShaderParams)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
void *data, void *data,
uint32_t elementCount uint32_t elementCount
); );
uint32_t(*PushFragmentShaderParams)( uint32_t(*PushFragmentShaderParams)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
void *data, void *data,
uint32_t elementCount uint32_t elementCount
); );
uint32_t (*PushComputeShaderParams)( uint32_t (*PushComputeShaderParams)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
void *data, void *data,
uint32_t elementCount uint32_t elementCount
); );
void(*SetVertexSamplers)( void(*SetVertexSamplers)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Texture **pTextures, REFRESH_Texture **pTextures,
REFRESH_Sampler **pSamplers REFRESH_Sampler **pSamplers
); );
void(*SetFragmentSamplers)( void(*SetFragmentSamplers)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Texture **pTextures, REFRESH_Texture **pTextures,
REFRESH_Sampler **pSamplers REFRESH_Sampler **pSamplers
); );
@ -476,6 +486,7 @@ struct REFRESH_Device
void(*BeginRenderPass)( void(*BeginRenderPass)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_RenderPass *renderPass, REFRESH_RenderPass *renderPass,
REFRESH_Framebuffer *framebuffer, REFRESH_Framebuffer *framebuffer,
REFRESH_Rect renderArea, REFRESH_Rect renderArea,
@ -485,16 +496,19 @@ struct REFRESH_Device
); );
void(*EndRenderPass)( void(*EndRenderPass)(
REFRESH_Renderer *driverData REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer
); );
void(*BindGraphicsPipeline)( void(*BindGraphicsPipeline)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_GraphicsPipeline *graphicsPipeline REFRESH_GraphicsPipeline *graphicsPipeline
); );
void(*BindVertexBuffers)( void(*BindVertexBuffers)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
uint32_t firstBinding, uint32_t firstBinding,
uint32_t bindingCount, uint32_t bindingCount,
REFRESH_Buffer **pBuffers, REFRESH_Buffer **pBuffers,
@ -503,6 +517,7 @@ struct REFRESH_Device
void(*BindIndexBuffer)( void(*BindIndexBuffer)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Buffer *buffer, REFRESH_Buffer *buffer,
uint64_t offset, uint64_t offset,
REFRESH_IndexElementSize indexElementSize REFRESH_IndexElementSize indexElementSize
@ -510,16 +525,19 @@ struct REFRESH_Device
void(*BindComputePipeline)( void(*BindComputePipeline)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_ComputePipeline *computePipeline REFRESH_ComputePipeline *computePipeline
); );
void(*BindComputeBuffers)( void(*BindComputeBuffers)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Buffer **pBuffers REFRESH_Buffer **pBuffers
); );
void(*BindComputeTextures)( void(*BindComputeTextures)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_Texture **pTextures REFRESH_Texture **pTextures
); );
@ -530,13 +548,16 @@ struct REFRESH_Device
void(*QueuePresent)( void(*QueuePresent)(
REFRESH_Renderer *driverData, REFRESH_Renderer *driverData,
REFRESH_CommandBuffer *commandBuffer,
REFRESH_TextureSlice *textureSlice, REFRESH_TextureSlice *textureSlice,
REFRESH_Rect *sourceRectangle, REFRESH_Rect *sourceRectangle,
REFRESH_Rect *destinationRectangle REFRESH_Rect *destinationRectangle
); );
void(*Submit)( void(*Submit)(
REFRESH_Renderer *driverData REFRESH_Renderer *driverData,
REFRESH_CommandBuffer **pCommandBuffers,
uint32_t commandBufferCount
); );
/* Opaque pointer for the Driver */ /* Opaque pointer for the Driver */

File diff suppressed because it is too large Load Diff