CpuBuffer Set/Get API
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
parent
c44a095bca
commit
94f181787b
|
@ -327,6 +327,12 @@ typedef enum Refresh_BorderColor
|
||||||
REFRESH_BORDERCOLOR_INT_OPAQUE_WHITE
|
REFRESH_BORDERCOLOR_INT_OPAQUE_WHITE
|
||||||
} Refresh_BorderColor;
|
} Refresh_BorderColor;
|
||||||
|
|
||||||
|
typedef enum Refresh_SetDataOptions
|
||||||
|
{
|
||||||
|
REFRESH_SETDATAOPTIONS_DISCARD,
|
||||||
|
REFRESH_SETDATAOPTIONS_OVERWRITE
|
||||||
|
} Refresh_SetDataOptions;
|
||||||
|
|
||||||
typedef enum Refresh_Backend
|
typedef enum Refresh_Backend
|
||||||
{
|
{
|
||||||
REFRESH_BACKEND_DONTCARE,
|
REFRESH_BACKEND_DONTCARE,
|
||||||
|
@ -685,12 +691,10 @@ REFRESHAPI Refresh_GpuBuffer* Refresh_CreateGpuBuffer(
|
||||||
/* Creates a CpuBuffer.
|
/* Creates a CpuBuffer.
|
||||||
*
|
*
|
||||||
* sizeInBytes: The length of the buffer.
|
* sizeInBytes: The length of the buffer.
|
||||||
* pDataPtr: On success, contains a pointer that can be used to copy to/from the buffer.
|
|
||||||
*/
|
*/
|
||||||
REFRESHAPI Refresh_CpuBuffer* Refresh_CreateCpuBuffer(
|
REFRESHAPI Refresh_CpuBuffer* Refresh_CreateCpuBuffer(
|
||||||
Refresh_Device *device,
|
Refresh_Device *device,
|
||||||
uint32_t sizeInBytes,
|
uint32_t sizeInBytes
|
||||||
void **pDataPtr
|
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Disposal */
|
/* Disposal */
|
||||||
|
@ -1045,6 +1049,37 @@ REFRESHAPI void Refresh_EndComputePass(
|
||||||
Refresh_CommandBuffer *commandBuffer
|
Refresh_CommandBuffer *commandBuffer
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* CpuBuffer Set/Get */
|
||||||
|
|
||||||
|
/* Immediately copies data from a pointer into a CpuBuffer.
|
||||||
|
*
|
||||||
|
* option:
|
||||||
|
* DISCARD:
|
||||||
|
* If this CpuBuffer has been used in a copy command that has not completed,
|
||||||
|
* preserves the data in the issued copy commands at the cost of increased memory usage.
|
||||||
|
* Otherwise it simply overwrites.
|
||||||
|
* It is not recommended to use this option with large CpuBuffers.
|
||||||
|
*
|
||||||
|
* OVERWRITE:
|
||||||
|
* Overwrites the data regardless of whether a copy has been issued.
|
||||||
|
* Use this option with great care, as it can cause data races to occur!
|
||||||
|
*/
|
||||||
|
REFRESHAPI void Refresh_SetData(
|
||||||
|
Refresh_Device *device,
|
||||||
|
void* data,
|
||||||
|
Refresh_CpuBuffer *cpuBuffer,
|
||||||
|
Refresh_BufferCopy *copyParams,
|
||||||
|
Refresh_SetDataOptions option
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Immediately copies data from a CpuBuffer into a pointer. */
|
||||||
|
REFRESHAPI void Refresh_GetData(
|
||||||
|
Refresh_Device *device,
|
||||||
|
Refresh_CpuBuffer *cpuBuffer,
|
||||||
|
void* data,
|
||||||
|
Refresh_BufferCopy *copyParams
|
||||||
|
);
|
||||||
|
|
||||||
/* Copy Pass */
|
/* Copy Pass */
|
||||||
|
|
||||||
/* Begins a copy pass. */
|
/* Begins a copy pass. */
|
||||||
|
@ -1054,9 +1089,6 @@ REFRESHAPI void Refresh_BeginCopyPass(
|
||||||
);
|
);
|
||||||
|
|
||||||
/* CPU-to-GPU copies occur on the GPU timeline.
|
/* CPU-to-GPU copies occur on the GPU timeline.
|
||||||
*
|
|
||||||
* You MUST NOT alter the data in the CpuBuffer
|
|
||||||
* until the command buffer has finished execution.
|
|
||||||
*
|
*
|
||||||
* You MAY assume that the copy has finished for subsequent commands.
|
* You MAY assume that the copy has finished for subsequent commands.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -732,6 +732,40 @@ void Refresh_EndComputePass(
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* CpuBuffer Set/Get */
|
||||||
|
|
||||||
|
void Refresh_SetData(
|
||||||
|
Refresh_Device *device,
|
||||||
|
void* data,
|
||||||
|
Refresh_CpuBuffer *cpuBuffer,
|
||||||
|
Refresh_BufferCopy *copyParams,
|
||||||
|
Refresh_SetDataOptions option
|
||||||
|
) {
|
||||||
|
NULL_RETURN(device);
|
||||||
|
device->SetData(
|
||||||
|
device->driverData,
|
||||||
|
data,
|
||||||
|
cpuBuffer,
|
||||||
|
copyParams,
|
||||||
|
option
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Refresh_GetData(
|
||||||
|
Refresh_Device *device,
|
||||||
|
Refresh_CpuBuffer *cpuBuffer,
|
||||||
|
void* data,
|
||||||
|
Refresh_BufferCopy *copyParams
|
||||||
|
) {
|
||||||
|
NULL_RETURN(device);
|
||||||
|
device->GetData(
|
||||||
|
device->driverData,
|
||||||
|
cpuBuffer,
|
||||||
|
data,
|
||||||
|
copyParams
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/* Copy Pass */
|
/* Copy Pass */
|
||||||
|
|
||||||
void Refresh_BeginCopyPass(
|
void Refresh_BeginCopyPass(
|
||||||
|
|
|
@ -414,6 +414,23 @@ struct Refresh_Device
|
||||||
Refresh_CommandBuffer *commandBuffer
|
Refresh_CommandBuffer *commandBuffer
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* CpuBuffer Set/Get */
|
||||||
|
|
||||||
|
void (*SetData)(
|
||||||
|
Refresh_Renderer *driverData,
|
||||||
|
void* data,
|
||||||
|
Refresh_CpuBuffer *cpuBuffer,
|
||||||
|
Refresh_BufferCopy *copyParams,
|
||||||
|
Refresh_SetDataOptions option
|
||||||
|
);
|
||||||
|
|
||||||
|
void (*GetData)(
|
||||||
|
Refresh_Renderer *driverData,
|
||||||
|
Refresh_CpuBuffer *cpuBuffer,
|
||||||
|
void* data,
|
||||||
|
Refresh_BufferCopy *copyParams
|
||||||
|
);
|
||||||
|
|
||||||
/* Copy Pass */
|
/* Copy Pass */
|
||||||
|
|
||||||
void (*BeginCopyPass)(
|
void (*BeginCopyPass)(
|
||||||
|
@ -606,6 +623,8 @@ struct Refresh_Device
|
||||||
ASSIGN_DRIVER_FUNC(PushComputeShaderUniforms, name) \
|
ASSIGN_DRIVER_FUNC(PushComputeShaderUniforms, name) \
|
||||||
ASSIGN_DRIVER_FUNC(DispatchCompute, name) \
|
ASSIGN_DRIVER_FUNC(DispatchCompute, name) \
|
||||||
ASSIGN_DRIVER_FUNC(EndComputePass, name) \
|
ASSIGN_DRIVER_FUNC(EndComputePass, name) \
|
||||||
|
ASSIGN_DRIVER_FUNC(SetData, name) \
|
||||||
|
ASSIGN_DRIVER_FUNC(GetData, name) \
|
||||||
ASSIGN_DRIVER_FUNC(BeginCopyPass, name) \
|
ASSIGN_DRIVER_FUNC(BeginCopyPass, name) \
|
||||||
ASSIGN_DRIVER_FUNC(UploadToTexture, name) \
|
ASSIGN_DRIVER_FUNC(UploadToTexture, name) \
|
||||||
ASSIGN_DRIVER_FUNC(UploadToBuffer, name) \
|
ASSIGN_DRIVER_FUNC(UploadToBuffer, name) \
|
||||||
|
|
Loading…
Reference in New Issue