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

move wglSwapIntervalEXT to opengl.c

This commit is contained in:
FunkyFr3sh 2018-05-23 02:03:45 +02:00
parent 5ed60e662e
commit 90758a08c8
3 changed files with 16 additions and 5 deletions

View File

@ -8,6 +8,8 @@ BOOL OpenGL_ExtExists(char *ext);
GLuint OpenGL_BuildProgram(const GLchar *vertSource, const GLchar *fragSource);
GLuint OpenGL_BuildProgramFromFile(const char *filePath);
typedef void (APIENTRYP PFNWGLSWAPINTERVALEXT) (int interval);
// Program
extern PFNGLCREATEPROGRAMPROC glCreateProgram;
extern PFNGLDELETEPROGRAMPROC glDeleteProgram;
@ -66,3 +68,5 @@ extern PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
extern PFNGLDRAWBUFFERSPROC glDrawBuffers;
extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
extern PFNWGLSWAPINTERVALEXT wglSwapIntervalEXT;

View File

@ -62,6 +62,8 @@ PFNGLDRAWBUFFERSPROC glDrawBuffers = NULL;
PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus = NULL;
PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers = NULL;
PFNWGLSWAPINTERVALEXT wglSwapIntervalEXT = NULL;
void OpenGL_Init()
{
// Program
@ -120,6 +122,8 @@ void OpenGL_Init()
glDrawBuffers = (PFNGLDRAWBUFFERSPROC)wglGetProcAddress("glDrawBuffers");
glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)wglGetProcAddress("glCheckFramebufferStatus");
glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)wglGetProcAddress("glDeleteFramebuffers");
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXT)wglGetProcAddress("wglSwapIntervalEXT");
}
BOOL OpenGL_ExtExists(char *ext)

View File

@ -49,7 +49,6 @@ DWORD WINAPI render_main(void)
if (OpenGL_ExtExists("WGL_EXT_swap_control"))
{
BOOL(APIENTRY *wglSwapIntervalEXT)(int) = (BOOL(APIENTRY *)(int))wglGetProcAddress("wglSwapIntervalEXT");
if (wglSwapIntervalEXT)
{
if (ddraw->vsync)
@ -532,15 +531,19 @@ DWORD WINAPI render_main(void)
}
}
if (scaleProgram && paletteConvProgram)
if (paletteConvProgram)
{
// draw surface into framebuffer
glUseProgram(paletteConvProgram);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, surfaceTexId);
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, paletteTexId);
glActiveTexture(GL_TEXTURE0);
}
if (scaleProgram && paletteConvProgram)
{
// draw surface into framebuffer
glUseProgram(paletteConvProgram);
glViewport(0, 0, ddraw->width, ddraw->height);