forked from MoonsideGames/Refresh
				
			Compare commits
	
		
			No commits in common. "9da16f94e1786fb353a44469ea20f1afe8b14bdb" and "1f9f7e09395195f593eecd14f0adc8bf7f587d75" have entirely different histories. 
		
	
	
		
			9da16f94e1
			...
			1f9f7e0939
		
	
		|  | @ -8,7 +8,7 @@ option(BUILD_SHARED_LIBS "Build shared library" ON) | ||||||
| 
 | 
 | ||||||
| # Version | # Version | ||||||
| SET(LIB_MAJOR_VERSION "1") | SET(LIB_MAJOR_VERSION "1") | ||||||
| SET(LIB_MINOR_VERSION "15") | SET(LIB_MINOR_VERSION "13") | ||||||
| SET(LIB_REVISION "0") | SET(LIB_REVISION "0") | ||||||
| SET(LIB_VERSION "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_REVISION}") | SET(LIB_VERSION "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_REVISION}") | ||||||
| 
 | 
 | ||||||
|  | @ -41,12 +41,6 @@ add_definitions( | ||||||
| 	-DREFRESH_DRIVER_VULKAN | 	-DREFRESH_DRIVER_VULKAN | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| if (WIN32) |  | ||||||
| 	add_definitions( |  | ||||||
| 		-DREFRESH_DRIVER_D3D11 |  | ||||||
| 	) |  | ||||||
| endif() |  | ||||||
| 
 |  | ||||||
| # Source lists | # Source lists | ||||||
| add_library(Refresh | add_library(Refresh | ||||||
| 	# Public Headers | 	# Public Headers | ||||||
|  | @ -57,7 +51,6 @@ add_library(Refresh | ||||||
| 	src/Refresh_Driver_Vulkan_vkfuncs.h | 	src/Refresh_Driver_Vulkan_vkfuncs.h | ||||||
| 	# Source Files | 	# Source Files | ||||||
| 	src/Refresh.c | 	src/Refresh.c | ||||||
| 	src/Refresh_Driver_D3D11.c |  | ||||||
| 	src/Refresh_Driver_Vulkan.c | 	src/Refresh_Driver_Vulkan.c | ||||||
| 	src/Refresh_Image.c | 	src/Refresh_Image.c | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -55,7 +55,7 @@ extern "C" { | ||||||
| /* Version API */ | /* Version API */ | ||||||
| 
 | 
 | ||||||
| #define REFRESH_MAJOR_VERSION   1 | #define REFRESH_MAJOR_VERSION   1 | ||||||
| #define REFRESH_MINOR_VERSION	15 | #define REFRESH_MINOR_VERSION	13 | ||||||
| #define REFRESH_PATCH_VERSION	0 | #define REFRESH_PATCH_VERSION	0 | ||||||
| 
 | 
 | ||||||
| #define REFRESH_COMPILED_VERSION ( \ | #define REFRESH_COMPILED_VERSION ( \ | ||||||
|  | @ -76,7 +76,6 @@ typedef struct Refresh_ShaderModule Refresh_ShaderModule; | ||||||
| typedef struct Refresh_ComputePipeline Refresh_ComputePipeline; | typedef struct Refresh_ComputePipeline Refresh_ComputePipeline; | ||||||
| typedef struct Refresh_GraphicsPipeline Refresh_GraphicsPipeline; | typedef struct Refresh_GraphicsPipeline Refresh_GraphicsPipeline; | ||||||
| typedef struct Refresh_CommandBuffer Refresh_CommandBuffer; | typedef struct Refresh_CommandBuffer Refresh_CommandBuffer; | ||||||
| typedef struct Refresh_Fence Refresh_Fence; |  | ||||||
| 
 | 
 | ||||||
| typedef enum Refresh_PresentMode | typedef enum Refresh_PresentMode | ||||||
| { | { | ||||||
|  | @ -330,7 +329,6 @@ typedef enum Refresh_Backend | ||||||
| { | { | ||||||
| 	REFRESH_BACKEND_DONTCARE, | 	REFRESH_BACKEND_DONTCARE, | ||||||
| 	REFRESH_BACKEND_VULKAN, | 	REFRESH_BACKEND_VULKAN, | ||||||
| 	REFRESH_BACKEND_D3D11, |  | ||||||
| 	REFRESH_BACKEND_PS5, | 	REFRESH_BACKEND_PS5, | ||||||
| 	REFRESH_BACKEND_INVALID | 	REFRESH_BACKEND_INVALID | ||||||
| } Refresh_Backend; | } Refresh_Backend; | ||||||
|  | @ -780,20 +778,15 @@ REFRESHAPI void Refresh_SetTextureData( | ||||||
| 
 | 
 | ||||||
| /* Uploads YUV image data to three R8 texture objects.
 | /* Uploads YUV image data to three R8 texture objects.
 | ||||||
|  * |  * | ||||||
|  * y:            The texture storing the Y data. |  * y:		The texture storing the Y data. | ||||||
|  * u:            The texture storing the U (Cb) data. |  * u:		The texture storing the U (Cb) data. | ||||||
|  * v:            The texture storing the V (Cr) data. |  * v:		The texture storing the V (Cr) data. | ||||||
|  * yWidth:       The width of the Y plane. |  * yWidth:	The width of the Y plane. | ||||||
|  * yHeight:      The height of the Y plane. |  * yHeight:	The height of the Y plane. | ||||||
|  * uvWidth:      The width of the U/V planes. |  * uvWidth:	The width of the U/V planes. | ||||||
|  * uvHeight:     The height of the U/V planes. |  * uvHeight:	The height of the U/V planes. | ||||||
|  * yData:        A pointer to the raw Y image data. |  * data:	A pointer to the raw YUV image data. | ||||||
|  * uData:        A pointer to the raw U image data. |  * dataLength:	The size of the image data in bytes. | ||||||
|  * vData:        A pointer to the raw V image data. |  | ||||||
|  * yDataLength:  The size of the Y image data in bytes. |  | ||||||
|  * uvDataLength: The size of the UV image data in bytes. |  | ||||||
|  * yStride:      The length of a Y image data row in bytes. |  | ||||||
|  * uvStride:     The length of a UV image data row in bytes. |  | ||||||
|  */ |  */ | ||||||
| REFRESHAPI void Refresh_SetTextureDataYUV( | REFRESHAPI void Refresh_SetTextureDataYUV( | ||||||
| 	Refresh_Device *driverData, | 	Refresh_Device *driverData, | ||||||
|  | @ -805,13 +798,8 @@ REFRESHAPI void Refresh_SetTextureDataYUV( | ||||||
| 	uint32_t yHeight, | 	uint32_t yHeight, | ||||||
| 	uint32_t uvWidth, | 	uint32_t uvWidth, | ||||||
| 	uint32_t uvHeight, | 	uint32_t uvHeight, | ||||||
| 	void *yDataPtr, | 	void* data, | ||||||
| 	void *uDataPtr, | 	uint32_t dataLength | ||||||
| 	void *vDataPtr, |  | ||||||
| 	uint32_t yDataLength, |  | ||||||
| 	uint32_t uvDataLength, |  | ||||||
| 	uint32_t yStride, |  | ||||||
| 	uint32_t uvStride |  | ||||||
| ); | ); | ||||||
| 
 | 
 | ||||||
| /* Performs an asynchronous texture-to-texture copy.
 | /* Performs an asynchronous texture-to-texture copy.
 | ||||||
|  | @ -1208,50 +1196,15 @@ REFRESHAPI Refresh_Texture* Refresh_AcquireSwapchainTexture( | ||||||
| /* 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 *commandBuffer | 	uint32_t commandBufferCount, | ||||||
|  | 	Refresh_CommandBuffer **pCommandBuffers | ||||||
| ); | ); | ||||||
| 
 | 
 | ||||||
| /* Submits a command buffer and acquires a fence.
 | /* Waits for all submissions to complete. */ | ||||||
|  * You can use the fence to check if or wait until the command buffer has finished processing. |  | ||||||
|  * You are responsible for releasing this fence when you are done using it. |  | ||||||
|  */ |  | ||||||
| REFRESHAPI Refresh_Fence* Refresh_SubmitAndAcquireFence( |  | ||||||
| 	Refresh_Device* device, |  | ||||||
| 	Refresh_CommandBuffer *commandBuffer |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| /* Waits for the device to become idle. */ |  | ||||||
| REFRESHAPI void Refresh_Wait( | REFRESHAPI void Refresh_Wait( | ||||||
| 	Refresh_Device *device | 	Refresh_Device *device | ||||||
| ); | ); | ||||||
| 
 | 
 | ||||||
| /* Waits for given fences to be signaled.
 |  | ||||||
|  * |  | ||||||
|  * waitAll: If 0, waits for any fence to be signaled. If 1, waits for all fences to be signaled. |  | ||||||
|  * fenceCount: The number of fences being submitted. |  | ||||||
|  * pFences: An array of fences to be waited on. |  | ||||||
|  */ |  | ||||||
| REFRESHAPI void Refresh_WaitForFences( |  | ||||||
| 	Refresh_Device *device, |  | ||||||
| 	uint8_t waitAll, |  | ||||||
| 	uint32_t fenceCount, |  | ||||||
| 	Refresh_Fence **pFences |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| /* Check the status of a fence. 1 means the fence is signaled. */ |  | ||||||
| REFRESHAPI int Refresh_QueryFence( |  | ||||||
| 	Refresh_Device *device, |  | ||||||
| 	Refresh_Fence *fence |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| /* Allows the fence to be reused by future command buffer submissions.
 |  | ||||||
|  * If you do not release fences after acquiring them, you will cause unbounded resource growth. |  | ||||||
|  */ |  | ||||||
| REFRESHAPI void Refresh_ReleaseFence( |  | ||||||
| 	Refresh_Device *device, |  | ||||||
| 	Refresh_Fence *fence |  | ||||||
| ); |  | ||||||
| 
 |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
| } | } | ||||||
| #endif /* __cplusplus */ | #endif /* __cplusplus */ | ||||||
|  |  | ||||||
|  | @ -238,7 +238,7 @@ partial class Program | ||||||
| 	{ | 	{ | ||||||
| 		Process glslc = Process.Start( | 		Process glslc = Process.Start( | ||||||
| 			"glslc", | 			"glslc", | ||||||
| 			$"""{glslPath}"" -o ""{outputPath}""" | 			$"{glslPath} -o {outputPath}" | ||||||
| 		); | 		); | ||||||
| 		glslc.WaitForExit(); | 		glslc.WaitForExit(); | ||||||
| 		if (glslc.ExitCode != 0) | 		if (glslc.ExitCode != 0) | ||||||
|  | @ -254,7 +254,7 @@ partial class Program | ||||||
| 	{ | 	{ | ||||||
| 		Process spirvcross = Process.Start( | 		Process spirvcross = Process.Start( | ||||||
| 			"spirv-cross", | 			"spirv-cross", | ||||||
| 			$"""{spirvPath}"" --hlsl --shader-model 50 --output ""{outputPath}""" | 			$"{spirvPath} --hlsl --shader-model 50 --output {outputPath}" | ||||||
| 		); | 		); | ||||||
| 		spirvcross.WaitForExit(); | 		spirvcross.WaitForExit(); | ||||||
| 		if (spirvcross.ExitCode != 0) | 		if (spirvcross.ExitCode != 0) | ||||||
|  |  | ||||||
|  | @ -39,12 +39,6 @@ | ||||||
| 	#define VULKAN_DRIVER NULL | 	#define VULKAN_DRIVER NULL | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifdef REFRESH_DRIVER_D3D11 |  | ||||||
| 	#define D3D11_DRIVER &D3D11Driver |  | ||||||
| #else |  | ||||||
| 	#define D3D11_DRIVER NULL |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #ifdef REFRESH_DRIVER_PS5 | #ifdef REFRESH_DRIVER_PS5 | ||||||
| 	#define PS5_DRIVER &PS5Driver | 	#define PS5_DRIVER &PS5Driver | ||||||
| #else | #else | ||||||
|  | @ -53,7 +47,6 @@ | ||||||
| 
 | 
 | ||||||
| static const Refresh_Driver *backends[] = { | static const Refresh_Driver *backends[] = { | ||||||
| 	NULL, | 	NULL, | ||||||
| 	D3D11_DRIVER, |  | ||||||
| 	VULKAN_DRIVER, | 	VULKAN_DRIVER, | ||||||
| 	PS5_DRIVER | 	PS5_DRIVER | ||||||
| }; | }; | ||||||
|  | @ -445,13 +438,8 @@ void Refresh_SetTextureDataYUV( | ||||||
| 	uint32_t yHeight, | 	uint32_t yHeight, | ||||||
| 	uint32_t uvWidth, | 	uint32_t uvWidth, | ||||||
| 	uint32_t uvHeight, | 	uint32_t uvHeight, | ||||||
| 	void *yDataPtr, | 	void* data, | ||||||
| 	void *uDataPtr, | 	uint32_t dataLength | ||||||
| 	void *vDataPtr, |  | ||||||
| 	uint32_t yDataLength, |  | ||||||
| 	uint32_t uvDataLength, |  | ||||||
| 	uint32_t yStride, |  | ||||||
| 	uint32_t uvStride |  | ||||||
| ) { | ) { | ||||||
| 	NULL_RETURN(device); | 	NULL_RETURN(device); | ||||||
| 	device->SetTextureDataYUV( | 	device->SetTextureDataYUV( | ||||||
|  | @ -464,13 +452,8 @@ void Refresh_SetTextureDataYUV( | ||||||
| 		yHeight, | 		yHeight, | ||||||
| 		uvWidth, | 		uvWidth, | ||||||
| 		uvHeight, | 		uvHeight, | ||||||
| 		yDataPtr, | 		data, | ||||||
| 		uDataPtr, | 		dataLength | ||||||
| 		vDataPtr, |  | ||||||
| 		yDataLength, |  | ||||||
| 		uvDataLength, |  | ||||||
| 		yStride, |  | ||||||
| 		uvStride |  | ||||||
| 	); | 	); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -899,23 +882,14 @@ void Refresh_SetSwapchainPresentMode( | ||||||
| 
 | 
 | ||||||
| void Refresh_Submit( | void Refresh_Submit( | ||||||
| 	Refresh_Device *device, | 	Refresh_Device *device, | ||||||
| 	Refresh_CommandBuffer *commandBuffer | 	uint32_t commandBufferCount, | ||||||
|  | 	Refresh_CommandBuffer **pCommandBuffers | ||||||
| ) { | ) { | ||||||
| 	NULL_RETURN(device); | 	NULL_RETURN(device); | ||||||
| 	device->Submit( | 	device->Submit( | ||||||
| 		device->driverData, | 		device->driverData, | ||||||
| 		commandBuffer | 		commandBufferCount, | ||||||
| 	); | 		pCommandBuffers | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Refresh_Fence* Refresh_SubmitAndAcquireFence( |  | ||||||
| 	Refresh_Device *device, |  | ||||||
| 	Refresh_CommandBuffer *commandBuffer |  | ||||||
| ) { |  | ||||||
| 	NULL_RETURN_NULL(device); |  | ||||||
| 	return device->SubmitAndAcquireFence( |  | ||||||
| 		device->driverData, |  | ||||||
| 		commandBuffer |  | ||||||
| 	); | 	); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -928,44 +902,4 @@ void Refresh_Wait( | ||||||
| 	); | 	); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Refresh_WaitForFences( |  | ||||||
| 	Refresh_Device *device, |  | ||||||
| 	uint8_t waitAll, |  | ||||||
| 	uint32_t fenceCount, |  | ||||||
| 	Refresh_Fence **pFences |  | ||||||
| ) { |  | ||||||
| 	NULL_RETURN(device); |  | ||||||
| 	device->WaitForFences( |  | ||||||
| 		device->driverData, |  | ||||||
| 		waitAll, |  | ||||||
| 		fenceCount, |  | ||||||
| 		pFences |  | ||||||
| 	); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| int Refresh_QueryFence( |  | ||||||
| 	Refresh_Device *device, |  | ||||||
| 	Refresh_Fence *fence |  | ||||||
| ) { |  | ||||||
| 	if (device == NULL) { |  | ||||||
| 		return 0; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return device->QueryFence( |  | ||||||
| 		device->driverData, |  | ||||||
| 		fence |  | ||||||
| 	); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void Refresh_ReleaseFence( |  | ||||||
| 	Refresh_Device *device, |  | ||||||
| 	Refresh_Fence *fence |  | ||||||
| ) { |  | ||||||
| 	NULL_RETURN(device); |  | ||||||
| 	device->ReleaseFence( |  | ||||||
| 		device->driverData, |  | ||||||
| 		fence |  | ||||||
| 	); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* vim: set noexpandtab shiftwidth=8 tabstop=8: */ | /* vim: set noexpandtab shiftwidth=8 tabstop=8: */ | ||||||
|  |  | ||||||
|  | @ -268,7 +268,7 @@ struct Refresh_Device | ||||||
| 
 | 
 | ||||||
| 	/* Setters */ | 	/* Setters */ | ||||||
| 
 | 
 | ||||||
| 	void (*SetTextureData)( | 	void(*SetTextureData)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_TextureSlice *textureSlice, | 		Refresh_TextureSlice *textureSlice, | ||||||
|  | @ -276,7 +276,7 @@ struct Refresh_Device | ||||||
| 		uint32_t dataLengthInBytes | 		uint32_t dataLengthInBytes | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*SetTextureDataYUV)( | 	void(*SetTextureDataYUV)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer* commandBuffer, | 		Refresh_CommandBuffer* commandBuffer, | ||||||
| 		Refresh_Texture *y, | 		Refresh_Texture *y, | ||||||
|  | @ -286,16 +286,11 @@ struct Refresh_Device | ||||||
| 		uint32_t yHeight, | 		uint32_t yHeight, | ||||||
| 		uint32_t uvWidth, | 		uint32_t uvWidth, | ||||||
| 		uint32_t uvHeight, | 		uint32_t uvHeight, | ||||||
| 		void *yDataPtr, | 		void* data, | ||||||
| 		void *uDataPtr, | 		uint32_t dataLength | ||||||
| 		void *vDataPtr, |  | ||||||
| 		uint32_t yDataLength, |  | ||||||
| 		uint32_t uvDataLength, |  | ||||||
| 		uint32_t yStride, |  | ||||||
| 		uint32_t uvStride |  | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*CopyTextureToTexture)( | 	void(*CopyTextureToTexture)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_TextureSlice *sourceTextureSlice, | 		Refresh_TextureSlice *sourceTextureSlice, | ||||||
|  | @ -303,14 +298,14 @@ struct Refresh_Device | ||||||
| 		Refresh_Filter filter | 		Refresh_Filter filter | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*CopyTextureToBuffer)( | 	void(*CopyTextureToBuffer)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_TextureSlice *textureSlice, | 		Refresh_TextureSlice *textureSlice, | ||||||
| 		Refresh_Buffer *buffer | 		Refresh_Buffer *buffer | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*SetBufferData)( | 	void(*SetBufferData)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_Buffer *buffer, | 		Refresh_Buffer *buffer, | ||||||
|  | @ -319,14 +314,14 @@ struct Refresh_Device | ||||||
| 		uint32_t dataLength | 		uint32_t dataLength | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	uint32_t (*PushVertexShaderUniforms)( | 	uint32_t(*PushVertexShaderUniforms)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		void *data, | 		void *data, | ||||||
| 		uint32_t dataLengthInBytes | 		uint32_t dataLengthInBytes | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	uint32_t (*PushFragmentShaderUniforms)( | 	uint32_t(*PushFragmentShaderUniforms)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		void *data, | 		void *data, | ||||||
|  | @ -340,14 +335,14 @@ struct Refresh_Device | ||||||
| 		uint32_t dataLengthInBytes | 		uint32_t dataLengthInBytes | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*BindVertexSamplers)( | 	void(*BindVertexSamplers)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_Texture **pTextures, | 		Refresh_Texture **pTextures, | ||||||
| 		Refresh_Sampler **pSamplers | 		Refresh_Sampler **pSamplers | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*BindFragmentSamplers)( | 	void(*BindFragmentSamplers)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_Texture **pTextures, | 		Refresh_Texture **pTextures, | ||||||
|  | @ -356,7 +351,7 @@ struct Refresh_Device | ||||||
| 
 | 
 | ||||||
| 	/* Getters */ | 	/* Getters */ | ||||||
| 
 | 
 | ||||||
| 	void (*GetBufferData)( | 	void(*GetBufferData)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_Buffer *buffer, | 		Refresh_Buffer *buffer, | ||||||
| 		void *data, | 		void *data, | ||||||
|  | @ -365,39 +360,39 @@ struct Refresh_Device | ||||||
| 
 | 
 | ||||||
| 	/* Disposal */ | 	/* Disposal */ | ||||||
| 
 | 
 | ||||||
| 	void (*QueueDestroyTexture)( | 	void(*QueueDestroyTexture)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_Texture *texture | 		Refresh_Texture *texture | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*QueueDestroySampler)( | 	void(*QueueDestroySampler)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_Sampler *sampler | 		Refresh_Sampler *sampler | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*QueueDestroyBuffer)( | 	void(*QueueDestroyBuffer)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_Buffer *buffer | 		Refresh_Buffer *buffer | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*QueueDestroyShaderModule)( | 	void(*QueueDestroyShaderModule)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_ShaderModule *shaderModule | 		Refresh_ShaderModule *shaderModule | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*QueueDestroyComputePipeline)( | 	void(*QueueDestroyComputePipeline)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_ComputePipeline *computePipeline | 		Refresh_ComputePipeline *computePipeline | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*QueueDestroyGraphicsPipeline)( | 	void(*QueueDestroyGraphicsPipeline)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_GraphicsPipeline *graphicsPipeline | 		Refresh_GraphicsPipeline *graphicsPipeline | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	/* Graphics State */ | 	/* Graphics State */ | ||||||
| 
 | 
 | ||||||
| 	void (*BeginRenderPass)( | 	void(*BeginRenderPass)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_ColorAttachmentInfo *colorAttachmentInfos, | 		Refresh_ColorAttachmentInfo *colorAttachmentInfos, | ||||||
|  | @ -405,30 +400,30 @@ struct Refresh_Device | ||||||
| 		Refresh_DepthStencilAttachmentInfo *depthStencilAttachmentInfo | 		Refresh_DepthStencilAttachmentInfo *depthStencilAttachmentInfo | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*EndRenderPass)( | 	void(*EndRenderPass)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer | 		Refresh_CommandBuffer *commandBuffer | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*SetViewport)( | 	void(*SetViewport)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_Viewport *viewport | 		Refresh_Viewport *viewport | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*SetScissor)( | 	void(*SetScissor)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_Rect *scissor | 		Refresh_Rect *scissor | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*BindGraphicsPipeline)( | 	void(*BindGraphicsPipeline)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_GraphicsPipeline *graphicsPipeline | 		Refresh_GraphicsPipeline *graphicsPipeline | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*BindVertexBuffers)( | 	void(*BindVertexBuffers)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		uint32_t firstBinding, | 		uint32_t firstBinding, | ||||||
|  | @ -437,7 +432,7 @@ struct Refresh_Device | ||||||
| 		uint64_t *pOffsets | 		uint64_t *pOffsets | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*BindIndexBuffer)( | 	void(*BindIndexBuffer)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_Buffer *buffer, | 		Refresh_Buffer *buffer, | ||||||
|  | @ -445,19 +440,19 @@ struct Refresh_Device | ||||||
| 		Refresh_IndexElementSize indexElementSize | 		Refresh_IndexElementSize indexElementSize | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*BindComputePipeline)( | 	void(*BindComputePipeline)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_ComputePipeline *computePipeline | 		Refresh_ComputePipeline *computePipeline | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*BindComputeBuffers)( | 	void(*BindComputeBuffers)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_Buffer **pBuffers | 		Refresh_Buffer **pBuffers | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*BindComputeTextures)( | 	void(*BindComputeTextures)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer, | 		Refresh_CommandBuffer *commandBuffer, | ||||||
| 		Refresh_Texture **pTextures | 		Refresh_Texture **pTextures | ||||||
|  | @ -469,7 +464,7 @@ struct Refresh_Device | ||||||
| 		Refresh_PresentMode presentMode | 		Refresh_PresentMode presentMode | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*UnclaimWindow)( | 	void(*UnclaimWindow)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		void *windowHandle | 		void *windowHandle | ||||||
| 	); | 	); | ||||||
|  | @ -497,37 +492,16 @@ struct Refresh_Device | ||||||
| 		Refresh_PresentMode presentMode | 		Refresh_PresentMode presentMode | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*Submit)( | 	void(*Submit)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer | 		uint32_t commandBufferCount, | ||||||
|  | 		Refresh_CommandBuffer **pCommandBuffers | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	Refresh_Fence* (*SubmitAndAcquireFence)( | 	void(*Wait)( | ||||||
| 		Refresh_Renderer *driverData, |  | ||||||
| 		Refresh_CommandBuffer *commandBuffer |  | ||||||
| 	); |  | ||||||
| 
 |  | ||||||
| 	void (*Wait)( |  | ||||||
| 		Refresh_Renderer *driverData | 		Refresh_Renderer *driverData | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void (*WaitForFences)( |  | ||||||
| 		Refresh_Renderer *driverData, |  | ||||||
| 		uint8_t waitAll, |  | ||||||
| 		uint32_t fenceCount, |  | ||||||
| 		Refresh_Fence **pFences |  | ||||||
| 	); |  | ||||||
| 
 |  | ||||||
| 	int (*QueryFence)( |  | ||||||
| 		Refresh_Renderer *driverData, |  | ||||||
| 		Refresh_Fence *fence |  | ||||||
| 	); |  | ||||||
| 
 |  | ||||||
| 	void (*ReleaseFence)( |  | ||||||
| 		Refresh_Renderer *driverData, |  | ||||||
| 		Refresh_Fence *fence |  | ||||||
| 	); |  | ||||||
| 
 |  | ||||||
| 	/* Opaque pointer for the Driver */ | 	/* Opaque pointer for the Driver */ | ||||||
| 	Refresh_Renderer *driverData; | 	Refresh_Renderer *driverData; | ||||||
| }; | }; | ||||||
|  | @ -581,11 +555,7 @@ struct Refresh_Device | ||||||
| 	ASSIGN_DRIVER_FUNC(GetSwapchainFormat, name) \ | 	ASSIGN_DRIVER_FUNC(GetSwapchainFormat, name) \ | ||||||
| 	ASSIGN_DRIVER_FUNC(SetSwapchainPresentMode, name) \ | 	ASSIGN_DRIVER_FUNC(SetSwapchainPresentMode, name) \ | ||||||
| 	ASSIGN_DRIVER_FUNC(Submit, name) \ | 	ASSIGN_DRIVER_FUNC(Submit, name) \ | ||||||
| 	ASSIGN_DRIVER_FUNC(SubmitAndAcquireFence, name) \ | 	ASSIGN_DRIVER_FUNC(Wait, name) | ||||||
| 	ASSIGN_DRIVER_FUNC(Wait, name) \ |  | ||||||
| 	ASSIGN_DRIVER_FUNC(WaitForFences, name) \ |  | ||||||
| 	ASSIGN_DRIVER_FUNC(QueryFence, name) \ |  | ||||||
| 	ASSIGN_DRIVER_FUNC(ReleaseFence, name) |  | ||||||
| 
 | 
 | ||||||
| typedef struct Refresh_Driver | typedef struct Refresh_Driver | ||||||
| { | { | ||||||
|  | @ -597,7 +567,6 @@ typedef struct Refresh_Driver | ||||||
| } Refresh_Driver; | } Refresh_Driver; | ||||||
| 
 | 
 | ||||||
| extern Refresh_Driver VulkanDriver; | extern Refresh_Driver VulkanDriver; | ||||||
| extern Refresh_Driver D3D11Driver; |  | ||||||
| extern Refresh_Driver PS5Driver; | extern Refresh_Driver PS5Driver; | ||||||
| 
 | 
 | ||||||
| #endif /* REFRESH_DRIVER_H */ | #endif /* REFRESH_DRIVER_H */ | ||||||
|  |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -1,215 +0,0 @@ | ||||||
| /* Refresh - XNA-inspired 3D Graphics Library with modern capabilities
 |  | ||||||
|  * |  | ||||||
|  * Copyright (c) 2020 Evan Hemsley |  | ||||||
|  * |  | ||||||
|  * This software is provided 'as-is', without any express or implied warranty. |  | ||||||
|  * In no event will the authors be held liable for any damages arising from |  | ||||||
|  * the use of this software. |  | ||||||
|  * |  | ||||||
|  * Permission is granted to anyone to use this software for any purpose, |  | ||||||
|  * including commercial applications, and to alter it and redistribute it |  | ||||||
|  * freely, subject to the following restrictions: |  | ||||||
|  * |  | ||||||
|  * 1. The origin of this software must not be misrepresented; you must not |  | ||||||
|  * claim that you wrote the original software. If you use this software in a |  | ||||||
|  * product, an acknowledgment in the product documentation would be |  | ||||||
|  * appreciated but is not required. |  | ||||||
|  * |  | ||||||
|  * 2. Altered source versions must be plainly marked as such, and must not be |  | ||||||
|  * misrepresented as being the original software. |  | ||||||
|  * |  | ||||||
|  * 3. This notice may not be removed or altered from any source distribution. |  | ||||||
|  * |  | ||||||
|  * Evan "cosmonaut" Hemsley <evan@moonside.games> |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| /* Function Pointer Signatures */ |  | ||||||
| typedef HRESULT(WINAPI* PFN_CREATE_DXGI_FACTORY)(const GUID* riid, void** ppFactory); |  | ||||||
| 
 |  | ||||||
|  /* IIDs (from https://magnumdb.com) */ |  | ||||||
| 
 |  | ||||||
| static const IID D3D_IID_IDXGIFactory1 = { 0x770aae78,0xf26f,0x4dba,{0xa8,0x29,0x25,0x3c,0x83,0xd1,0xb3,0x87} }; |  | ||||||
| static const IID D3D_IID_IDXGIFactory6 = { 0xc1b6694f,0xff09,0x44a9,{0xb0,0x3c,0x77,0x90,0x0a,0x0a,0x1d,0x17} }; |  | ||||||
| static const IID D3D_IID_IDXGIAdapter1 = { 0x29038f61,0x3839,0x4626,{0x91,0xfd,0x08,0x68,0x79,0x01,0x1a,0x05} }; |  | ||||||
| static const IID D3D_IID_ID3D11Texture2D = { 0x6f15aaf2,0xd208,0x4e89,{0x9a,0xb4,0x48,0x95,0x35,0xd3,0x4f,0x9c} }; |  | ||||||
| 
 |  | ||||||
| /* IDXGIFactory6 (taken from dxgi1_6.h, cleaned up a bit) */ |  | ||||||
| typedef enum |  | ||||||
| { |  | ||||||
| 	DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0 |  | ||||||
| } DXGI_FEATURE; |  | ||||||
| 
 |  | ||||||
| typedef enum |  | ||||||
| { |  | ||||||
| 	DXGI_GPU_PREFERENCE_UNSPECIFIED = 0, |  | ||||||
| 	DXGI_GPU_PREFERENCE_MINIMUM_POWER = (DXGI_GPU_PREFERENCE_UNSPECIFIED + 1), |  | ||||||
| 	DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = (DXGI_GPU_PREFERENCE_MINIMUM_POWER + 1) |  | ||||||
| } DXGI_GPU_PREFERENCE; |  | ||||||
| 
 |  | ||||||
| typedef struct IDXGIFactory6 IDXGIFactory6; |  | ||||||
| typedef struct IDXGIFactory6Vtbl |  | ||||||
| { |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* QueryInterface)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		REFIID riid, |  | ||||||
| 		void** ppvObject); |  | ||||||
| 
 |  | ||||||
| 	ULONG(STDMETHODCALLTYPE* AddRef)( |  | ||||||
| 		IDXGIFactory6* This); |  | ||||||
| 
 |  | ||||||
| 	ULONG(STDMETHODCALLTYPE* Release)( |  | ||||||
| 		IDXGIFactory6* This); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* SetPrivateData)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		REFGUID Name, |  | ||||||
| 		UINT DataSize, |  | ||||||
| 		const void* pData); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* SetPrivateDataInterface)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		REFGUID Name, |  | ||||||
| 		const IUnknown* pUnknown); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* GetPrivateData)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		REFGUID Name, |  | ||||||
| 		UINT* pDataSize, |  | ||||||
| 		void* pData); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* GetParent)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		REFIID riid, |  | ||||||
| 		void** ppParent); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* EnumAdapters)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		UINT Adapter, |  | ||||||
| 		IDXGIAdapter** ppAdapter); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* MakeWindowAssociation)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		HWND WindowHandle, |  | ||||||
| 		UINT Flags); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* GetWindowAssociation)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		HWND* pWindowHandle); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* CreateSwapChain)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		IUnknown* pDevice, |  | ||||||
| 		DXGI_SWAP_CHAIN_DESC* pDesc, |  | ||||||
| 		IDXGISwapChain** ppSwapChain); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* CreateSoftwareAdapter)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		HMODULE Module, |  | ||||||
| 		IDXGIAdapter** ppAdapter); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* EnumAdapters1)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		UINT Adapter, |  | ||||||
| 		IDXGIAdapter1** ppAdapter); |  | ||||||
| 
 |  | ||||||
| 	BOOL(STDMETHODCALLTYPE* IsCurrent)( |  | ||||||
| 		IDXGIFactory6* This); |  | ||||||
| 
 |  | ||||||
| 	BOOL(STDMETHODCALLTYPE* IsWindowedStereoEnabled)( |  | ||||||
| 		IDXGIFactory6* This); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* CreateSwapChainForHwnd)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		IUnknown* pDevice, |  | ||||||
| 		HWND hWnd, |  | ||||||
| 		void* pDesc, |  | ||||||
| 		void* pFullscreenDesc, |  | ||||||
| 		void* pRestrictToOutput, |  | ||||||
| 		void** ppSwapChain); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* CreateSwapChainForCoreWindow)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		IUnknown* pDevice, |  | ||||||
| 		IUnknown* pWindow, |  | ||||||
| 		void* pDesc, |  | ||||||
| 		void* pRestrictToOutput, |  | ||||||
| 		void** ppSwapChain); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* GetSharedResourceAdapterLuid)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		HANDLE hResource, |  | ||||||
| 		LUID* pLuid); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* RegisterStereoStatusWindow)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		HWND WindowHandle, |  | ||||||
| 		UINT wMsg, |  | ||||||
| 		DWORD* pdwCookie); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* RegisterStereoStatusEvent)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		HANDLE hEvent, |  | ||||||
| 		DWORD* pdwCookie); |  | ||||||
| 
 |  | ||||||
| 	void (STDMETHODCALLTYPE* UnregisterStereoStatus)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		DWORD dwCookie); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* RegisterOcclusionStatusWindow)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		HWND WindowHandle, |  | ||||||
| 		UINT wMsg, |  | ||||||
| 		DWORD* pdwCookie); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* RegisterOcclusionStatusEvent)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		HANDLE hEvent, |  | ||||||
| 		DWORD* pdwCookie); |  | ||||||
| 
 |  | ||||||
| 	void (STDMETHODCALLTYPE* UnregisterOcclusionStatus)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		DWORD dwCookie); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* CreateSwapChainForComposition)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		IUnknown* pDevice, |  | ||||||
| 		void* pDesc, |  | ||||||
| 		void* pRestrictToOutput, |  | ||||||
| 		void** ppSwapChain); |  | ||||||
| 
 |  | ||||||
| 	UINT(STDMETHODCALLTYPE* GetCreationFlags)( |  | ||||||
| 		IDXGIFactory6* This); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* EnumAdapterByLuid)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		LUID AdapterLuid, |  | ||||||
| 		REFIID riid, |  | ||||||
| 		void** ppvAdapter); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* EnumWarpAdapter)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		REFIID riid, |  | ||||||
| 		void** ppvAdapter); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* CheckFeatureSupport)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		DXGI_FEATURE Feature, |  | ||||||
| 		void* pFeatureSupportData, |  | ||||||
| 		UINT FeatureSupportDataSize); |  | ||||||
| 
 |  | ||||||
