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; | ||||||
|  | @ -787,13 +785,8 @@ REFRESHAPI void Refresh_SetTextureData( | ||||||
|  * 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: */ | ||||||
|  |  | ||||||
|  | @ -286,13 +286,8 @@ 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)( | ||||||
|  | @ -499,35 +494,14 @@ struct Refresh_Device | ||||||
| 
 | 
 | ||||||
| 	void(*Submit)( | 	void(*Submit)( | ||||||
| 		Refresh_Renderer *driverData, | 		Refresh_Renderer *driverData, | ||||||
| 		Refresh_CommandBuffer *commandBuffer | 		uint32_t commandBufferCount, | ||||||
| 	); | 		Refresh_CommandBuffer **pCommandBuffers | ||||||
| 
 |  | ||||||
| 	Refresh_Fence* (*SubmitAndAcquireFence)( |  | ||||||
| 		Refresh_Renderer *driverData, |  | ||||||
| 		Refresh_CommandBuffer *commandBuffer |  | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	void(*Wait)( | 	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