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

shader test

This commit is contained in:
FunkyFr3sh 2020-10-28 22:50:26 +01:00
parent 10276d1612
commit 0ebd759151
2 changed files with 48 additions and 4 deletions

View File

@ -187,6 +187,24 @@ static void ogl_build_programs()
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);
}
else
@ -595,9 +613,17 @@ static void ogl_render()
while (g_ogl.use_opengl && g_ddraw->render.run &&
(g_ddraw->render.minfps < 0 || WaitForSingleObject(g_ddraw->render.sem, timeout) != WAIT_FAILED))
{
#if _DEBUG
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_h = (float)g_ddraw->height / g_ogl.surface_tex_height;
@ -832,9 +858,7 @@ static void ogl_render()
SwapBuffers(g_ddraw->render.hdc);
#if _DEBUG
dbg_draw_frame_info_end();
#endif
if (g_ddraw->fps_limiter.tick_length > 0)
{

View File

@ -487,6 +487,26 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
}
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 (GetAsyncKeyState(VK_CONTROL) & 0x8000 && GetAsyncKeyState(VK_TAB) & 0x8000)