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; | ||||
| 
 | ||||
| typedef enum Refresh_SetDataOptions | ||||
| { | ||||
| 	REFRESH_SETDATAOPTIONS_DISCARD, | ||||
| 	REFRESH_SETDATAOPTIONS_OVERWRITE | ||||
| } Refresh_SetDataOptions; | ||||
| 
 | ||||
| typedef enum Refresh_Backend | ||||
| { | ||||
| 	REFRESH_BACKEND_DONTCARE, | ||||
|  | @ -685,12 +691,10 @@ REFRESHAPI Refresh_GpuBuffer* Refresh_CreateGpuBuffer( | |||
| /* Creates a CpuBuffer.
 | ||||
|  * | ||||
|  * 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( | ||||
| 	Refresh_Device *device, | ||||
| 	uint32_t sizeInBytes, | ||||
| 	void **pDataPtr | ||||
| 	uint32_t sizeInBytes | ||||
| ); | ||||
| 
 | ||||
| /* Disposal */ | ||||
|  | @ -1045,6 +1049,37 @@ REFRESHAPI void Refresh_EndComputePass( | |||
| 	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 */ | ||||
| 
 | ||||
| /* Begins a copy pass. */ | ||||
|  | @ -1054,9 +1089,6 @@ REFRESHAPI void Refresh_BeginCopyPass( | |||
| ); | ||||
| 
 | ||||
| /* 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. | ||||
|  */ | ||||
|  |  | |||
|  | @ -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 */ | ||||
| 
 | ||||
| void Refresh_BeginCopyPass( | ||||
|  |  | |||
|  | @ -414,6 +414,23 @@ struct Refresh_Device | |||
| 		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 */ | ||||
| 
 | ||||
| 	void (*BeginCopyPass)( | ||||
|  | @ -606,6 +623,8 @@ struct Refresh_Device | |||
| 	ASSIGN_DRIVER_FUNC(PushComputeShaderUniforms, name) \ | ||||
| 	ASSIGN_DRIVER_FUNC(DispatchCompute, name) \ | ||||
| 	ASSIGN_DRIVER_FUNC(EndComputePass, name) \ | ||||
| 	ASSIGN_DRIVER_FUNC(SetData, name) \ | ||||
| 	ASSIGN_DRIVER_FUNC(GetData, name) \ | ||||
| 	ASSIGN_DRIVER_FUNC(BeginCopyPass, name) \ | ||||
| 	ASSIGN_DRIVER_FUNC(UploadToTexture, name) \ | ||||
| 	ASSIGN_DRIVER_FUNC(UploadToBuffer, name) \ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue