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

OpenGL rgb555 support

This commit is contained in:
andrews05 2023-02-16 16:24:43 -08:00
parent d9d98e0ab1
commit 8cd776abf7
4 changed files with 22 additions and 0 deletions

View File

@ -175,6 +175,7 @@ typedef struct CNCDDRAW
SPEEDLIMITER ticks_limiter;
SPEEDLIMITER flip_limiter;
DWORD gui_thread_id;
BOOL rgb555;
} CNCDDRAW;

View File

@ -55,6 +55,7 @@ void cfg_load()
g_ddraw->max_resolutions = cfg_get_int("max_resolutions", 0);
g_ddraw->limit_bltfast = cfg_get_bool("limit_bltfast", FALSE);
g_ddraw->opengl_core = cfg_get_bool("opengl_core", FALSE);
g_ddraw->rgb555 = cfg_get_bool("rgb555", FALSE);
cfg_get_string("screenshotdir", ".\\Screenshots\\", g_ddraw->screenshot_dir, sizeof(g_ddraw->screenshot_dir));
if (g_ddraw->locktopleft)
@ -376,6 +377,7 @@ static void cfg_create_ini()
"flipclear=false\n"
"fixmousehook=false\n"
"bpp=0\n"
"rgb555=false\n"
"\n"
"\n"
"\n"

View File

@ -1374,6 +1374,12 @@ HRESULT dd_CreateSurface(
dst_surface->bmi->bmiColors[i].rgbReserved = 0;
}
}
else if (dst_surface->bpp == 16 && g_ddraw->rgb555)
{
((DWORD*)dst_surface->bmi->bmiColors)[0] = 0x7C00;
((DWORD*)dst_surface->bmi->bmiColors)[1] = 0x03E0;
((DWORD*)dst_surface->bmi->bmiColors)[2] = 0x001F;
}
else if (dst_surface->bpp == 16)
{
((DWORD*)dst_surface->bmi->bmiColors)[0] = 0xF800;

View File

@ -245,6 +245,19 @@ static void ogl_create_textures(int width, int height)
g_ogl.surface_type = GL_UNSIGNED_BYTE,
0);
}
else if (g_ddraw->bpp == 16 && g_ddraw->rgb555)
{
glTexImage2D(
GL_TEXTURE_2D,
0,
GL_RGB5_A1,
g_ogl.surface_tex_width,
g_ogl.surface_tex_height,
0,
g_ogl.surface_format = GL_BGRA,
g_ogl.surface_type = GL_UNSIGNED_SHORT_1_5_5_5_REV,
0);
}
else if (g_ddraw->bpp == 16)
{
glTexImage2D(