X-Git-Url: https://git.cworth.org/git?p=fips;a=blobdiff_plain;f=test%2Fglx-link-call.c;h=c5f8eb46d25fba4d106b88172b885994f0d8283c;hp=0c5047eb7edc1ebd7789f45bbba401a8cc099824;hb=8fa551a77e6586167ee9ad4d331411aecc36af84;hpb=e3e2309eccbd742a868986e8bef75db48510155d diff --git a/test/glx-link-call.c b/test/glx-link-call.c index 0c5047e..c5f8eb4 100644 --- a/test/glx-link-call.c +++ b/test/glx-link-call.c @@ -32,98 +32,8 @@ #include "util.h" -static void -set_2d_projection (int width, int height) -{ - glMatrixMode (GL_PROJECTION); - glLoadIdentity (); - glOrtho (0, width, height, 0, 0, 1); - glMatrixMode (GL_MODELVIEW); -} - -static void -paint_rgb_using_clear (double r, double g, double b) -{ - glClearColor(r, g, b, 1.0); - glClear(GL_COLOR_BUFFER_BIT); -} - -static void -draw (Display *dpy, Window window, int width, int height) -{ - int i; - int visual_attr[] = { - GLX_RGBA, - GLX_RED_SIZE, 8, - GLX_GREEN_SIZE, 8, - GLX_BLUE_SIZE, 8, - GLX_ALPHA_SIZE, 8, - GLX_DOUBLEBUFFER, - GLX_DEPTH_SIZE, 24, - GLX_STENCIL_SIZE, 8, - GLX_X_VISUAL_TYPE, GLX_DIRECT_COLOR, - None - }; - - /* Window and context setup. */ - XVisualInfo *visual_info = glXChooseVisual(dpy, 0, visual_attr); - GLXContext ctx = glXCreateContext(dpy, visual_info, NULL, True); - glXMakeCurrent(dpy, window, ctx); - - glViewport(0, 0, width, height); - - set_2d_projection (width, height); - -/* Simply count through some colors, frame by frame. */ -#define RGB(frame) (((frame+1)/4) % 2), (((frame+1)/2) % 2), ((frame+1) % 2) - - int frame = 0; - for (i = 0; i < 2; i++) { - /* Frame: Draw a solid (magenta) frame */ - paint_rgb_using_clear (RGB(frame)); - glXSwapBuffers (dpy, window); - frame++; - - /* Frame: Draw a solid (yellow) frame */ - paint_rgb_using_clear (RGB(frame)); - glXSwapBuffers (dpy, window); - frame++; - - /* Frame: Draw a solid (cyan) frame */ - paint_rgb_using_clear (RGB(frame)); - glXSwapBuffers (dpy, window); - frame++; - } - - /* Cleanup */ - glXDestroyContext (dpy, ctx); -} - -static void -handle_events(Display *dpy, Window window) -{ - XEvent xev; - int width = 0; - int height = 0; - - XNextEvent (dpy, &xev); - - while (1) { - XNextEvent (dpy, &xev); - switch (xev.type) { - case ConfigureNotify: - width = xev.xconfigure.width; - height = xev.xconfigure.height; - break; - case Expose: - if (xev.xexpose.count == 0) { - draw (dpy, window, width, height); - return; - } - break; - } - } -} +#define HANDLE_EVENTS_GL_PREFIX +#include "handle-events.c" int main (void)