mirror of
https://github.com/glfw/glfw.git
synced 2024-11-10 00:51:47 +00:00
WGL: Add support for WGL_EXT_colorspace
This commit is contained in:
parent
b234e28d5d
commit
731ff91acd
@ -195,6 +195,7 @@ information on what to include when reporting a bug.
|
|||||||
- [Cocoa] Bugfix: Value range was ignored for joystick hats and buttons (#888)
|
- [Cocoa] Bugfix: Value range was ignored for joystick hats and buttons (#888)
|
||||||
- [Cocoa] Bugfix: Full screen framebuffer was incorrectly sized for some video
|
- [Cocoa] Bugfix: Full screen framebuffer was incorrectly sized for some video
|
||||||
modes (#682)
|
modes (#682)
|
||||||
|
- [WGL] Added support for `WGL_EXT_colorspace` for OpenGL ES contexts
|
||||||
- [EGL] Added support for `EGL_KHR_get_all_proc_addresses` (#871)
|
- [EGL] Added support for `EGL_KHR_get_all_proc_addresses` (#871)
|
||||||
- [EGL] Added support for `EGL_KHR_context_flush_control`
|
- [EGL] Added support for `EGL_KHR_context_flush_control`
|
||||||
- [EGL] Bugfix: The test for `EGL_RGB_BUFFER` was invalid
|
- [EGL] Bugfix: The test for `EGL_RGB_BUFFER` was invalid
|
||||||
|
@ -54,7 +54,9 @@ static int getPixelFormatAttrib(_GLFWwindow* window, int pixelFormat, int attrib
|
|||||||
|
|
||||||
// Return a list of available and usable framebuffer configs
|
// Return a list of available and usable framebuffer configs
|
||||||
//
|
//
|
||||||
static int choosePixelFormat(_GLFWwindow* window, const _GLFWfbconfig* desired)
|
static int choosePixelFormat(_GLFWwindow* window,
|
||||||
|
const _GLFWctxconfig* ctxconfig,
|
||||||
|
const _GLFWfbconfig* fbconfig)
|
||||||
{
|
{
|
||||||
_GLFWfbconfig* usableConfigs;
|
_GLFWfbconfig* usableConfigs;
|
||||||
const _GLFWfbconfig* closest;
|
const _GLFWfbconfig* closest;
|
||||||
@ -127,11 +129,25 @@ static int choosePixelFormat(_GLFWwindow* window, const _GLFWfbconfig* desired)
|
|||||||
if (_glfw.wgl.ARB_multisample)
|
if (_glfw.wgl.ARB_multisample)
|
||||||
u->samples = getPixelFormatAttrib(window, n, WGL_SAMPLES_ARB);
|
u->samples = getPixelFormatAttrib(window, n, WGL_SAMPLES_ARB);
|
||||||
|
|
||||||
if (_glfw.wgl.ARB_framebuffer_sRGB ||
|
if (ctxconfig->client == GLFW_OPENGL_API)
|
||||||
_glfw.wgl.EXT_framebuffer_sRGB)
|
|
||||||
{
|
{
|
||||||
if (getPixelFormatAttrib(window, n, WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB))
|
if (_glfw.wgl.ARB_framebuffer_sRGB ||
|
||||||
u->sRGB = GLFW_TRUE;
|
_glfw.wgl.EXT_framebuffer_sRGB)
|
||||||
|
{
|
||||||
|
if (getPixelFormatAttrib(window, n, WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB))
|
||||||
|
u->sRGB = GLFW_TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_glfw.wgl.EXT_colorspace)
|
||||||
|
{
|
||||||
|
if (getPixelFormatAttrib(window, n, WGL_COLORSPACE_EXT) ==
|
||||||
|
WGL_COLORSPACE_SRGB_EXT)
|
||||||
|
{
|
||||||
|
u->sRGB = GLFW_TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -197,7 +213,7 @@ static int choosePixelFormat(_GLFWwindow* window, const _GLFWfbconfig* desired)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
closest = _glfwChooseFBConfig(desired, usableConfigs, usableCount);
|
closest = _glfwChooseFBConfig(fbconfig, usableConfigs, usableCount);
|
||||||
if (!closest)
|
if (!closest)
|
||||||
{
|
{
|
||||||
_glfwInputError(GLFW_FORMAT_UNAVAILABLE,
|
_glfwInputError(GLFW_FORMAT_UNAVAILABLE,
|
||||||
@ -404,6 +420,8 @@ static void loadWGLExtensions(void)
|
|||||||
extensionSupportedWGL("WGL_ARB_create_context_robustness");
|
extensionSupportedWGL("WGL_ARB_create_context_robustness");
|
||||||
_glfw.wgl.EXT_swap_control =
|
_glfw.wgl.EXT_swap_control =
|
||||||
extensionSupportedWGL("WGL_EXT_swap_control");
|
extensionSupportedWGL("WGL_EXT_swap_control");
|
||||||
|
_glfw.wgl.EXT_colorspace =
|
||||||
|
extensionSupportedWGL("WGL_EXT_colorspace");
|
||||||
_glfw.wgl.ARB_pixel_format =
|
_glfw.wgl.ARB_pixel_format =
|
||||||
extensionSupportedWGL("WGL_ARB_pixel_format");
|
extensionSupportedWGL("WGL_ARB_pixel_format");
|
||||||
_glfw.wgl.ARB_context_flush_control =
|
_glfw.wgl.ARB_context_flush_control =
|
||||||
@ -489,7 +507,7 @@ GLFWbool _glfwCreateContextWGL(_GLFWwindow* window,
|
|||||||
return GLFW_FALSE;
|
return GLFW_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
pixelFormat = choosePixelFormat(window, fbconfig);
|
pixelFormat = choosePixelFormat(window, ctxconfig, fbconfig);
|
||||||
if (!pixelFormat)
|
if (!pixelFormat)
|
||||||
return GLFW_FALSE;
|
return GLFW_FALSE;
|
||||||
|
|
||||||
|
@ -72,6 +72,8 @@
|
|||||||
#define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
|
#define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
|
||||||
#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
|
#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
|
||||||
#define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
|
#define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
|
||||||
|
#define WGL_COLORSPACE_EXT 0x309d
|
||||||
|
#define WGL_COLORSPACE_SRGB_EXT 0x3089
|
||||||
|
|
||||||
#define ERROR_INVALID_VERSION_ARB 0x2095
|
#define ERROR_INVALID_VERSION_ARB 0x2095
|
||||||
#define ERROR_INVALID_PROFILE_ARB 0x2096
|
#define ERROR_INVALID_PROFILE_ARB 0x2096
|
||||||
@ -135,6 +137,7 @@ typedef struct _GLFWlibraryWGL
|
|||||||
PFNWGLGETEXTENSIONSSTRINGARBPROC GetExtensionsStringARB;
|
PFNWGLGETEXTENSIONSSTRINGARBPROC GetExtensionsStringARB;
|
||||||
PFNWGLCREATECONTEXTATTRIBSARBPROC CreateContextAttribsARB;
|
PFNWGLCREATECONTEXTATTRIBSARBPROC CreateContextAttribsARB;
|
||||||
GLFWbool EXT_swap_control;
|
GLFWbool EXT_swap_control;
|
||||||
|
GLFWbool EXT_colorspace;
|
||||||
GLFWbool ARB_multisample;
|
GLFWbool ARB_multisample;
|
||||||
GLFWbool ARB_framebuffer_sRGB;
|
GLFWbool ARB_framebuffer_sRGB;
|
||||||
GLFWbool EXT_framebuffer_sRGB;
|
GLFWbool EXT_framebuffer_sRGB;
|
||||||
|
Loading…
Reference in New Issue
Block a user