1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

fix for opengl borderless mode

This commit is contained in:
FunkyFr3sh 2023-07-07 01:24:16 +02:00
parent 566492577c
commit 045ed051ea
3 changed files with 17 additions and 7 deletions

View File

@ -82,6 +82,7 @@ typedef struct CNCDDRAW
int width;
int height;
int bpp;
int opengl_y_align;
HDC hdc;
int* tex;

View File

@ -704,6 +704,11 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
if (nonexclusive || (g_ddraw->nonexclusive && !g_ddraw->windowed && g_ddraw->renderer == ogl_render_main))
{
g_ddraw->render.height++;
g_ddraw->render.opengl_y_align = 1;
}
else
{
g_ddraw->render.opengl_y_align = 0;
}
if (g_ddraw->windowed)

View File

@ -183,13 +183,13 @@ static void ogl_build_programs()
if (!g_ogl.scale_program &&
(g_ddraw->render.viewport.width != g_ddraw->width ||
g_ddraw->render.viewport.height != g_ddraw->height))
g_ddraw->render.viewport.height != g_ddraw->height))
{
g_ogl.scale_program = oglu_build_program(PASSTHROUGH_VERT_SHADER, CATMULL_ROM_FRAG_SHADER);
if (!g_ogl.scale_program)
{
g_ogl.scale_program =
g_ogl.scale_program =
oglu_build_program(PASSTHROUGH_VERT_SHADER_CORE, CATMULL_ROM_FRAG_SHADER_CORE);
}
@ -616,8 +616,10 @@ static void ogl_render()
BOOL needs_update = FALSE;
glViewport(
g_ddraw->render.viewport.x, g_ddraw->render.viewport.y,
g_ddraw->render.viewport.width, g_ddraw->render.viewport.height);
g_ddraw->render.viewport.x,
g_ddraw->render.viewport.y + g_ddraw->render.opengl_y_align,
g_ddraw->render.viewport.width,
g_ddraw->render.viewport.height);
if (g_ogl.main_program)
{
@ -753,8 +755,10 @@ static void ogl_render()
else if (needs_update)
{
glViewport(
g_ddraw->render.viewport.x, g_ddraw->render.viewport.y,
g_ddraw->render.viewport.width, g_ddraw->render.viewport.height);
g_ddraw->render.viewport.x,
g_ddraw->render.viewport.y + g_ddraw->render.opengl_y_align,
g_ddraw->render.viewport.width,
g_ddraw->render.viewport.height);
needs_update = FALSE;
}
@ -845,7 +849,7 @@ static void ogl_render()
{
glViewport(
g_ddraw->render.viewport.x,
g_ddraw->render.viewport.y,
g_ddraw->render.viewport.y + g_ddraw->render.opengl_y_align,
g_ddraw->render.viewport.width,
g_ddraw->render.viewport.height);
}