static void testcase2(const char *desc) { int err; ggi_visual_t vis; ggi_mode mode; printteststart(__FILE__, __PRETTY_FUNCTION__, EXPECTED2PASS, desc); if (dontrun) return; err = ggiInit(); printassert(err == GGI_OK, "ggiInit failed with %i\n", err); vis = ggiOpen(NULL); printassert(vis != NULL, "ggiOpen() failed\n"); err = ggiCheckSimpleMode(vis, GGI_AUTO, GGI_AUTO, GGI_AUTO, GT_AUTO, &mode); err = ggiSetMode(vis, &mode); if (err != GGI_OK) { printfailure("ggiSetMode: expected return value: GGI_OK\n" "actual return value: %i\n", err); return; } ggiClose(vis); ggiExit(); printsuccess(); return; }
int main(int argc, char *argv[]) { int i; long binit, a_binit; long prev, curr; long aprev, acurr; fill_info(); binit = get_size(); a_binit = _get_ggi_alloced(); if (ggiInit() != 0) err("first ggiInit() failed!\n"); prev = get_size(); aprev = _get_ggi_alloced(); for (i=2; i <= 80; i++) { putchar('.'); fflush(stdout); ggiExit(); if (ggiInit() != 0) err("ggiInit() number %d failed\n", i); } curr = get_size(); acurr = _get_ggi_alloced(); inform_mem("\nggiInit()\n", prev, curr, aprev, acurr); if ((vis = ggiOpen(NULL)) == NULL) err("first ggiOpen() failed!\n"); prev = get_size(); aprev = _get_ggi_alloced(); for (i=2; i < 20; i++) { putchar('.'); fflush(stdout); ggiClose(vis); if ((vis = ggiOpen(NULL)) == NULL) err("ggiOpen() number %d failed\n", i); } curr = get_size(); acurr = _get_ggi_alloced(); inform_mem("\nggiOpen()\n", prev, curr, aprev, acurr); prev = get_size(); aprev = _get_ggi_alloced(); for (i=2; i < 20; i++) { putchar('.'); fflush(stdout); ggiCheckSimpleMode(vis, GGI_AUTO, GGI_AUTO, GGI_AUTO, GT_AUTO, NULL); } curr = get_size(); acurr = _get_ggi_alloced(); inform_mem("\nggiCheckSimpleMode()\n", prev, curr, aprev, acurr); ggiSetFlags(vis, GGIFLAG_ASYNC); if (ggiSetSimpleMode(vis, GGI_AUTO, GGI_AUTO, GGI_AUTO, GT_AUTO) != 0) { err("Unable to set default mode!\n"); } prev = get_size(); aprev = _get_ggi_alloced(); for (i=2; i < 20; i++) { putchar('.'); fflush(stdout); if (ggiSetSimpleMode(vis, GGI_AUTO, GGI_AUTO, GGI_AUTO, GT_AUTO) != 0) { err("Unable to set default mode %d!\n", i); } } curr = get_size(); acurr = _get_ggi_alloced(); inform_mem("\nggiSetSimpleMode()\n", prev, curr, aprev, acurr); ggiExit(); curr = get_size(); acurr = _get_ggi_alloced(); inform_mem("\nggiExit()\n", binit, curr, a_binit, acurr); return 0; }
static void testcase1(const char *desc) { int err; ggi_visual_t vis; ggi_mode mode; printteststart(__FILE__, __PRETTY_FUNCTION__, EXPECTED2PASS, desc); if (dontrun) return; err = ggiInit(); printassert(err == GGI_OK, "ggiInit failed with %i\n", err); vis = ggiOpen(NULL); printassert(vis != NULL, "ggiOpen() failed\n"); err = ggiCheckSimpleMode(vis, GGI_AUTO, GGI_AUTO, GGI_AUTO, GT_AUTO, &mode); if (err == GGI_OK) { if (mode.visible.x == GGI_AUTO) { printfailure("visible.x: expected return value: != GGI_AUTO\n" "actual return value: GGI_AUTO\n"); return; } if (mode.visible.y == GGI_AUTO) { printfailure("visible.y: expected return value: != GGI_AUTO\n" "actual return value: GGI_AUTO\n"); return; } if (mode.virt.x == GGI_AUTO) { printfailure("virt.x: expected return value: != GGI_AUTO\n" "actual return value: GGI_AUTO\n"); return; } if (mode.virt.y == GGI_AUTO) { printfailure("virt.y: expected return value: != GGI_AUTO\n" "actual return value: GGI_AUTO\n"); return; } if (mode.size.x == GGI_AUTO) { printfailure("size.x: expected return value: != GGI_AUTO\n" "actual return value: GGI_AUTO\n"); return; } if (mode.size.y == GGI_AUTO) { printfailure("size.y: expected return value: != GGI_AUTO\n" "actual return value: GGI_AUTO\n"); return; } if (mode.frames == GGI_AUTO) { printfailure("frames: expected return value: != GGI_AUTO\n" "actual return value: GGI_AUTO\n"); return; } if (mode.graphtype == GT_AUTO) { printfailure("graphtype: expected return value: != GT_AUTO\n" "actual return value: GT_AUTO\n"); return; } } ggiClose(vis); ggiExit(); printsuccess(); return; }
static void testcase4(const char *desc) { int err; ggi_visual_t vis; ggi_mode mode; ggi_coord size; printteststart(__FILE__, __PRETTY_FUNCTION__, EXPECTED2PASS, desc); if (dontrun) return; err = ggiInit(); printassert(err == GGI_OK, "ggiInit failed with %i\n", err); vis = ggiOpen(NULL); printassert(vis != NULL, "ggiOpen() failed\n"); err = ggiCheckSimpleMode( vis, GGI_AUTO, GGI_AUTO, GGI_AUTO, GT_AUTO, &mode); printassert(err == GGI_OK, "ggiCheckSimpleMode: can't find a mode\n"); if(err != GGI_OK) { ggiClose(vis); ggiExit(); printsuccess(); return; } printassert(mode.size.x != GGI_AUTO && mode.size.y != GGI_AUTO, "physical size is apparently not supported\n"); if(mode.size.x == GGI_AUTO || mode.size.y == GGI_AUTO) { ggiClose(vis); ggiExit(); printsuccess(); return; } /* Clear out all but the physical size */ mode.frames = GGI_AUTO; mode.visible.x = GGI_AUTO; mode.visible.y = GGI_AUTO; mode.virt.x = GGI_AUTO; mode.virt.y = GGI_AUTO; mode.graphtype = GT_AUTO; mode.dpp.x = GGI_AUTO; mode.dpp.y = GGI_AUTO; size = mode.size; /* This mode should be there */ err = ggiCheckMode(vis, &mode); ggiClose(vis); ggiExit(); if (err != GGI_OK) { printfailure("ggiCheckMode: expected return value: GGI_OK\n" "actual return value: %i\n", err); return; } if (mode.size.x != size.x) { printfailure( "ggiCheckMode: size.x: expected return value: %i\n" "actual return value: %i\n", size.x, mode.size.x); return; } if (mode.size.y != size.y) { printfailure( "ggiCheckMode: size.y: expected return value: %i\n" "actual return value: %i\n", size.y, mode.size.y); return; } printsuccess(); }
/* Set the default mode and do all the work. We might want to split * that later ... */ static int setup_mode(void) { int i; ggi_color col; const ggi_directbuffer *buf; ggi_mode gmode; if ((visual=ggNewStem(NULL)) == NULL) { fprintf(stderr, "unable to create stem, exiting.\n"); return -1; } if (ggiAttach(visual) < 0) { fprintf(stderr, "unable to attach ggi api, exiting.\n"); return -1; } if (ggiOpen(visual, NULL) < 0) { fprintf(stderr, "unable to open default visual, exiting.\n"); return -1; } ggiCheckSimpleMode(visual, GGI_AUTO, GGI_AUTO, GGI_AUTO, GT_AUTO, &gmode); if (ggiSetMode(visual, &gmode) == 0) { printf("Graph mode %dx%d (%dx%d virt)\n", gmode.visible.x, gmode.visible.y, gmode.virt.x, gmode.virt.y); } else { fprintf(stderr, "Unable to set any mode at all!\n"); ggiClose(visual); return -1; } col.r = 0xFFFF; col.g = 0xFFFF; col.b = 0xFFFF; printf("white = 0x%"PRIx32"\n", ggiMapColor(visual, &col)); col.r = 0x0000; col.g = 0x0000; col.b = 0x0000; printf("black = 0x%"PRIx32"\n", ggiMapColor(visual, &col)); printf("Pixelformat for Get/Put buffers:\n"); print_pixfmt(ggiGetPixelFormat(visual)); for (i = 0; ; i++) { int acquired = 0; buf = ggiDBGetBuffer(visual, i); if (buf == NULL) break; printf("DirectBuffer (frame #%d):\n", buf->frame); if (ggiResourceMustAcquire(buf->resource)) { switch (db_doacquire(buf)) { case 2: printf("Acquired DirectBuffer read/write\n"); acquired = 1; break; case 1: printf("Acquired DirectBuffer for writing\n"); acquired = 1; break; case 0: printf("Acquired DirectBuffer for read-only\n"); acquired = 1; break; default: printf("DirectBuffer can not be Acquired!\n"); break; } } else { printf("Does not need to be acquired\n"); } printf("Mapped at read:%p, write:%p (paged %u)\n", buf->read, buf->write, buf->page_size); switch (buf->layout) { case blPixelLinearBuffer: printf("Layout: Linear Pixel Buffer\n"); printf("Stride=%d\n", buf->buffer.plb.stride); printf("Pixelformat:\n"); print_pixfmt(buf->buffer.plb.pixelformat); break; default: printf("Layout: Unknown\n"); break; /* Skip it. Don't know it. */ } if (acquired) ggiResourceRelease(buf->resource); } return 0; }