diff options
Diffstat (limited to 'examples/pugl_cursor_demo.c')
-rw-r--r-- | examples/pugl_cursor_demo.c | 200 |
1 files changed, 100 insertions, 100 deletions
diff --git a/examples/pugl_cursor_demo.c b/examples/pugl_cursor_demo.c index f20b0ea..60ec3d3 100644 --- a/examples/pugl_cursor_demo.c +++ b/examples/pugl_cursor_demo.c @@ -26,143 +26,143 @@ static const int N_ROWS = 2; static const int N_COLS = 4; typedef struct { - PuglWorld* world; - PuglTestOptions opts; - bool quit; + PuglWorld* world; + PuglTestOptions opts; + bool quit; } PuglTestApp; static void onConfigure(const double width, const double height) { - glEnable(GL_DEPTH_TEST); - glDepthFunc(GL_LESS); - glClearColor(0.2f, 0.2f, 0.2f, 1.0f); + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LESS); + glClearColor(0.2f, 0.2f, 0.2f, 1.0f); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glViewport(0, 0, (int)width, (int)height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glViewport(0, 0, (int)width, (int)height); } static void onExpose(void) { - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glColor3f(0.6f, 0.6f, 0.6f); - - for (int row = 1; row < N_ROWS; ++row) { - const float y = (float)row * (2.0f / (float)N_ROWS) - 1.0f; - glBegin(GL_LINES); - glVertex2f(-1.0f, y); - glVertex2f(1.0f, y); - glEnd(); - } - - for (int col = 1; col < N_COLS; ++col) { - const float x = (float)col * (2.0f / (float)N_COLS) - 1.0f; - glBegin(GL_LINES); - glVertex2f(x, -1.0f); - glVertex2f(x, 1.0f); - glEnd(); - } + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glColor3f(0.6f, 0.6f, 0.6f); + + for (int row = 1; row < N_ROWS; ++row) { + const float y = (float)row * (2.0f / (float)N_ROWS) - 1.0f; + glBegin(GL_LINES); + glVertex2f(-1.0f, y); + glVertex2f(1.0f, y); + glEnd(); + } + + for (int col = 1; col < N_COLS; ++col) { + const float x = (float)col * (2.0f / (float)N_COLS) - 1.0f; + glBegin(GL_LINES); + glVertex2f(x, -1.0f); + glVertex2f(x, 1.0f); + glEnd(); + } } static void onMotion(PuglView* view, double x, double y) { - const PuglRect frame = puglGetFrame(view); - int row = (int)(y * N_ROWS / frame.height); - int col = (int)(x * N_COLS / frame.width); + const PuglRect frame = puglGetFrame(view); + int row = (int)(y * N_ROWS / frame.height); + int col = (int)(x * N_COLS / frame.width); - row = (row < 0) ? 0 : (row >= N_ROWS) ? (N_ROWS - 1) : row; - col = (col < 0) ? 0 : (col >= N_COLS) ? (N_COLS - 1) : col; + row = (row < 0) ? 0 : (row >= N_ROWS) ? (N_ROWS - 1) : row; + col = (col < 0) ? 0 : (col >= N_COLS) ? (N_COLS - 1) : col; - const PuglCursor cursor = (PuglCursor)((row * N_COLS + col) % N_CURSORS); - puglSetCursor(view, cursor); + const PuglCursor cursor = (PuglCursor)((row * N_COLS + col) % N_CURSORS); + puglSetCursor(view, cursor); } static PuglStatus onEvent(PuglView* view, const PuglEvent* event) { - PuglTestApp* app = (PuglTestApp*)puglGetHandle(view); - - printEvent(event, "Event: ", app->opts.verbose); - - switch (event->type) { - case PUGL_CONFIGURE: - onConfigure(event->configure.width, event->configure.height); - break; - case PUGL_KEY_PRESS: - if (event->key.key == 'q' || event->key.key == PUGL_KEY_ESCAPE) { - app->quit = 1; - } - break; - case PUGL_MOTION: - onMotion(view, event->motion.x, event->motion.y); - break; - case PUGL_EXPOSE: - onExpose(); - break; - case PUGL_POINTER_OUT: - puglSetCursor(view, PUGL_CURSOR_ARROW); - break; - case PUGL_CLOSE: - app->quit = 1; - break; - default: - break; - } - - return PUGL_SUCCESS; + PuglTestApp* app = (PuglTestApp*)puglGetHandle(view); + + printEvent(event, "Event: ", app->opts.verbose); + + switch (event->type) { + case PUGL_CONFIGURE: + onConfigure(event->configure.width, event->configure.height); + break; + case PUGL_KEY_PRESS: + if (event->key.key == 'q' || event->key.key == PUGL_KEY_ESCAPE) { + app->quit = 1; + } + break; + case PUGL_MOTION: + onMotion(view, event->motion.x, event->motion.y); + break; + case PUGL_EXPOSE: + onExpose(); + break; + case PUGL_POINTER_OUT: + puglSetCursor(view, PUGL_CURSOR_ARROW); + break; + case PUGL_CLOSE: + app->quit = 1; + break; + default: + break; + } + + return PUGL_SUCCESS; } int main(int argc, char** argv) { - PuglTestApp app = {0}; + PuglTestApp app = {0}; - app.opts = puglParseTestOptions(&argc, &argv); - if (app.opts.help) { - puglPrintTestUsage(argv[0], ""); - return 1; - } + app.opts = puglParseTestOptions(&argc, &argv); + if (app.opts.help) { + puglPrintTestUsage(argv[0], ""); + return 1; + } - app.world = puglNewWorld(PUGL_PROGRAM, 0); + app.world = puglNewWorld(PUGL_PROGRAM, 0); - puglSetWorldHandle(app.world, &app); - puglSetClassName(app.world, "Pugl Test"); + puglSetWorldHandle(app.world, &app); + puglSetClassName(app.world, "Pugl Test"); - PuglView* view = puglNewView(app.world); + PuglView* view = puglNewView(app.world); - puglSetWindowTitle(view, "Pugl Window Demo"); - puglSetDefaultSize(view, 512, 256); - puglSetMinSize(view, 128, 64); - puglSetBackend(view, puglGlBackend()); + puglSetWindowTitle(view, "Pugl Window Demo"); + puglSetDefaultSize(view, 512, 256); + puglSetMinSize(view, 128, 64); + puglSetBackend(view, puglGlBackend()); - puglSetViewHint(view, PUGL_USE_DEBUG_CONTEXT, app.opts.errorChecking); - puglSetViewHint(view, PUGL_RESIZABLE, app.opts.resizable); - puglSetViewHint(view, PUGL_SAMPLES, app.opts.samples); - puglSetViewHint(view, PUGL_DOUBLE_BUFFER, app.opts.doubleBuffer); - puglSetViewHint(view, PUGL_SWAP_INTERVAL, app.opts.sync); - puglSetViewHint(view, PUGL_IGNORE_KEY_REPEAT, app.opts.ignoreKeyRepeat); - puglSetHandle(view, &app); - puglSetEventFunc(view, onEvent); + puglSetViewHint(view, PUGL_USE_DEBUG_CONTEXT, app.opts.errorChecking); + puglSetViewHint(view, PUGL_RESIZABLE, app.opts.resizable); + puglSetViewHint(view, PUGL_SAMPLES, app.opts.samples); + puglSetViewHint(view, PUGL_DOUBLE_BUFFER, app.opts.doubleBuffer); + puglSetViewHint(view, PUGL_SWAP_INTERVAL, app.opts.sync); + puglSetViewHint(view, PUGL_IGNORE_KEY_REPEAT, app.opts.ignoreKeyRepeat); + puglSetHandle(view, &app); + puglSetEventFunc(view, onEvent); - const PuglStatus st = puglRealize(view); - if (st) { - return logError("Failed to create window (%s)\n", puglStrerror(st)); - } + const PuglStatus st = puglRealize(view); + if (st) { + return logError("Failed to create window (%s)\n", puglStrerror(st)); + } - puglShow(view); + puglShow(view); - while (!app.quit) { - puglUpdate(app.world, -1.0); - } + while (!app.quit) { + puglUpdate(app.world, -1.0); + } - puglFreeView(view); - puglFreeWorld(app.world); + puglFreeView(view); + puglFreeWorld(app.world); - return 0; + return 0; } |