mirror of
https://github.com/glfw/glfw.git
synced 2026-09-22 16:52:57 +00:00
Add GLFW_CONTEXT_RENDERER
This window hint allows choosing between hardware and software renderers (where available) for the created OpenGL or OpenGL ES context. Fixes #589.
This commit is contained in:
+20
-1
@@ -54,6 +54,9 @@
|
||||
#define BEHAVIOR_NAME_NONE "none"
|
||||
#define BEHAVIOR_NAME_FLUSH "flush"
|
||||
|
||||
#define RENDERER_NAME_HW "hw"
|
||||
#define RENDERER_NAME_SW "sw"
|
||||
|
||||
static void usage(void)
|
||||
{
|
||||
printf("Usage: glfwinfo [OPTION]...\n");
|
||||
@@ -68,6 +71,9 @@ static void usage(void)
|
||||
API_NAME_NATIVE " or "
|
||||
API_NAME_EGL " or "
|
||||
API_NAME_OSMESA ")\n");
|
||||
printf(" --renderer=RENDERER the renderer to use ("
|
||||
RENDERER_NAME_HW " or "
|
||||
RENDERER_NAME_SW ")\n");
|
||||
printf(" -d, --debug request a debug context\n");
|
||||
printf(" -f, --forward require a forward-compatible context\n");
|
||||
printf(" -h, --help show this help\n");
|
||||
@@ -365,7 +371,8 @@ int main(int argc, char** argv)
|
||||
GLenum error;
|
||||
GLFWwindow* window;
|
||||
|
||||
enum { CLIENT, CONTEXT, BEHAVIOR, DEBUG, FORWARD, HELP, EXTENSIONS, LAYERS,
|
||||
enum { CLIENT, CONTEXT, RENDERER, BEHAVIOR, DEBUG, FORWARD,
|
||||
HELP, EXTENSIONS, LAYERS,
|
||||
MAJOR, MINOR, PROFILE, ROBUSTNESS, VERSION,
|
||||
REDBITS, GREENBITS, BLUEBITS, ALPHABITS, DEPTHBITS, STENCILBITS,
|
||||
ACCUMREDBITS, ACCUMGREENBITS, ACCUMBLUEBITS, ACCUMALPHABITS,
|
||||
@@ -375,6 +382,7 @@ int main(int argc, char** argv)
|
||||
{ "behavior", 1, NULL, BEHAVIOR },
|
||||
{ "client-api", 1, NULL, CLIENT },
|
||||
{ "context-api", 1, NULL, CONTEXT },
|
||||
{ "renderer", 1, NULL, RENDERER },
|
||||
{ "debug", 0, NULL, DEBUG },
|
||||
{ "forward", 0, NULL, FORWARD },
|
||||
{ "help", 0, NULL, HELP },
|
||||
@@ -464,6 +472,17 @@ int main(int argc, char** argv)
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
break;
|
||||
case RENDERER:
|
||||
if (strcasecmp(optarg, RENDERER_NAME_HW) == 0)
|
||||
glfwWindowHint(GLFW_CONTEXT_RENDERER, GLFW_HARDWARE_RENDERER);
|
||||
else if (strcasecmp(optarg, RENDERER_NAME_SW) == 0)
|
||||
glfwWindowHint(GLFW_CONTEXT_RENDERER, GLFW_SOFTWARE_RENDERER);
|
||||
else
|
||||
{
|
||||
usage();
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
break;
|
||||
case 'd':
|
||||
case DEBUG:
|
||||
glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GLFW_TRUE);
|
||||
|
||||
Reference in New Issue
Block a user