mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-26 02:19:24 +01:00
shader test
This commit is contained in:
parent
10276d1612
commit
0ebd759151
@ -187,6 +187,24 @@ static void ogl_build_programs()
|
|||||||
|
|
||||||
if (g_ogl.main_program)
|
if (g_ogl.main_program)
|
||||||
{
|
{
|
||||||
|
static WIN32_FIND_DATA findFileData;
|
||||||
|
static HANDLE hFind;
|
||||||
|
|
||||||
|
if (!hFind)
|
||||||
|
{
|
||||||
|
hFind = FindFirstFile("Shaders\\*.glsl", &findFileData);
|
||||||
|
}
|
||||||
|
else if (hFind != INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
FindNextFile(hFind, &findFileData);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hFind != INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
strcpy(g_ddraw->shader, "Shaders\\");
|
||||||
|
strcat(g_ddraw->shader, findFileData.cFileName);
|
||||||
|
}
|
||||||
|
|
||||||
g_ogl.scale_program = oglu_build_program_from_file(g_ddraw->shader);
|
g_ogl.scale_program = oglu_build_program_from_file(g_ddraw->shader);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -595,9 +613,17 @@ static void ogl_render()
|
|||||||
while (g_ogl.use_opengl && g_ddraw->render.run &&
|
while (g_ogl.use_opengl && g_ddraw->render.run &&
|
||||||
(g_ddraw->render.minfps < 0 || WaitForSingleObject(g_ddraw->render.sem, timeout) != WAIT_FAILED))
|
(g_ddraw->render.minfps < 0 || WaitForSingleObject(g_ddraw->render.sem, timeout) != WAIT_FAILED))
|
||||||
{
|
{
|
||||||
#if _DEBUG
|
|
||||||
dbg_draw_frame_info_start();
|
dbg_draw_frame_info_start();
|
||||||
#endif
|
|
||||||
|
RECT debugrc = { 0, 0, g_ddraw->width, g_ddraw->height };
|
||||||
|
|
||||||
|
if (g_ddraw->primary)
|
||||||
|
{
|
||||||
|
if (g_ddraw->primary->palette && g_ddraw->primary->palette->data_rgb)
|
||||||
|
SetDIBColorTable(g_ddraw->primary->hdc, 0, 256, g_ddraw->primary->palette->data_rgb);
|
||||||
|
|
||||||
|
DrawText(g_ddraw->primary->hdc, g_ddraw->shader, -1, &debugrc, DT_NOCLIP | DT_RIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
g_ogl.scale_w = (float)g_ddraw->width / g_ogl.surface_tex_width;
|
g_ogl.scale_w = (float)g_ddraw->width / g_ogl.surface_tex_width;
|
||||||
g_ogl.scale_h = (float)g_ddraw->height / g_ogl.surface_tex_height;
|
g_ogl.scale_h = (float)g_ddraw->height / g_ogl.surface_tex_height;
|
||||||
@ -832,9 +858,7 @@ static void ogl_render()
|
|||||||
|
|
||||||
SwapBuffers(g_ddraw->render.hdc);
|
SwapBuffers(g_ddraw->render.hdc);
|
||||||
|
|
||||||
#if _DEBUG
|
|
||||||
dbg_draw_frame_info_end();
|
dbg_draw_frame_info_end();
|
||||||
#endif
|
|
||||||
|
|
||||||
if (g_ddraw->fps_limiter.tick_length > 0)
|
if (g_ddraw->fps_limiter.tick_length > 0)
|
||||||
{
|
{
|
||||||
|
@ -487,6 +487,26 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
|||||||
}
|
}
|
||||||
case WM_KEYDOWN:
|
case WM_KEYDOWN:
|
||||||
{
|
{
|
||||||
|
if (wParam == VK_F11)
|
||||||
|
{
|
||||||
|
if (g_ddraw->render.thread)
|
||||||
|
{
|
||||||
|
EnterCriticalSection(&g_ddraw->cs);
|
||||||
|
g_ddraw->render.run = FALSE;
|
||||||
|
ReleaseSemaphore(g_ddraw->render.sem, 1, NULL);
|
||||||
|
LeaveCriticalSection(&g_ddraw->cs);
|
||||||
|
WaitForSingleObject(g_ddraw->render.thread, INFINITE);
|
||||||
|
|
||||||
|
InterlockedExchange(&g_ddraw->render.palette_updated, TRUE);
|
||||||
|
InterlockedExchange(&g_ddraw->render.surface_updated, TRUE);
|
||||||
|
ReleaseSemaphore(g_ddraw->render.sem, 1, NULL);
|
||||||
|
g_ddraw->render.run = TRUE;
|
||||||
|
g_ddraw->render.thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)g_ddraw->renderer, NULL, 0, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (wParam == VK_CONTROL || wParam == VK_TAB)
|
if (wParam == VK_CONTROL || wParam == VK_TAB)
|
||||||
{
|
{
|
||||||
if (GetAsyncKeyState(VK_CONTROL) & 0x8000 && GetAsyncKeyState(VK_TAB) & 0x8000)
|
if (GetAsyncKeyState(VK_CONTROL) & 0x8000 && GetAsyncKeyState(VK_TAB) & 0x8000)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user