Simplified r_twinMode usage.
This commit is contained in:
@@ -494,9 +494,7 @@ static HWND create_twin_window(int width, int height, RenderApi render_api)
|
||||
cvar_t* vid_ypos = ri.Cvar_Get ("vid_ypos", "", 0);
|
||||
int x, y;
|
||||
|
||||
bool show_three_windows = (r_twinMode->integer | (1 << get_render_api())) == 7;
|
||||
|
||||
if (!show_three_windows) { // two windows
|
||||
if (r_twinMode->integer == 1) { // two windows
|
||||
x = vid_xpos->integer + width + 5; // offset to the right of the main window
|
||||
y = vid_ypos->integer;
|
||||
} else { // three windows
|
||||
|
||||
@@ -211,7 +211,10 @@ static void InitRenderAPI( void )
|
||||
#endif
|
||||
|
||||
// OpenGL
|
||||
if (get_render_api() == RENDER_API_GL || (r_twinMode->integer&1)) {
|
||||
if (get_render_api() == RENDER_API_GL ||
|
||||
r_twinMode->integer == 1 && get_render_api() == RENDER_API_DX ||
|
||||
r_twinMode->integer == 2)
|
||||
{
|
||||
GLimp_Init();
|
||||
|
||||
GLint temp;
|
||||
@@ -222,14 +225,20 @@ static void InitRenderAPI( void )
|
||||
}
|
||||
|
||||
// VULKAN
|
||||
if (get_render_api() == RENDER_API_VK || (r_twinMode->integer&2)) {
|
||||
if (get_render_api() == RENDER_API_VK ||
|
||||
r_twinMode->integer == 1 && get_render_api() == RENDER_API_GL ||
|
||||
r_twinMode->integer == 2)
|
||||
{
|
||||
vk_imp_init();
|
||||
vk_initialize();
|
||||
}
|
||||
|
||||
// DX12
|
||||
#ifndef DISABLE_DX12
|
||||
if (get_render_api() == RENDER_API_DX || (r_twinMode->integer&4)) {
|
||||
if (get_render_api() == RENDER_API_DX ||
|
||||
r_twinMode->integer == 1 && get_render_api() == RENDER_API_VK ||
|
||||
r_twinMode->integer == 2)
|
||||
{
|
||||
dx_imp_init();
|
||||
dx_initialize();
|
||||
}
|
||||
|
||||
@@ -958,14 +958,12 @@ RenderApi get_render_api();
|
||||
//
|
||||
extern cvar_t *r_renderAPI; // 3D API to use: 0 - OpenGL, 1 - Vulkan, 2 - DX12
|
||||
|
||||
extern cvar_t *r_twinMode; // Allows to render the same frame in different windows using different graphics APIs.
|
||||
// This cvar specifies a bitmask that determines which APIs.
|
||||
// 0 - regular rendering with single window using the graphics API specified by r_renderAPI.
|
||||
// bit 0 - enables OpenGL backend
|
||||
// bit 1 - enables Vulkan backend
|
||||
// bit 2 - enables DX12 backend
|
||||
// Combinations of the above values are allowed, for example, r_twinMode=7 creates three diffent
|
||||
// windows using all the supported APIs.
|
||||
extern cvar_t *r_twinMode; // Debug feature to compare rendering output between OpenGL/Vulkan/DX12 APIs.
|
||||
// Possible values:
|
||||
// r_twinMode=1 : one additional window is created. If the main window uses graphics API
|
||||
// defined by r_renderAPI then the additional window will use graphics API with index (r_renderAPI+1)%3
|
||||
//
|
||||
// r_twinMode=2 : two additional windows are created and all 3 graphics APIs are active simultaneously.
|
||||
|
||||
extern cvar_t *r_railWidth;
|
||||
extern cvar_t *r_railCoreWidth;
|
||||
|
||||
Reference in New Issue
Block a user