| 	HRESULT(STDMETHODCALLTYPE* EnumAdapterByGpuPreference)( |  | ||||||
| 		IDXGIFactory6* This, |  | ||||||
| 		UINT Adapter, |  | ||||||
| 		DXGI_GPU_PREFERENCE GpuPreference, |  | ||||||
| 		REFIID riid, |  | ||||||
| 		void** ppvAdapter); |  | ||||||
| } IDXGIFactory6Vtbl; |  | ||||||
| 
 |  | ||||||
| struct IDXGIFactory6 |  | ||||||
| { |  | ||||||
| 	struct IDXGIFactory6Vtbl* lpVtbl; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #define IDXGIFactory6_EnumAdapterByGpuPreference(This,Adapter,GpuPreference,riid,ppvAdapter)	\ |  | ||||||
| 	( (This)->lpVtbl -> EnumAdapterByGpuPreference(This,Adapter,GpuPreference,riid,ppvAdapter) )  |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -61,7 +61,7 @@ | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|       <WarningLevel>Level3</WarningLevel> |       <WarningLevel>Level3</WarningLevel> | ||||||
|       <Optimization>Disabled</Optimization> |       <Optimization>Disabled</Optimization> | ||||||
|       <PreprocessorDefinitions>REFRESH_DRIVER_VULKAN;REFRESH_DRIVER_D3D11;%(PreprocessorDefinitions)</PreprocessorDefinitions> |       <PreprocessorDefinitions>REFRESH_DRIVER_VULKAN;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <GenerateDebugInformation>DebugFull</GenerateDebugInformation> |       <GenerateDebugInformation>DebugFull</GenerateDebugInformation> | ||||||
|  | @ -72,7 +72,7 @@ | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|       <WarningLevel>Level3</WarningLevel> |       <WarningLevel>Level3</WarningLevel> | ||||||
|       <Optimization>MaxSpeed</Optimization> |       <Optimization>MaxSpeed</Optimization> | ||||||
|       <PreprocessorDefinitions>REFRESH_DRIVER_VULKAN;REFRESH_DRIVER_D3D11;%(PreprocessorDefinitions)</PreprocessorDefinitions> |       <PreprocessorDefinitions>REFRESH_DRIVER_VULKAN;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> |       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> |       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|  | @ -84,7 +84,6 @@ | ||||||
|   </ItemDefinitionGroup> |   </ItemDefinitionGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ClCompile Include="..\src\Refresh.c" /> |     <ClCompile Include="..\src\Refresh.c" /> | ||||||
|     <ClCompile Include="..\src\Refresh_Driver_D3D11.c" /> |  | ||||||
|     <ClCompile Include="..\src\Refresh_Driver_Vulkan.c" /> |     <ClCompile Include="..\src\Refresh_Driver_Vulkan.c" /> | ||||||
|     <ClCompile Include="..\src\Refresh_Image.c" /> |     <ClCompile Include="..\src\Refresh_Image.c" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|  | @ -92,7 +91,6 @@ | ||||||
|     <ClInclude Include="..\include\Refresh.h" /> |     <ClInclude Include="..\include\Refresh.h" /> | ||||||
|     <ClInclude Include="..\include\Refresh_Image.h" /> |     <ClInclude Include="..\include\Refresh_Image.h" /> | ||||||
|     <ClInclude Include="..\src\Refresh_Driver.h" /> |     <ClInclude Include="..\src\Refresh_Driver.h" /> | ||||||
|     <ClInclude Include="..\src\Refresh_Driver_D3D11_cdefines.h" /> |  | ||||||
|     <ClInclude Include="..\src\Refresh_Driver_Vulkan_vkfuncs.h" /> |     <ClInclude Include="..\src\Refresh_Driver_Vulkan_vkfuncs.h" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | ||||||
|  |  | ||||||
|  | @ -10,9 +10,6 @@ | ||||||
|     <ClCompile Include="..\src\Refresh_Image.c"> |     <ClCompile Include="..\src\Refresh_Image.c"> | ||||||
|       <Filter>Source Files</Filter> |       <Filter>Source Files</Filter> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <ClCompile Include="..\src\Refresh_Driver_D3D11.c"> |  | ||||||
|       <Filter>Source Files</Filter> |  | ||||||
|     </ClCompile> |  | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ClInclude Include="..\include\Refresh.h"> |     <ClInclude Include="..\include\Refresh.h"> | ||||||
|  | @ -27,9 +24,6 @@ | ||||||
|     <ClInclude Include="..\include\Refresh_Image.h"> |     <ClInclude Include="..\include\Refresh_Image.h"> | ||||||
|       <Filter>Header Files</Filter> |       <Filter>Header Files</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|     <ClInclude Include="..\src\Refresh_Driver_D3D11_cdefines.h"> |  | ||||||
|       <Filter>Header Files</Filter> |  | ||||||
|     </ClInclude> |  | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Filter Include="Header Files"> |     <Filter Include="Header Files"> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue