mirror of https://github.com/doitsujin/dxvk
Merge c611baac8c
into ea4cb84d8a
This commit is contained in:
commit
d0a21530ad
|
@ -6,6 +6,8 @@
|
||||||
#include "wsi/native_sdl2.h"
|
#include "wsi/native_sdl2.h"
|
||||||
#elif DXVK_WSI_GLFW
|
#elif DXVK_WSI_GLFW
|
||||||
#include "wsi/native_glfw.h"
|
#include "wsi/native_glfw.h"
|
||||||
|
#elif DXVK_WSI_NONE
|
||||||
|
//empty
|
||||||
#else
|
#else
|
||||||
#error Unknown wsi!
|
#error Unknown wsi!
|
||||||
#endif
|
#endif
|
|
@ -136,6 +136,8 @@ else
|
||||||
elif dxvk_wsi == 'glfw'
|
elif dxvk_wsi == 'glfw'
|
||||||
lib_glfw = cpp.find_library('glfw')
|
lib_glfw = cpp.find_library('glfw')
|
||||||
compiler_args += ['-DDXVK_WSI_GLFW']
|
compiler_args += ['-DDXVK_WSI_GLFW']
|
||||||
|
elif dxvk_wsi == 'none'
|
||||||
|
compiler_args += ['-DDXVK_WSI_NONE']
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dxvk_name_prefix = 'libdxvk_'
|
dxvk_name_prefix = 'libdxvk_'
|
||||||
|
|
|
@ -129,6 +129,10 @@ elif dxvk_wsi == 'glfw'
|
||||||
dxvk_src += [
|
dxvk_src += [
|
||||||
'platform/dxvk_glfw_exts.cpp'
|
'platform/dxvk_glfw_exts.cpp'
|
||||||
]
|
]
|
||||||
|
elif dxvk_wsi == 'none'
|
||||||
|
dxvk_src += [
|
||||||
|
'platform/dxvk_none_exts.cpp'
|
||||||
|
]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dxvk_extra_deps = [ dependency('threads') ]
|
dxvk_extra_deps = [ dependency('threads') ]
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
#include "../dxvk_platform_exts.h"
|
||||||
|
|
||||||
|
namespace dxvk {
|
||||||
|
|
||||||
|
DxvkPlatformExts DxvkPlatformExts::s_instance;
|
||||||
|
|
||||||
|
std::string_view DxvkPlatformExts::getName() {
|
||||||
|
return "No WSI";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DxvkNameSet DxvkPlatformExts::getInstanceExtensions() {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DxvkNameSet DxvkPlatformExts::getDeviceExtensions(
|
||||||
|
uint32_t adapterId) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DxvkPlatformExts::initInstanceExtensions() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DxvkPlatformExts::initDeviceExtensions(
|
||||||
|
const DxvkInstance* instance) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -17,6 +17,12 @@ wsi_glfw_src = [
|
||||||
'glfw/wsi_window_glfw.cpp',
|
'glfw/wsi_window_glfw.cpp',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
wsi_none_src = [
|
||||||
|
'none/wsi_monitor_none.cpp',
|
||||||
|
'none/wsi_window_none.cpp',
|
||||||
|
'none/wsi_edid_none.cpp',
|
||||||
|
]
|
||||||
|
|
||||||
if dxvk_wsi == 'win32'
|
if dxvk_wsi == 'win32'
|
||||||
wsi_src = wsi_common_src + wsi_win32_src
|
wsi_src = wsi_common_src + wsi_win32_src
|
||||||
wsi_deps = [ dep_displayinfo ]
|
wsi_deps = [ dep_displayinfo ]
|
||||||
|
@ -26,6 +32,9 @@ elif dxvk_wsi == 'sdl2'
|
||||||
elif dxvk_wsi == 'glfw'
|
elif dxvk_wsi == 'glfw'
|
||||||
wsi_src = wsi_common_src + wsi_glfw_src
|
wsi_src = wsi_common_src + wsi_glfw_src
|
||||||
wsi_deps = [ dep_displayinfo, lib_glfw ]
|
wsi_deps = [ dep_displayinfo, lib_glfw ]
|
||||||
|
elif dxvk_wsi == 'none'
|
||||||
|
wsi_src = wsi_none_src
|
||||||
|
wsi_deps = []
|
||||||
else
|
else
|
||||||
error('Unknown wsi')
|
error('Unknown wsi')
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
#include "wsi_edid.h"
|
||||||
|
|
||||||
|
namespace dxvk::wsi {
|
||||||
|
|
||||||
|
std::optional<WsiDisplayMetadata> parseColorimetryInfo(
|
||||||
|
const WsiEdidData& edidData) {
|
||||||
|
return std::nullopt;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
#include "../wsi_monitor.h"
|
||||||
|
|
||||||
|
#include "wsi/native_wsi.h"
|
||||||
|
#include "wsi_platform_none.h"
|
||||||
|
|
||||||
|
#include "../../util/util_string.h"
|
||||||
|
#include "../../util/log/log.h"
|
||||||
|
|
||||||
|
namespace dxvk::wsi {
|
||||||
|
|
||||||
|
HMONITOR getDefaultMonitor() {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HMONITOR enumMonitors(uint32_t index) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HMONITOR enumMonitors(const LUID *adapterLUID[], uint32_t numLUIDs, uint32_t index) {
|
||||||
|
return enumMonitors(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool getDisplayName(
|
||||||
|
HMONITOR hMonitor,
|
||||||
|
WCHAR (&Name)[32]) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool getDesktopCoordinates(
|
||||||
|
HMONITOR hMonitor,
|
||||||
|
RECT* pRect) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool getDisplayMode(
|
||||||
|
HMONITOR hMonitor,
|
||||||
|
uint32_t ModeNumber,
|
||||||
|
WsiMode* pMode) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool getCurrentDisplayMode(
|
||||||
|
HMONITOR hMonitor,
|
||||||
|
WsiMode* pMode) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool getDesktopDisplayMode(
|
||||||
|
HMONITOR hMonitor,
|
||||||
|
WsiMode* pMode) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<uint8_t> getMonitorEdid(HMONITOR hMonitor) {
|
||||||
|
Logger::err("getMonitorEdid not implemented on this platform.");
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "../wsi_monitor.h"
|
||||||
|
|
||||||
|
namespace dxvk::wsi {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Impl-dependent state
|
||||||
|
*/
|
||||||
|
struct DxvkWindowState {
|
||||||
|
};
|
||||||
|
|
||||||
|
inline bool isDisplayValid(int32_t displayId) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,91 @@
|
||||||
|
#include "../wsi_window.h"
|
||||||
|
|
||||||
|
#include "native/wsi/native_wsi.h"
|
||||||
|
#include "wsi_platform_none.h"
|
||||||
|
|
||||||
|
#include "../../util/util_string.h"
|
||||||
|
#include "../../util/log/log.h"
|
||||||
|
|
||||||
|
namespace dxvk::wsi {
|
||||||
|
|
||||||
|
void getWindowSize(
|
||||||
|
HWND hWindow,
|
||||||
|
uint32_t* pWidth,
|
||||||
|
uint32_t* pHeight) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void resizeWindow(
|
||||||
|
HWND hWindow,
|
||||||
|
DxvkWindowState* pState,
|
||||||
|
uint32_t Width,
|
||||||
|
uint32_t Height) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool setWindowMode(
|
||||||
|
HMONITOR hMonitor,
|
||||||
|
HWND hWindow,
|
||||||
|
const WsiMode& pMode) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
bool enterFullscreenMode(
|
||||||
|
HMONITOR hMonitor,
|
||||||
|
HWND hWindow,
|
||||||
|
DxvkWindowState* pState,
|
||||||
|
bool ModeSwitch) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool leaveFullscreenMode(
|
||||||
|
HWND hWindow,
|
||||||
|
DxvkWindowState* pState,
|
||||||
|
bool restoreCoordinates) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool restoreDisplayMode() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HMONITOR getWindowMonitor(HWND hWindow) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool isWindow(HWND hWindow) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void updateFullscreenWindow(
|
||||||
|
HMONITOR hMonitor,
|
||||||
|
HWND hWindow,
|
||||||
|
bool forceTopmost) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VkResult createSurface(
|
||||||
|
HWND hWindow,
|
||||||
|
PFN_vkGetInstanceProcAddr pfnVkGetInstanceProcAddr,
|
||||||
|
VkInstance instance,
|
||||||
|
VkSurfaceKHR* pSurface) {
|
||||||
|
auto pfnVkCreateHeadlessSurfaceEXT = reinterpret_cast<PFN_vkCreateHeadlessSurfaceEXT>(
|
||||||
|
pfnVkGetInstanceProcAddr(instance, "vkCreateHeadlessSurfaceEXT"));
|
||||||
|
|
||||||
|
if (!pfnVkCreateHeadlessSurfaceEXT)
|
||||||
|
return VK_ERROR_FEATURE_NOT_PRESENT;
|
||||||
|
|
||||||
|
VkHeadlessSurfaceCreateInfoEXT info = { VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT };
|
||||||
|
info.pNext = nullptr;
|
||||||
|
info.flags = 0;
|
||||||
|
return pfnVkCreateHeadlessSurfaceEXT(instance, &info, nullptr, pSurface);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -6,4 +6,6 @@
|
||||||
#include "sdl2/wsi_platform_sdl2.h"
|
#include "sdl2/wsi_platform_sdl2.h"
|
||||||
#elif defined(DXVK_WSI_GLFW)
|
#elif defined(DXVK_WSI_GLFW)
|
||||||
#include "glfw/wsi_platform_glfw.h"
|
#include "glfw/wsi_platform_glfw.h"
|
||||||
|
#elif defined(DXVK_WSI_NONE)
|
||||||
|
#include "none/wsi_platform_none.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue