|
@@ -34,33 +34,45 @@
|
|
|
#include <stdio.h>
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
+#ifndef GL_ARB_multisample
|
|
|
+ #define GL_SAMPLES_ARB 0x80A9
|
|
|
+#endif
|
|
|
+
|
|
|
+typedef struct
|
|
|
+{
|
|
|
+ int param;
|
|
|
+ char* ext;
|
|
|
+ char* name;
|
|
|
+} ParamGL;
|
|
|
+
|
|
|
typedef struct
|
|
|
{
|
|
|
int param;
|
|
|
char* name;
|
|
|
-} Param;
|
|
|
+} ParamGLFW;
|
|
|
|
|
|
-static Param parameters[] =
|
|
|
+static ParamGL gl_params[] =
|
|
|
+{
|
|
|
+ { GL_RED_BITS, NULL, "red bits" },
|
|
|
+ { GL_GREEN_BITS, NULL, "green bits" },
|
|
|
+ { GL_BLUE_BITS, NULL, "blue bits" },
|
|
|
+ { GL_ALPHA_BITS, NULL, "alpha bits" },
|
|
|
+ { GL_DEPTH_BITS, NULL, "depth bits" },
|
|
|
+ { GL_STENCIL_BITS, NULL, "stencil bits" },
|
|
|
+ { GL_STEREO, NULL, "stereo" },
|
|
|
+ { GL_SAMPLES_ARB, "GL_ARB_multisample", "FSAA samples" },
|
|
|
+ { 0, NULL, NULL }
|
|
|
+};
|
|
|
+
|
|
|
+static ParamGLFW glfw_params[] =
|
|
|
{
|
|
|
- { GLFW_RED_BITS, "red bits" },
|
|
|
- { GLFW_GREEN_BITS, "green bits" },
|
|
|
- { GLFW_BLUE_BITS, "blue bits" },
|
|
|
- { GLFW_ALPHA_BITS, "alpha bits" },
|
|
|
- { GLFW_DEPTH_BITS, "depth bits" },
|
|
|
- { GLFW_STENCIL_BITS, "stencil bits" },
|
|
|
{ GLFW_REFRESH_RATE, "refresh rate" },
|
|
|
- { GLFW_ACCUM_RED_BITS, "accum red bits" },
|
|
|
- { GLFW_ACCUM_GREEN_BITS, "accum green bits" },
|
|
|
- { GLFW_ACCUM_BLUE_BITS, "accum blue bits" },
|
|
|
- { GLFW_ACCUM_ALPHA_BITS, "accum alpha bits" },
|
|
|
- { GLFW_AUX_BUFFERS, "aux buffers" },
|
|
|
- { GLFW_STEREO, "stereo" },
|
|
|
- { GLFW_FSAA_SAMPLES, "FSAA samples" },
|
|
|
{ GLFW_OPENGL_VERSION_MAJOR, "OpenGL major" },
|
|
|
{ GLFW_OPENGL_VERSION_MINOR, "OpenGL minor" },
|
|
|
{ GLFW_OPENGL_FORWARD_COMPAT, "OpenGL forward compatible" },
|
|
|
{ GLFW_OPENGL_DEBUG_CONTEXT, "OpenGL debug context" },
|
|
|
{ GLFW_OPENGL_PROFILE, "OpenGL profile" },
|
|
|
+ { 0, NULL }
|
|
|
};
|
|
|
|
|
|
int main(void)
|
|
@@ -87,11 +99,26 @@ int main(void)
|
|
|
|
|
|
printf("window size: %ix%i\n", width, height);
|
|
|
|
|
|
- for (i = 0; (size_t) i < sizeof(parameters) / sizeof(parameters[0]); i++)
|
|
|
+ for (i = 0; glfw_params[i].name; i++)
|
|
|
{
|
|
|
printf("%s: %i\n",
|
|
|
- parameters[i].name,
|
|
|
- glfwGetWindowParam(window, parameters[i].param));
|
|
|
+ glfw_params[i].name,
|
|
|
+ glfwGetWindowParam(window, glfw_params[i].param));
|
|
|
+ }
|
|
|
+
|
|
|
+ for (i = 0; gl_params[i].name; i++)
|
|
|
+ {
|
|
|
+ GLint value = 0;
|
|
|
+
|
|
|
+ if (gl_params[i].ext)
|
|
|
+ {
|
|
|
+ if (!glfwExtensionSupported(gl_params[i].ext))
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ glGetIntegerv(gl_params[i].param, &value);
|
|
|
+
|
|
|
+ printf("%s: %i\n", gl_params[i].name, value);
|
|
|
}
|
|
|
|
|
|
glfwDestroyWindow(window);
|