mirror of
https://github.com/gwm17/glfw.git
synced 2024-11-22 18:28:52 -05:00
Made glfwinfo options set hints directly.
This commit is contained in:
parent
ea9c186e36
commit
5f91ea34de
|
@ -197,10 +197,8 @@ static GLboolean valid_version(void)
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
int ch, profile = 0, strategy = 0, behavior = 0;
|
int ch, api, major, minor, revision;
|
||||||
int api = 0, major = 1, minor = 0, revision;
|
GLboolean list = GL_FALSE;
|
||||||
GLboolean debug = GL_FALSE, forward = GL_FALSE, list = GL_FALSE;
|
|
||||||
GLint flags, mask;
|
|
||||||
GLFWwindow* window;
|
GLFWwindow* window;
|
||||||
|
|
||||||
enum { API, BEHAVIOR, DEBUG, FORWARD, HELP, EXTENSIONS,
|
enum { API, BEHAVIOR, DEBUG, FORWARD, HELP, EXTENSIONS,
|
||||||
|
@ -220,6 +218,16 @@ int main(int argc, char** argv)
|
||||||
{ NULL, 0, NULL, 0 }
|
{ NULL, 0, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Initialize GLFW and create window
|
||||||
|
|
||||||
|
if (!valid_version())
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
|
||||||
|
glfwSetErrorCallback(error_callback);
|
||||||
|
|
||||||
|
if (!glfwInit())
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
|
||||||
while ((ch = getopt_long(argc, argv, "a:b:dfhlm:n:p:s:", options, NULL)) != -1)
|
while ((ch = getopt_long(argc, argv, "a:b:dfhlm:n:p:s:", options, NULL)) != -1)
|
||||||
{
|
{
|
||||||
switch (ch)
|
switch (ch)
|
||||||
|
@ -227,9 +235,9 @@ int main(int argc, char** argv)
|
||||||
case 'a':
|
case 'a':
|
||||||
case API:
|
case API:
|
||||||
if (strcasecmp(optarg, API_NAME_OPENGL) == 0)
|
if (strcasecmp(optarg, API_NAME_OPENGL) == 0)
|
||||||
api = GLFW_OPENGL_API;
|
glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_API);
|
||||||
else if (strcasecmp(optarg, API_NAME_OPENGL_ES) == 0)
|
else if (strcasecmp(optarg, API_NAME_OPENGL_ES) == 0)
|
||||||
api = GLFW_OPENGL_ES_API;
|
glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
usage();
|
usage();
|
||||||
|
@ -239,9 +247,15 @@ int main(int argc, char** argv)
|
||||||
case 'b':
|
case 'b':
|
||||||
case BEHAVIOR:
|
case BEHAVIOR:
|
||||||
if (strcasecmp(optarg, BEHAVIOR_NAME_NONE) == 0)
|
if (strcasecmp(optarg, BEHAVIOR_NAME_NONE) == 0)
|
||||||
behavior = GLFW_RELEASE_BEHAVIOR_NONE;
|
{
|
||||||
|
glfwWindowHint(GLFW_CONTEXT_RELEASE_BEHAVIOR,
|
||||||
|
GLFW_RELEASE_BEHAVIOR_NONE);
|
||||||
|
}
|
||||||
else if (strcasecmp(optarg, BEHAVIOR_NAME_FLUSH) == 0)
|
else if (strcasecmp(optarg, BEHAVIOR_NAME_FLUSH) == 0)
|
||||||
behavior = GLFW_RELEASE_BEHAVIOR_FLUSH;
|
{
|
||||||
|
glfwWindowHint(GLFW_CONTEXT_RELEASE_BEHAVIOR,
|
||||||
|
GLFW_RELEASE_BEHAVIOR_FLUSH);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
usage();
|
usage();
|
||||||
|
@ -250,11 +264,11 @@ int main(int argc, char** argv)
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
case DEBUG:
|
case DEBUG:
|
||||||
debug = GL_TRUE;
|
glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE);
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
case FORWARD:
|
case FORWARD:
|
||||||
forward = GL_TRUE;
|
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
case HELP:
|
case HELP:
|
||||||
|
@ -266,18 +280,24 @@ int main(int argc, char** argv)
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
case MAJOR:
|
case MAJOR:
|
||||||
major = atoi(optarg);
|
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, atoi(optarg));
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
case MINOR:
|
case MINOR:
|
||||||
minor = atoi(optarg);
|
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, atoi(optarg));
|
||||||
break;
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
case PROFILE:
|
case PROFILE:
|
||||||
if (strcasecmp(optarg, PROFILE_NAME_CORE) == 0)
|
if (strcasecmp(optarg, PROFILE_NAME_CORE) == 0)
|
||||||
profile = GLFW_OPENGL_CORE_PROFILE;
|
{
|
||||||
|
glfwWindowHint(GLFW_OPENGL_PROFILE,
|
||||||
|
GLFW_OPENGL_CORE_PROFILE);
|
||||||
|
}
|
||||||
else if (strcasecmp(optarg, PROFILE_NAME_COMPAT) == 0)
|
else if (strcasecmp(optarg, PROFILE_NAME_COMPAT) == 0)
|
||||||
profile = GLFW_OPENGL_COMPAT_PROFILE;
|
{
|
||||||
|
glfwWindowHint(GLFW_OPENGL_PROFILE,
|
||||||
|
GLFW_OPENGL_COMPAT_PROFILE);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
usage();
|
usage();
|
||||||
|
@ -287,9 +307,15 @@ int main(int argc, char** argv)
|
||||||
case 's':
|
case 's':
|
||||||
case ROBUSTNESS:
|
case ROBUSTNESS:
|
||||||
if (strcasecmp(optarg, STRATEGY_NAME_NONE) == 0)
|
if (strcasecmp(optarg, STRATEGY_NAME_NONE) == 0)
|
||||||
strategy = GLFW_NO_RESET_NOTIFICATION;
|
{
|
||||||
|
glfwWindowHint(GLFW_CONTEXT_ROBUSTNESS,
|
||||||
|
GLFW_NO_RESET_NOTIFICATION);
|
||||||
|
}
|
||||||
else if (strcasecmp(optarg, STRATEGY_NAME_LOSE) == 0)
|
else if (strcasecmp(optarg, STRATEGY_NAME_LOSE) == 0)
|
||||||
strategy = GLFW_LOSE_CONTEXT_ON_RESET;
|
{
|
||||||
|
glfwWindowHint(GLFW_CONTEXT_ROBUSTNESS,
|
||||||
|
GLFW_LOSE_CONTEXT_ON_RESET);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
usage();
|
usage();
|
||||||
|
@ -302,35 +328,6 @@ int main(int argc, char** argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize GLFW and create window
|
|
||||||
|
|
||||||
if (!valid_version())
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
|
|
||||||
glfwSetErrorCallback(error_callback);
|
|
||||||
|
|
||||||
if (!glfwInit())
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
|
|
||||||
if (major != 1 || minor != 0)
|
|
||||||
{
|
|
||||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, major);
|
|
||||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, minor);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (api)
|
|
||||||
glfwWindowHint(GLFW_CLIENT_API, api);
|
|
||||||
if (debug)
|
|
||||||
glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE);
|
|
||||||
if (forward)
|
|
||||||
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
|
|
||||||
if (profile)
|
|
||||||
glfwWindowHint(GLFW_OPENGL_PROFILE, profile);
|
|
||||||
if (strategy)
|
|
||||||
glfwWindowHint(GLFW_CONTEXT_ROBUSTNESS, strategy);
|
|
||||||
if (behavior)
|
|
||||||
glfwWindowHint(GLFW_CONTEXT_RELEASE_BEHAVIOR, behavior);
|
|
||||||
|
|
||||||
glfwWindowHint(GLFW_VISIBLE, GL_FALSE);
|
glfwWindowHint(GLFW_VISIBLE, GL_FALSE);
|
||||||
|
|
||||||
window = glfwCreateWindow(200, 200, "Version", NULL, NULL);
|
window = glfwCreateWindow(200, 200, "Version", NULL, NULL);
|
||||||
|
@ -363,6 +360,8 @@ int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
if (major >= 3)
|
if (major >= 3)
|
||||||
{
|
{
|
||||||
|
GLint flags;
|
||||||
|
|
||||||
glGetIntegerv(GL_CONTEXT_FLAGS, &flags);
|
glGetIntegerv(GL_CONTEXT_FLAGS, &flags);
|
||||||
printf("%s context flags (0x%08x):", get_api_name(api), flags);
|
printf("%s context flags (0x%08x):", get_api_name(api), flags);
|
||||||
|
|
||||||
|
@ -387,6 +386,7 @@ int main(int argc, char** argv)
|
||||||
|
|
||||||
if (major >= 4 || (major == 3 && minor >= 2))
|
if (major >= 4 || (major == 3 && minor >= 2))
|
||||||
{
|
{
|
||||||
|
GLint mask;
|
||||||
int profile = glfwGetWindowAttrib(window, GLFW_OPENGL_PROFILE);
|
int profile = glfwGetWindowAttrib(window, GLFW_OPENGL_PROFILE);
|
||||||
|
|
||||||
glGetIntegerv(GL_CONTEXT_PROFILE_MASK, &mask);
|
glGetIntegerv(GL_CONTEXT_PROFILE_MASK, &mask);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user