From c7354d9345d8fd466e3128dc40671bc1208893e0 Mon Sep 17 00:00:00 2001 From: dmaivel Date: Mon, 8 Jul 2024 00:13:31 -0400 Subject: [PATCH] Remove `sgldxumd` and clean up inconsistencies --- CMakeLists.txt | 5 +- README.md | 2 +- inc/client/platform/windrv.h | 4 +- inc/sgldxumd/device.hpp | 8 - inc/sgldxumd/dxgi.hpp | 6 - inc/sgldxumd/sgldxumd.hpp | 22 -- src/client/pb.c | 98 ++++---- src/client/platform/glx.c | 11 +- src/client/platform/windrv.c | 128 +++++----- src/client/winmain.c | 16 +- src/network/net.c | 14 +- src/server/main.c | 4 +- src/server/processor.c | 3 +- src/sgldxumd/README.md | 19 -- src/sgldxumd/adapter.cpp | 89 ------- src/sgldxumd/d3dkmt.cpp | 437 ----------------------------------- src/sgldxumd/device.cpp | 44 ---- src/sgldxumd/dxgi.cpp | 2 - src/sgldxumd/main.cpp | 6 - 19 files changed, 136 insertions(+), 782 deletions(-) delete mode 100644 inc/sgldxumd/device.hpp delete mode 100644 inc/sgldxumd/dxgi.hpp delete mode 100644 inc/sgldxumd/sgldxumd.hpp delete mode 100644 src/sgldxumd/README.md delete mode 100644 src/sgldxumd/adapter.cpp delete mode 100644 src/sgldxumd/d3dkmt.cpp delete mode 100644 src/sgldxumd/device.cpp delete mode 100644 src/sgldxumd/dxgi.cpp delete mode 100644 src/sgldxumd/main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 66c837c..2385d5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.5.0) -project(sharedgl VERSION 0.7.0 LANGUAGES C CXX) +project(sharedgl VERSION 0.7.0 LANGUAGES C) include_directories(${CMAKE_SOURCE_DIR}/inc) @@ -10,7 +10,6 @@ IF(WIN32) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Gz") ELSE() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native") - set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -march=native") ENDIF(WIN32) file(GLOB GLOBBED_SERVER_SOURCES CONFIGURE_DEPENDS "src/server/*.c" "src/network/*.c") @@ -22,8 +21,6 @@ IF(UNIX) ELSEIF(WIN32) file(GLOB GLOBBED_CLIENT_SOURCES CONFIGURE_DEPENDS "src/client/winmain.c" "src/client/pb.c" "src/client/spinlock.c" "src/client/glimpl.c" "src/network/*.c") file(GLOB GLOBBED_CLIENT_P_SOURCES CONFIGURE_DEPENDS "src/client/platform/windrv.c") - - file(GLOB GLOBBED_DXUMD_SOURCES CONFIGURE_DEPENDS "src/sgldxumd/*.cpp") ENDIF(UNIX) # server diff --git a/README.md b/README.md index a61ecd8..d13660e 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ usage: sglrenderer [-h] [-v] [-o] [-n] [-x] [-g MAJOR.MINOR] [-r WIDTHxHEIGHT] [ options: -h display help information -v display virtual machine arguments - -o enables fps overlay on clients (shows server side fps) + -o enables fps overlay on clients -n enable networking instead of shared memory -x remove shared memory file -g [MAJOR.MINOR] report specific opengl version (default: 4.4) diff --git a/inc/client/platform/windrv.h b/inc/client/platform/windrv.h index cf785d0..0a5a24b 100644 --- a/inc/client/platform/windrv.h +++ b/inc/client/platform/windrv.h @@ -2,8 +2,8 @@ #ifndef _WINDRV_H_ #define _WINDRV_H_ -void WinDrvSetModuleAddress(HMODULE module); -void WinDrvSetVflip(BOOL flip); +void windrv_set_module_address(HMODULE module); +void windrv_set_vflip(BOOL flip); #endif #endif \ No newline at end of file diff --git a/inc/sgldxumd/device.hpp b/inc/sgldxumd/device.hpp deleted file mode 100644 index 412ec20..0000000 --- a/inc/sgldxumd/device.hpp +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _DEVICE_HPP_ -#define _DEVICE_HPP_ - -#include - -EXTERN_C HRESULT APIENTRY CreateDevice(D3D10DDI_HADAPTER hAdapter, D3D10DDIARG_CREATEDEVICE *pCreateData); - -#endif \ No newline at end of file diff --git a/inc/sgldxumd/dxgi.hpp b/inc/sgldxumd/dxgi.hpp deleted file mode 100644 index d66d6fa..0000000 --- a/inc/sgldxumd/dxgi.hpp +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _DXGI_HPP_ -#define _DXGI_HPP_ - -#include - -#endif \ No newline at end of file diff --git a/inc/sgldxumd/sgldxumd.hpp b/inc/sgldxumd/sgldxumd.hpp deleted file mode 100644 index cbb7e77..0000000 --- a/inc/sgldxumd/sgldxumd.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef _SGLDXUMD_HPP_ -#define _SGLDXUMD_HPP_ - -#define D3D10DDI_MINOR_HEADER_VERSION 2 - -#include - -#ifdef _MSC_VER -#include -#endif - -#include - -#ifndef STATUS_NOT_IMPLEMENTED -#define STATUS_NOT_IMPLEMENTED 0xC0000002 -#endif - -#ifndef STATUS_SUCCESS -#define STATUS_SUCCESS 0x00000000 -#endif - -#endif \ No newline at end of file diff --git a/src/client/pb.c b/src/client/pb.c index 95c26e9..c98e9cb 100644 --- a/src/client/pb.c +++ b/src/client/pb.c @@ -27,32 +27,32 @@ DEFINE_GUID(GUID_DEVINTERFACE_IVSHMEM, #define IVSHMEM_CACHE_CACHED 1 #define IVSHMEM_CACHE_WRITECOMBINED 2 -typedef struct IVSHMEM_MMAP_CONFIG { - BYTE CacheMode; -} IVSHMEM_MMAP_CONFIG, *PIVSHMEM_MMAP_CONFIG; - -typedef struct IVSHMEM_MMAP { - WORD PeerID; - DWORD64 Size; - PVOID Pointer; - WORD Vectors; -} IVSHMEM_MMAP, *PIVSHMEM_MMAP; - #define IOCTL_IVSHMEM_REQUEST_SIZE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_IVSHMEM_REQUEST_MMAP CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IOCTL_IVSHMEM_RELEASE_MMAP CTL_CODE(FILE_DEVICE_UNKNOWN, 0x803, METHOD_BUFFERED, FILE_ANY_ACCESS) -HANDLE Handle; +struct ivshmem_mmap_config { + BYTE cache_mode; +}; + +struct ivshmem_mmap { + WORD peer_id; + DWORD64 size; + PVOID pointer; + WORD vectors; +}; + +static HANDLE ivshmem_handle; #endif -void *ptr; -void *base; -int *cur; +static void *ptr; +static void *base; +static int *cur; -void *in_base; -int *in_cur; +static void *in_base; +static int *in_cur; -struct pb_net_hooks net_hooks = { NULL }; +static struct pb_net_hooks net_hooks = { NULL }; #ifndef _WIN32 void pb_set(int fd) @@ -71,58 +71,58 @@ void pb_set(int fd) #else void pb_set(void) { - HDEVINFO DeviceInfoSet; - PSP_DEVICE_INTERFACE_DETAIL_DATA InfData; - SP_DEVICE_INTERFACE_DATA DeviceInterfaceData; - DWORD64 Size; - IVSHMEM_MMAP_CONFIG Config; - IVSHMEM_MMAP Map; - DWORD RequestSize; + HDEVINFO device_info; + PSP_DEVICE_INTERFACE_DETAIL_DATA inf_data; + SP_DEVICE_INTERFACE_DATA dev_data; + DWORD64 size; + struct ivshmem_mmap_config config; + struct ivshmem_mmap map; + DWORD request_size; - DeviceInfoSet = SetupDiGetClassDevs(NULL, NULL, NULL, DIGCF_PRESENT | DIGCF_ALLCLASSES | DIGCF_DEVICEINTERFACE); - ZeroMemory(&DeviceInterfaceData, sizeof(SP_DEVICE_INTERFACE_DATA)); - DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); + device_info = SetupDiGetClassDevs(NULL, NULL, NULL, DIGCF_PRESENT | DIGCF_ALLCLASSES | DIGCF_DEVICEINTERFACE); + ZeroMemory(&dev_data, sizeof(SP_DEVICE_INTERFACE_DATA)); + dev_data.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); - if (SetupDiEnumDeviceInterfaces(DeviceInfoSet, NULL, &GUID_DEVINTERFACE_IVSHMEM, 0, &DeviceInterfaceData) == FALSE) + if (SetupDiEnumDeviceInterfaces(device_info, NULL, &GUID_DEVINTERFACE_IVSHMEM, 0, &dev_data) == FALSE) return; - SetupDiGetDeviceInterfaceDetail(DeviceInfoSet, &DeviceInterfaceData, NULL, 0, &RequestSize, NULL); - if (!RequestSize) + SetupDiGetDeviceInterfaceDetail(device_info, &dev_data, NULL, 0, &request_size, NULL); + if (!request_size) return; - InfData = (PSP_DEVICE_INTERFACE_DETAIL_DATA)(malloc(RequestSize)); - ZeroMemory(InfData, RequestSize); - InfData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA); - if (!SetupDiGetDeviceInterfaceDetail(DeviceInfoSet, &DeviceInterfaceData, InfData, RequestSize, NULL, NULL)) + inf_data = (PSP_DEVICE_INTERFACE_DETAIL_DATA)(malloc(request_size)); + ZeroMemory(inf_data, request_size); + inf_data->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA); + if (!SetupDiGetDeviceInterfaceDetail(device_info, &dev_data, inf_data, request_size, NULL, NULL)) return; - Handle = CreateFile(InfData->DevicePath, 0, 0, NULL, OPEN_EXISTING, 0, 0); - if (Handle == INVALID_HANDLE_VALUE) + ivshmem_handle = CreateFile(inf_data->DevicePath, 0, 0, NULL, OPEN_EXISTING, 0, 0); + if (ivshmem_handle == INVALID_HANDLE_VALUE) return; - if (InfData) - free(InfData); - SetupDiDestroyDeviceInfoList(DeviceInfoSet); + if (inf_data) + free(inf_data); + SetupDiDestroyDeviceInfoList(device_info); - if (!DeviceIoControl(Handle, IOCTL_IVSHMEM_REQUEST_SIZE, NULL, 0, &Size, sizeof(UINT64), NULL, NULL)) + if (!DeviceIoControl(ivshmem_handle, IOCTL_IVSHMEM_REQUEST_SIZE, NULL, 0, &size, sizeof(UINT64), NULL, NULL)) return; - Config.CacheMode = IVSHMEM_CACHE_WRITECOMBINED; - ZeroMemory(&Map, sizeof(IVSHMEM_MMAP)); - if (!DeviceIoControl(Handle, IOCTL_IVSHMEM_REQUEST_MMAP, &Config, sizeof(IVSHMEM_MMAP_CONFIG), &Map, sizeof(IVSHMEM_MMAP), NULL, NULL)) + config.cache_mode = IVSHMEM_CACHE_WRITECOMBINED; + ZeroMemory(&map, sizeof(struct ivshmem_mmap)); + if (!DeviceIoControl(ivshmem_handle, IOCTL_IVSHMEM_REQUEST_MMAP, &config, sizeof(struct ivshmem_mmap_config), &map, sizeof(struct ivshmem_mmap), NULL, NULL)) return; - ptr = Map.Pointer; - base = (PVOID)((DWORD64)Map.Pointer + (DWORD64)0x1000); + ptr = map.pointer; + base = (PVOID)((DWORD64)map.pointer + (DWORD64)0x1000); - in_base = VirtualAlloc(NULL, Map.Size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); + in_base = VirtualAlloc(NULL, map.size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); in_cur = in_base; } void pb_unset(void) { - DeviceIoControl(Handle, IOCTL_IVSHMEM_RELEASE_MMAP, NULL, 0, NULL, 0, NULL, NULL); - CloseHandle(Handle); + DeviceIoControl(ivshmem_handle, IOCTL_IVSHMEM_RELEASE_MMAP, NULL, 0, NULL, 0, NULL, NULL); + CloseHandle(ivshmem_handle); } #endif diff --git a/src/client/platform/glx.c b/src/client/platform/glx.c index 373c72c..f094a0d 100644 --- a/src/client/platform/glx.c +++ b/src/client/platform/glx.c @@ -64,23 +64,23 @@ static int n_valid_fb_configs; static struct glx_fb_config fb_configs[1729] = { 0 }; -int fb_valid_color_sizes[] = { +static int fb_valid_color_sizes[] = { 0, 1, 8, 16, 24, 32 }; -int fb_valid_render_types[] = { +static int fb_valid_render_types[] = { GLX_RGBA_BIT, GLX_COLOR_INDEX_BIT }; -int fb_valid_doublebuffer_types[] = { +static int fb_valid_doublebuffer_types[] = { False, True }; -int fb_valid_drawable_types[] = { +static int fb_valid_drawable_types[] = { GLX_WINDOW_BIT }; -int fb_valid_visual_types[] = { +static int fb_valid_visual_types[] = { GLX_TRUE_COLOR, GLX_DIRECT_COLOR, GLX_PSEUDO_COLOR, GLX_STATIC_COLOR, GLX_GRAY_SCALE, GLX_STATIC_GRAY }; @@ -435,5 +435,4 @@ void glximpl_init() } glx_generate_fb_configs(); - // fprintf(stderr, "glximpl_init: n_valid_fb_configs = %d\n", n_valid_fb_configs); } \ No newline at end of file diff --git a/src/client/platform/windrv.c b/src/client/platform/windrv.c index 0a8d118..6a00496 100644 --- a/src/client/platform/windrv.c +++ b/src/client/platform/windrv.c @@ -8,15 +8,15 @@ #include -static PIXELFORMATDESCRIPTOR pfdTable[64] = { 0 }; -static int pfdCount = 0; +static PIXELFORMATDESCRIPTOR pfd_table[64] = { 0 }; +static int pfd_count = 0; static struct WGLCALLBACKS callbacks; -static int maxWidth, maxHeight, realWidth, realHeight; +static int max_width, max_height, real_width, real_height; -ICD_SET_MAX_DIMENSIONS_DEFINITION(maxWidth, maxHeight, realWidth, realHeight); -ICD_RESIZE_DEFINITION(realWidth, realHeight); +ICD_SET_MAX_DIMENSIONS_DEFINITION(max_width, max_height, real_width, real_height); +ICD_RESIZE_DEFINITION(real_width, real_height); #define MIN_INTERNAL( A, B ) ( (A)<(B) ? (A) : (B) ) #define MAX_INTERNAL( A, B ) ( (A)>(B) ? (A) : (B) ) @@ -44,15 +44,15 @@ static struct pfd_depth_info pfd_depths[4] = { { 24, 8 } }; -static HMODULE g_hModule = 0; +static HMODULE module_handle = 0; static BOOL do_vflip = TRUE; -void WinDrvSetModuleAddress(HMODULE module) +void windrv_set_module_address(HMODULE module) { - g_hModule = module; + module_handle = module; } -void WinDrvSetVflip(BOOL flip) +void windrv_set_vflip(BOOL flip) { do_vflip = flip; } @@ -101,65 +101,65 @@ BOOL wglChoosePixelFormatARB(HDC hdc, return TRUE; } -static void pfdAdd( +static void pfd_add( bool doublebuffer, bool gdi, unsigned int accum, int rbits, int gbits, int bbits, int abits, int rshift, int gshift, int bshift, int ashift, int depthbits, int stencilbits) { - pfdTable[pfdCount].nSize = sizeof(pfdTable[pfdCount]); - pfdTable[pfdCount].nVersion = 1; - pfdTable[pfdCount].dwFlags = PFD_SUPPORT_OPENGL | PFD_SUPPORT_COMPOSITION | PFD_DRAW_TO_WINDOW; + pfd_table[pfd_count].nSize = sizeof(pfd_table[pfd_count]); + pfd_table[pfd_count].nVersion = 1; + pfd_table[pfd_count].dwFlags = PFD_SUPPORT_OPENGL | PFD_SUPPORT_COMPOSITION | PFD_DRAW_TO_WINDOW; if (doublebuffer) - pfdTable[pfdCount].dwFlags |= PFD_DOUBLEBUFFER | PFD_SWAP_EXCHANGE; + pfd_table[pfd_count].dwFlags |= PFD_DOUBLEBUFFER | PFD_SWAP_EXCHANGE; if (gdi) - pfdTable[pfdCount].dwFlags |= PFD_SUPPORT_GDI; - - pfdTable[pfdCount].iPixelType = PFD_TYPE_RGBA; - pfdTable[pfdCount].iLayerType = PFD_MAIN_PLANE; - - pfdTable[pfdCount].cColorBits = rbits + gbits + bbits + abits; - pfdTable[pfdCount].cRedBits = rbits; - pfdTable[pfdCount].cRedShift = rshift; - pfdTable[pfdCount].cGreenBits = gbits; - pfdTable[pfdCount].cGreenShift = gshift; - pfdTable[pfdCount].cBlueBits = bbits; - pfdTable[pfdCount].cBlueShift = bshift; - pfdTable[pfdCount].cAlphaBits = abits; - pfdTable[pfdCount].cAlphaShift = ashift; - pfdTable[pfdCount].cAccumBits = 4*accum; - pfdTable[pfdCount].cAccumRedBits = accum; - pfdTable[pfdCount].cAccumGreenBits = accum; - pfdTable[pfdCount].cAccumBlueBits = accum; - pfdTable[pfdCount].cAccumAlphaBits = accum; - pfdTable[pfdCount].cDepthBits = depthbits; - pfdTable[pfdCount].cStencilBits = stencilbits; - pfdTable[pfdCount].cAuxBuffers = 0; - pfdTable[pfdCount].iLayerType = 0; - pfdTable[pfdCount].bReserved = 0; - pfdTable[pfdCount].dwLayerMask = 0; - pfdTable[pfdCount].dwVisibleMask = 0; - pfdTable[pfdCount].dwDamageMask = 0; - - pfdCount++; + pfd_table[pfd_count].dwFlags |= PFD_SUPPORT_GDI; + + pfd_table[pfd_count].iPixelType = PFD_TYPE_RGBA; + pfd_table[pfd_count].iLayerType = PFD_MAIN_PLANE; + + pfd_table[pfd_count].cColorBits = rbits + gbits + bbits + abits; + pfd_table[pfd_count].cRedBits = rbits; + pfd_table[pfd_count].cRedShift = rshift; + pfd_table[pfd_count].cGreenBits = gbits; + pfd_table[pfd_count].cGreenShift = gshift; + pfd_table[pfd_count].cBlueBits = bbits; + pfd_table[pfd_count].cBlueShift = bshift; + pfd_table[pfd_count].cAlphaBits = abits; + pfd_table[pfd_count].cAlphaShift = ashift; + pfd_table[pfd_count].cAccumBits = 4*accum; + pfd_table[pfd_count].cAccumRedBits = accum; + pfd_table[pfd_count].cAccumGreenBits = accum; + pfd_table[pfd_count].cAccumBlueBits = accum; + pfd_table[pfd_count].cAccumAlphaBits = accum; + pfd_table[pfd_count].cDepthBits = depthbits; + pfd_table[pfd_count].cStencilBits = stencilbits; + pfd_table[pfd_count].cAuxBuffers = 0; + pfd_table[pfd_count].iLayerType = 0; + pfd_table[pfd_count].bReserved = 0; + pfd_table[pfd_count].dwLayerMask = 0; + pfd_table[pfd_count].dwVisibleMask = 0; + pfd_table[pfd_count].dwDamageMask = 0; + + pfd_count++; } /* * accounts for accum */ -static void pfdAdd2( +static void pfd_add2( bool doublebuffer, bool gdi, unsigned int accum, int rbits, int gbits, int bbits, int abits, int rshift, int gshift, int bshift, int ashift, int depthbits, int stencilbits) { for (int i = 0; i < 2; i++) - pfdAdd(doublebuffer, gdi, i * accum, rbits, gbits, bbits, abits, rshift, gshift, bshift, ashift, depthbits, stencilbits); + pfd_add(doublebuffer, gdi, i * accum, rbits, gbits, bbits, abits, rshift, gshift, bshift, ashift, depthbits, stencilbits); } -static void pfdInit() +static void pfd_init() { /* * optional doublebuffer @@ -168,7 +168,7 @@ static void pfdInit() for (int i = 0; i < 2; i++) { for (int color = 0; color < 4; color++) for (int depth = 0; depth < 4; depth++) - pfdAdd2(i, false, 16, + pfd_add2(i, false, 16, pfd_colors[color].rbits, pfd_colors[color].gbits, pfd_colors[color].bbits, pfd_colors[color].abits, pfd_colors[color].rshift, pfd_colors[color].gshift, pfd_colors[color].bshift, pfd_colors[color].ashift, pfd_depths[depth].depthbits, pfd_depths[depth].stencilbits); @@ -223,7 +223,7 @@ PROC APIENTRY DrvGetProcAddress(LPCSTR lpszProc) * commented out || (lpszProc[0] == 'w' && lpszProc[1] == 'g' && lpszProc[2] == 'l'), some apps dont like that part */ if ((lpszProc[0] == 'g' && lpszProc[1] == 'l')) - return GetProcAddress(g_hModule, lpszProc); + return GetProcAddress(module_handle, lpszProc); return NULL; } @@ -270,20 +270,20 @@ BOOL APIENTRY DrvSwapBuffers(HDC hdc) .bmiHeader.biYPelsPerMeter = 0 }; - static int Init = 0; - static void *Frame = NULL; + static int init = 0; + static void *framebuffer = NULL; - if (!Init) { - bmi.bmiHeader.biWidth = maxWidth; - bmi.bmiHeader.biHeight = -maxHeight; + if (!init) { + bmi.bmiHeader.biWidth = max_width; + bmi.bmiHeader.biHeight = -max_height; - Frame = glimpl_fb_address(); - Init = 1; + framebuffer = glimpl_fb_address(); + init = 1; } - glimpl_swap_buffers(realWidth, realHeight, do_vflip, GL_BGRA); /* to-do: fix overlay so vflip and -Height won't be needed */ - SetDIBitsToDevice(hdc, 0, 0, realWidth, realHeight, 0, 0, 0, realHeight, Frame, &bmi, DIB_RGB_COLORS); - // StretchDIBits(hdc, 0, 0, realWidth, realHeight, 0, 0, realWidth, realHeight, Frame, &bmi, DIB_RGB_COLORS, SRCCOPY); + glimpl_swap_buffers(real_width, real_height, do_vflip, GL_BGRA); /* to-do: fix overlay so vflip and -Height won't be needed */ + SetDIBitsToDevice(hdc, 0, 0, real_width, real_height, 0, 0, 0, real_height, framebuffer, &bmi, DIB_RGB_COLORS); + // StretchDIBits(hdc, 0, 0, real_width, real_height, 0, 0, real_width, real_height, framebuffer, &bmi, DIB_RGB_COLORS, SRCCOPY); return TRUE; } @@ -303,18 +303,18 @@ BOOL APIENTRY DrvSwapLayerBuffers(HDC hdc, UINT fuPlanes) LONG APIENTRY DrvDescribePixelFormat(HDC hdc, INT iPixelFormat, ULONG cjpfd, PIXELFORMATDESCRIPTOR *ppfd) { - if (!pfdCount) - pfdInit(); + if (!pfd_count) + pfd_init(); --iPixelFormat; - if (iPixelFormat >= pfdCount || iPixelFormat < 0 || cjpfd != sizeof(PIXELFORMATDESCRIPTOR)) - return pfdCount; + if (iPixelFormat >= pfd_count || iPixelFormat < 0 || cjpfd != sizeof(PIXELFORMATDESCRIPTOR)) + return pfd_count; if (ppfd != NULL) - memcpy(ppfd, &pfdTable[iPixelFormat], sizeof(PIXELFORMATDESCRIPTOR)); + memcpy(ppfd, &pfd_table[iPixelFormat], sizeof(PIXELFORMATDESCRIPTOR)); - return pfdCount; + return pfd_count; } BOOL APIENTRY DrvSetPixelFormat(HDC hdc, LONG iPixelFormat) diff --git a/src/client/winmain.c b/src/client/winmain.c index 8090a05..baf175b 100644 --- a/src/client/winmain.c +++ b/src/client/winmain.c @@ -7,14 +7,6 @@ static char env_value[16]; -VOID Main() -{ -#ifdef OVERRIDE_OPENGL32 - WglInit(); -#endif - glimpl_init(); -} - BOOL APIENTRY DllMain(HMODULE module, DWORD reason, LPVOID reserved) { if (reason == DLL_PROCESS_ATTACH) { @@ -36,10 +28,10 @@ BOOL APIENTRY DllMain(HMODULE module, DWORD reason, LPVOID reserved) */ result = GetEnvironmentVariableA("SGL_WINED3D_DONT_VFLIP", env_value, 16); if (strcmp(env_value, "true") == 0) - WinDrvSetVflip(FALSE); - - WinDrvSetModuleAddress(module); - Main(); + windrv_set_vflip(FALSE); + + windrv_set_module_address(module); + glimpl_init(); } if (reason == DLL_PROCESS_DETACH) glimpl_goodbye(); diff --git a/src/network/net.c b/src/network/net.c index 015452d..1045196 100644 --- a/src/network/net.c +++ b/src/network/net.c @@ -68,7 +68,7 @@ struct net_context { #define NET_PROTOCOL_TO_SOCKET(p) (p == NET_UDP ? SOCK_DGRAM : SOCK_STREAM) -char *error_messages[] = { +static char *error_messages[] = { "failed to create socket", "failed to bind to port", "wsa startup failed", @@ -144,7 +144,7 @@ void time_init() { timer_start = t.QuadPart; } -int64_t time_ms() +static int64_t time_ms() { LARGE_INTEGER t; QueryPerformanceCounter(&t); @@ -153,7 +153,7 @@ int64_t time_ms() #else void time_init() {} -int64_t time_ms() +static int64_t time_ms() { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); @@ -172,8 +172,8 @@ char *net_init_server(struct net_context **ctx, int port) * this will only be useful if the server gets windows compatibility */ #ifdef _WIN32 - int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData); - if (iResult != NO_ERROR) + int wsa_result = WSAStartup(MAKEWORD(2, 2), &wsaData); + if (wsa_result != NO_ERROR) return error_messages[ERR_WSA_STARTUP_FAILED]; #endif @@ -225,8 +225,8 @@ char *net_init_client(struct net_context **ctx, char *hostname, int port) nctx->is_server = false; #ifdef _WIN32 - int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData); - if (iResult != NO_ERROR) + int wsa_result = WSAStartup(MAKEWORD(2, 2), &wsaData); + if (wsa_result != NO_ERROR) return error_messages[ERR_WSA_STARTUP_FAILED]; #endif diff --git a/src/server/main.c b/src/server/main.c index 5864d9c..429b70c 100644 --- a/src/server/main.c +++ b/src/server/main.c @@ -21,7 +21,7 @@ static void *shm_ptr; static size_t shm_size; -int *internal_cmd_ptr; +static int *internal_cmd_ptr; static const char *usage = "usage: sglrenderer [-h] [-v] [-o] [-n] [-x] [-g MAJOR.MINOR] [-r WIDTHxHEIGHT] [-m SIZE] [-p PORT]\n" @@ -29,7 +29,7 @@ static const char *usage = "options:\n" " -h display help information\n" " -v display virtual machine arguments\n" - " -o enables fps overlay on clients (shows server side fps)\n" + " -o enables fps overlay on clients\n" " -n enable network server instead of using shared memory\n" " -x remove shared memory file\n" " -g [MAJOR.MINOR] report specific opengl version (default: %d.%d)\n" diff --git a/src/server/processor.c b/src/server/processor.c index b17eb1f..d06ce37 100644 --- a/src/server/processor.c +++ b/src/server/processor.c @@ -93,14 +93,13 @@ static bool wait_for_submit(void *p) return *(int*)(p + SGL_OFFSET_REGISTER_SUBMIT) == 1; } -int scramble_arr[1000]; - /* * used for generating an out-of-order sequence of frames to be uploaded * for the UDP protocol. Otherwise, mostly the upper half of the window * recieves all the updates while the lower half of the window takes some * time to update */ +static int scramble_arr[1000]; static void scramble(int *arr, int n) { for (int i = 0; i < n; i++) diff --git a/src/sgldxumd/README.md b/src/sgldxumd/README.md deleted file mode 100644 index 979544f..0000000 --- a/src/sgldxumd/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# sgldxumd - -> [!WARNING]\ -> This is purely experimental as is not currently fully functional. Initially this was supposed to allow for proper ICD installation, but it appears there is another way installation can be achieved (seemingly undocumented). Thus, this portion of the repository is reserved as a playground and may possibly be used for supporting DirectX in the future without the need for an API conversation layer such as WineD3D. - -This portion of the code base pertains to the DirectX Usermode Driver, which is required for an OpenGL ICD. Resources used for development: -- Mesa (`mesa/src/gallium/frontends/d3d10umd`) -- https://learn.microsoft.com/en-us/windows-hardware/drivers/display/loading-an-opengl-installable-client-driver -- https://learn.microsoft.com/en-us/windows-hardware/drivers/display/user-mode-display-drivers - -Removed from build script: -```cmake -# sgldxumd -IF(WIN32 AND PLSSGLDXUMD) - add_library(sharedgl-dxumd SHARED ${GLOBBED_DXUMD_SOURCES}) - set_target_properties(sharedgl-dxumd PROPERTIES OUTPUT_NAME "sgldxumd") - target_include_directories(sharedgl-dxumd PUBLIC "C:\\Program Files\ (x86)\\Windows\ Kits\\10\\Include\\10.0.19041.0\\um" "C:\\Program Files\ (x86)\\Windows\ Kits\\10\\Include\\10.0.19041.0\\shared") -ENDIF(WIN32 AND PLSSGLDXUMD) -``` \ No newline at end of file diff --git a/src/sgldxumd/adapter.cpp b/src/sgldxumd/adapter.cpp deleted file mode 100644 index 00990ee..0000000 --- a/src/sgldxumd/adapter.cpp +++ /dev/null @@ -1,89 +0,0 @@ -#include -#include - -static int numAdapters = 0; - -static const UINT64 SupportedDDIInterfaceVersions[] = { - D3D10_0_DDI_SUPPORTED, - D3D10_0_x_DDI_SUPPORTED, - D3D10_0_7_DDI_SUPPORTED, - - D3D10_1_DDI_SUPPORTED, - D3D10_1_x_DDI_SUPPORTED, - D3D10_1_7_DDI_SUPPORTED, - - D3D11_0_DDI_SUPPORTED, - D3D11_0_7_DDI_SUPPORTED -}; - -static HRESULT APIENTRY GetSupportedVersions(D3D10DDI_HADAPTER hAdapter, UINT32 *puEntries, UINT64 *pSupportedDDIInterfaceVersions) -{ - if (pSupportedDDIInterfaceVersions && *puEntries < ARRAYSIZE(SupportedDDIInterfaceVersions)) - return E_OUTOFMEMORY; - - *puEntries = ARRAYSIZE(SupportedDDIInterfaceVersions); - - if (pSupportedDDIInterfaceVersions) - memcpy(pSupportedDDIInterfaceVersions, SupportedDDIInterfaceVersions, sizeof(SupportedDDIInterfaceVersions)); - - return S_OK; -} - -static HRESULT APIENTRY GetCaps(D3D10DDI_HADAPTER hAdapter, const D3D10_2DDIARG_GETCAPS *pData) -{ - memset(pData->pData, 0, pData->DataSize); - return S_OK; -} - -static HRESULT APIENTRY CloseAdapter(D3D10DDI_HADAPTER hAdapter) -{ - --numAdapters; - return S_OK; -} - -static SIZE_T APIENTRY CalcPrivateDeviceSize(D3D10DDI_HADAPTER hAdapter, const D3D10DDIARG_CALCPRIVATEDEVICESIZE *pData) -{ - return 4; -} - -static void APIENTRY SetAdapter(D3D10DDIARG_OPENADAPTER *pOpenData) -{ - pOpenData->pAdapterFuncs->pfnCalcPrivateDeviceSize = CalcPrivateDeviceSize; - pOpenData->pAdapterFuncs->pfnCreateDevice = CreateDevice; - pOpenData->pAdapterFuncs->pfnCloseAdapter = CloseAdapter; -} - -EXTERN_C HRESULT APIENTRY OpenAdapter10(D3D10DDIARG_OPENADAPTER *pOpenData) -{ - switch (pOpenData->Interface) { - case D3D10_0_DDI_INTERFACE_VERSION: - case D3D10_0_x_DDI_INTERFACE_VERSION: - case D3D10_0_7_DDI_INTERFACE_VERSION: - case D3D10_1_DDI_INTERFACE_VERSION: - case D3D10_1_x_DDI_INTERFACE_VERSION: - case D3D10_1_7_DDI_INTERFACE_VERSION: - case D3D11_0_DDI_INTERFACE_VERSION: - case D3D11_0_7_DDI_INTERFACE_VERSION: - break; - default: - return E_FAIL; - } - - ++numAdapters; - - SetAdapter(pOpenData); - - return S_OK; -} - -EXTERN_C HRESULT APIENTRY OpenAdapter10_2(D3D10DDIARG_OPENADAPTER *pOpenData) -{ - pOpenData->pAdapterFuncs_2->pfnGetSupportedVersions = GetSupportedVersions; - pOpenData->pAdapterFuncs_2->pfnGetCaps = GetCaps; - - ++numAdapters; - - SetAdapter(pOpenData); - - return S_OK; -} \ No newline at end of file diff --git a/src/sgldxumd/d3dkmt.cpp b/src/sgldxumd/d3dkmt.cpp deleted file mode 100644 index d8a65e4..0000000 --- a/src/sgldxumd/d3dkmt.cpp +++ /dev/null @@ -1,437 +0,0 @@ -#include -#include - -EXTERN_C NTSTATUS APIENTRY D3DKMTCreateDevice(D3DKMT_CREATEDEVICE *pData) -{ - pData->hDevice = 1; - return STATUS_SUCCESS; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTDestroyDevice(CONST D3DKMT_DESTROYDEVICE *pData) -{ - return STATUS_SUCCESS; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCreateContext(D3DKMT_CREATECONTEXT *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTDestroyContext(CONST D3DKMT_DESTROYCONTEXT *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCreateAllocation(D3DKMT_CREATEALLOCATION *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCreateAllocation2(D3DKMT_CREATEALLOCATION *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTQueryResourceInfo(D3DKMT_QUERYRESOURCEINFO *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTOpenResource(D3DKMT_OPENRESOURCE *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTOpenResource2(D3DKMT_OPENRESOURCE *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTDestroyAllocation(CONST D3DKMT_DESTROYALLOCATION *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSetAllocationPriority(CONST D3DKMT_SETALLOCATIONPRIORITY *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTQueryAllocationResidency(CONST D3DKMT_QUERYALLOCATIONRESIDENCY *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCreateSynchronizationObject(D3DKMT_CREATESYNCHRONIZATIONOBJECT *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCreateSynchronizationObject2(D3DKMT_CREATESYNCHRONIZATIONOBJECT2 *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTOpenSynchronizationObject(D3DKMT_OPENSYNCHRONIZATIONOBJECT *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTDestroySynchronizationObject(CONST D3DKMT_DESTROYSYNCHRONIZATIONOBJECT *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTWaitForSynchronizationObject(CONST D3DKMT_WAITFORSYNCHRONIZATIONOBJECT *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTWaitForSynchronizationObject2(CONST D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2 *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSignalSynchronizationObject(CONST D3DKMT_SIGNALSYNCHRONIZATIONOBJECT *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSignalSynchronizationObject2(CONST D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2 *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTLock(D3DKMT_LOCK *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTUnlock(CONST D3DKMT_UNLOCK *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTGetDisplayModeList(D3DKMT_GETDISPLAYMODELIST *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSetDisplayMode(CONST D3DKMT_SETDISPLAYMODE *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTGetMultisampleMethodList(D3DKMT_GETMULTISAMPLEMETHODLIST *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTPresent(D3DKMT_PRESENT *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTRender(D3DKMT_RENDER *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTGetRuntimeData(CONST D3DKMT_GETRUNTIMEDATA *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTQueryAdapterInfo(CONST D3DKMT_QUERYADAPTERINFO *pData) -{ - switch (pData->Type) { - case KMTQAITYPE_UMDRIVERNAME: { - D3DKMT_UMDFILENAMEINFO *pResult = (D3DKMT_UMDFILENAMEINFO*)pData->pPrivateDriverData; - if (pResult->Version != KMTUMDVERSION_DX10 && pResult->Version != KMTUMDVERSION_DX11) - return STATUS_INVALID_PARAMETER; - HMODULE hModule = 0; - BOOL bRet = GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, (LPCTSTR)D3DKMTQueryAdapterInfo, &hModule); - DWORD dwRet = GetModuleFileNameW(hModule, pResult->UmdFileName, MAX_PATH); - return STATUS_SUCCESS; - } - case KMTQAITYPE_UMOPENGLINFO: { - D3DKMT_OPENGLINFO *pResult = (D3DKMT_OPENGLINFO*)pData->pPrivateDriverData; - wcscpy(pResult->UmdOpenGlIcdFileName, L"opengl32.dll"); /* to-do: change opengl name */ - return STATUS_SUCCESS; - } - case KMTQAITYPE_GETSEGMENTSIZE: { - D3DKMT_SEGMENTSIZEINFO *pResult = (D3DKMT_SEGMENTSIZEINFO*)pData->pPrivateDriverData; - pResult->DedicatedVideoMemorySize = 0; - pResult->DedicatedSystemMemorySize = 0; - pResult->SharedSystemMemorySize = 1024ull*1024ull*1024ull; - return STATUS_SUCCESS; - } - case KMTQAITYPE_CHECKDRIVERUPDATESTATUS: - *(BOOL*)pData->pPrivateDriverData = FALSE; - return STATUS_SUCCESS; - case KMTQAITYPE_DRIVERVERSION: - *(D3DKMT_DRIVERVERSION*)pData->pPrivateDriverData = KMT_DRIVERVERSION_WDDM_1_0; - return STATUS_SUCCESS; - case KMTQAITYPE_XBOX: - *(BOOL*)pData->pPrivateDriverData = FALSE; - return STATUS_SUCCESS; - case KMTQAITYPE_PHYSICALADAPTERCOUNT: - *(UINT*)pData->pPrivateDriverData = 1; - return STATUS_SUCCESS; - default: - ZeroMemory(pData->pPrivateDriverData, pData->PrivateDriverDataSize); - return pData->Type == KMTQAITYPE_PHYSICALADAPTERDEVICEIDS ? STATUS_SUCCESS : STATUS_NOT_IMPLEMENTED; - } -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTOpenAdapterFromHdc(D3DKMT_OPENADAPTERFROMHDC *pData) -{ - pData->hAdapter = 1; - pData->AdapterLuid.LowPart = 0; - pData->AdapterLuid.HighPart = 0; - pData->VidPnSourceId = 1; - return STATUS_SUCCESS; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTOpenAdapterFromGdiDisplayName(D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME *pData) -{ - pData->hAdapter = 1; - pData->AdapterLuid.LowPart = 0; - pData->AdapterLuid.HighPart = 0; - pData->VidPnSourceId = 1; - return STATUS_SUCCESS; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTOpenAdapterFromDeviceName(D3DKMT_OPENADAPTERFROMDEVICENAME *pData) -{ - pData->hAdapter = 1; - pData->AdapterLuid.LowPart = 0; - pData->AdapterLuid.HighPart = 0; - return STATUS_SUCCESS; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCloseAdapter(CONST D3DKMT_CLOSEADAPTER *pData) -{ - return STATUS_SUCCESS; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTGetSharedPrimaryHandle(D3DKMT_GETSHAREDPRIMARYHANDLE *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTEscape(CONST D3DKMT_ESCAPE *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSetVidPnSourceOwner(CONST D3DKMT_SETVIDPNSOURCEOWNER *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSetVidPnSourceOwner1(CONST D3DKMT_SETVIDPNSOURCEOWNER1 *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTGetPresentHistory(D3DKMT_GETPRESENTHISTORY *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTGetPresentQueueEvent(D3DKMT_HANDLE hAdapter, HANDLE *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCreateOverlay(D3DKMT_CREATEOVERLAY *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTUpdateOverlay(CONST D3DKMT_UPDATEOVERLAY *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTFlipOverlay(CONST D3DKMT_FLIPOVERLAY *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTDestroyOverlay(CONST D3DKMT_DESTROYOVERLAY *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTWaitForVerticalBlankEvent(CONST D3DKMT_WAITFORVERTICALBLANKEVENT *pData) -{ - return STATUS_SUCCESS; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSetGammaRamp(CONST D3DKMT_SETGAMMARAMP *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTGetDeviceState(D3DKMT_GETDEVICESTATE *pData) -{ - switch (pData->StateType) { - case D3DKMT_DEVICESTATE_EXECUTION: - pData->ExecutionState = D3DKMT_DEVICEEXECUTION_ACTIVE; - return STATUS_SUCCESS; - case D3DKMT_DEVICESTATE_PRESENT: - pData->PresentState.PresentStats.PresentCount = 0; - pData->PresentState.PresentStats.PresentRefreshCount = 0; - pData->PresentState.PresentStats.SyncRefreshCount = 0; - pData->PresentState.PresentStats.SyncQPCTime.QuadPart = 0; - pData->PresentState.PresentStats.SyncGPUTime.QuadPart = 0; - return STATUS_SUCCESS; - case D3DKMT_DEVICESTATE_RESET: - pData->ResetState.Value = 0; - return STATUS_SUCCESS; - default: - return STATUS_INVALID_PARAMETER; - } -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTDestroyDCFromMemory(CONST D3DKMT_DESTROYDCFROMMEMORY *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSetContextSchedulingPriority(CONST D3DKMT_SETCONTEXTSCHEDULINGPRIORITY *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTGetContextSchedulingPriority(D3DKMT_GETCONTEXTSCHEDULINGPRIORITY *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSetProcessSchedulingPriorityClass(HANDLE hProcess, D3DKMT_SCHEDULINGPRIORITYCLASS Priority) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTGetProcessSchedulingPriorityClass(HANDLE hProcess, D3DKMT_SCHEDULINGPRIORITYCLASS *pPriority) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTReleaseProcessVidPnSourceOwners(HANDLE hProcess) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTGetScanLine(D3DKMT_GETSCANLINE *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTChangeSurfacePointer(CONST D3DKMT_CHANGESURFACEPOINTER *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSetQueuedLimit(CONST D3DKMT_SETQUEUEDLIMIT *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTPollDisplayChildren(CONST D3DKMT_POLLDISPLAYCHILDREN *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTInvalidateActiveVidPn(CONST D3DKMT_INVALIDATEACTIVEVIDPN *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCheckOcclusion(CONST D3DKMT_CHECKOCCLUSION *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTWaitForIdle(CONST D3DKMT_WAITFORIDLE *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCheckMonitorPowerState(CONST D3DKMT_CHECKMONITORPOWERSTATE *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C BOOLEAN APIENTRY D3DKMTCheckExclusiveOwnership(VOID) -{ - return FALSE; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCheckVidPnExclusiveOwnership(CONST D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSetDisplayPrivateDriverFormat(CONST D3DKMT_SETDISPLAYPRIVATEDRIVERFORMAT *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSharedPrimaryLockNotification(CONST D3DKMT_SHAREDPRIMARYLOCKNOTIFICATION *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTSharedPrimaryUnLockNotification(CONST D3DKMT_SHAREDPRIMARYUNLOCKNOTIFICATION *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCreateKeyedMutex(D3DKMT_CREATEKEYEDMUTEX *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTOpenKeyedMutex(D3DKMT_OPENKEYEDMUTEX *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTDestroyKeyedMutex(CONST D3DKMT_DESTROYKEYEDMUTEX *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTAcquireKeyedMutex(D3DKMT_ACQUIREKEYEDMUTEX *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTReleaseKeyedMutex(D3DKMT_RELEASEKEYEDMUTEX *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTConfigureSharedResource(CONST D3DKMT_CONFIGURESHAREDRESOURCE *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTGetOverlayState(D3DKMT_GETOVERLAYSTATE *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} - -EXTERN_C NTSTATUS APIENTRY D3DKMTCheckSharedResourceAccess(CONST D3DKMT_CHECKSHAREDRESOURCEACCESS *pData) -{ - return STATUS_NOT_IMPLEMENTED; -} \ No newline at end of file diff --git a/src/sgldxumd/device.cpp b/src/sgldxumd/device.cpp deleted file mode 100644 index b1a3c05..0000000 --- a/src/sgldxumd/device.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include - -static void APIENTRY DestroyDevice(D3D10DDI_HDEVICE hDevice) -{ - /* stub */ -} - -EXTERN_C HRESULT APIENTRY CreateDevice(D3D10DDI_HADAPTER hAdapter, D3D10DDIARG_CREATEDEVICE *pCreateData) -{ - switch (pCreateData->Interface) { - case D3D10_0_DDI_INTERFACE_VERSION: - case D3D10_0_x_DDI_INTERFACE_VERSION: - case D3D10_0_7_DDI_INTERFACE_VERSION: - case D3D10_1_DDI_INTERFACE_VERSION: - case D3D10_1_x_DDI_INTERFACE_VERSION: - case D3D10_1_7_DDI_INTERFACE_VERSION: - case D3D11_0_DDI_INTERFACE_VERSION: - case D3D11_0_7_DDI_INTERFACE_VERSION: - break; - default: - return E_FAIL; - } - - D3D10DDI_DEVICEFUNCS *pDeviceFuncs = pCreateData->pDeviceFuncs; - - /* - * DDI - */ - pDeviceFuncs->pfnDestroyDevice = DestroyDevice; - - /* - * DXGI - */ - - - /* - * https://learn.microsoft.com/en-us/windows-hardware/drivers/display/supporting-the-dxgi-ddi - * - * We must pretend that our library is a software rasterizer as there is currently no km - * driver, as everything is (mostly) handled in usermode. - */ - return DXGI_STATUS_NO_REDIRECTION; -} \ No newline at end of file diff --git a/src/sgldxumd/dxgi.cpp b/src/sgldxumd/dxgi.cpp deleted file mode 100644 index f20f3a8..0000000 --- a/src/sgldxumd/dxgi.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include - diff --git a/src/sgldxumd/main.cpp b/src/sgldxumd/main.cpp deleted file mode 100644 index 9c2ba00..0000000 --- a/src/sgldxumd/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include - -BOOL APIENTRY DllMain(HMODULE module, DWORD reason, LPVOID reserved) -{ - return TRUE; -} \ No newline at end of file