Skip to content

Commit

Permalink
removed legacy OpenGL context creation code.
Browse files Browse the repository at this point in the history
This has been obsolete for 20 years and any driver not supporting the modern API needs to be considered broken by default by now.
  • Loading branch information
coelckers committed Jan 6, 2024
1 parent 905cebf commit 934a6d1
Showing 1 changed file with 6 additions and 45 deletions.
51 changes: 6 additions & 45 deletions source/common/platform/win32/win32glvideo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -326,8 +326,7 @@ bool Win32GLVideo::SetupPixelFormat(int multisample)

if (!myWglChoosePixelFormatARB(m_hDC, attributes.data(), attribsFloat, 1, &pixelFormat, &numFormats))
{
Printf("R_OPENGL: Couldn't choose pixel format. Retrying in compatibility mode\n");
goto oldmethod;
I_FatalError("R_OPENGL: Couldn't choose pixel format. Retrying in compatibility mode\n");
}

if (vid_hdr && numFormats == 0) // This card/driver doesn't support the rgb16f pixel format. Fall back to 8bpc
Expand All @@ -343,8 +342,7 @@ bool Win32GLVideo::SetupPixelFormat(int multisample)

if (!myWglChoosePixelFormatARB(m_hDC, attributes.data(), attribsFloat, 1, &pixelFormat, &numFormats))
{
Printf("R_OPENGL: Couldn't choose pixel format. Retrying in compatibility mode\n");
goto oldmethod;
I_FatalError("R_OPENGL: Couldn't choose pixel format.");
}
}
else if (vid_hdr)
Expand All @@ -360,49 +358,13 @@ bool Win32GLVideo::SetupPixelFormat(int multisample)
vr_enable_quadbuffered = false;
goto again;
}
Printf("R_OPENGL: No valid pixel formats found. Retrying in compatibility mode\n");
goto oldmethod;
I_FatalError("R_OPENGL: No valid pixel formats found.");
}
}
else
{
oldmethod:
// If wglChoosePixelFormatARB is not found we have to do it the old fashioned way.
static PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
32, // color depth
0, 0, 0, 0, 0, 0,
0,
0,
0,
0, 0, 0, 0,
32, // z depth
8, // stencil buffer
0,
PFD_MAIN_PLANE,
0,
0, 0, 0
};

pixelFormat = ChoosePixelFormat(m_hDC, &pfd);
DescribePixelFormat(m_hDC, pixelFormat, sizeof(pfd), &pfd);

if (pfd.dwFlags & PFD_GENERIC_FORMAT)
{
I_Error("R_OPENGL: OpenGL driver not accelerated!");
return false;
}
I_FatalError("R_OPENGL: Unable to create an OpenGL render context. Insufficient driver support for context creation\n");
}

if (!::SetPixelFormat(m_hDC, pixelFormat, NULL))
{
I_Error("R_OPENGL: Couldn't set pixel format.\n");
return false;
}
return true;
}

Check warning on line 368 in source/common/platform/win32/win32glvideo.cpp

View workflow job for this annotation

GitHub Actions / Visual Studio 2022 | Release

'Win32GLVideo::SetupPixelFormat': not all control paths return a value [D:\a\Raze\Raze\build\source\raze.vcxproj]

Check warning on line 368 in source/common/platform/win32/win32glvideo.cpp

View workflow job for this annotation

GitHub Actions / Visual Studio 2022 | Debug

'Win32GLVideo::SetupPixelFormat': not all control paths return a value [D:\a\Raze\Raze\build\source\raze.vcxproj]

Check warning on line 368 in source/common/platform/win32/win32glvideo.cpp

View workflow job for this annotation

GitHub Actions / Visual Studio 2019 | Release

'Win32GLVideo::SetupPixelFormat': not all control paths return a value [D:\a\Raze\Raze\build\source\raze.vcxproj]

//==========================================================================
Expand Down Expand Up @@ -452,8 +414,7 @@ bool Win32GLVideo::InitHardware(HWND Window, int multisample)
m_hRC = zd_wglCreateContext(m_hDC);
if (m_hRC == NULL)
{
I_Error("R_OPENGL: Unable to create an OpenGL render context.\n");
return false;
I_FatalError("R_OPENGL: Unable to create an OpenGL render context.\n");
}
}

Expand All @@ -464,7 +425,7 @@ bool Win32GLVideo::InitHardware(HWND Window, int multisample)
}
}
// We get here if the driver doesn't support the modern context creation API which always means an old driver.
I_Error("R_OPENGL: Unable to create an OpenGL render context. Insufficient driver support for context creation\n");
I_FatalError("R_OPENGL: Unable to create an OpenGL render context. Insufficient driver support for context creation\n");
return false;
}

Expand Down

0 comments on commit 934a6d1

Please sign in to comment.