4
* Pixel buffer rendering library
7
* Lauris Kaplinski <lauris@kaplinski.com>
9
* This code is in public domain
12
#if defined (_WIN32) || defined (__WIN32__)
24
g_get_current_time (&tv);
25
return tv.tv_sec + 1e-6 * tv.tv_usec;
31
return (int) (256.0 * rand () / (RAND_MAX + 1.0));
35
main (int argc, const char **argv)
43
printf ("Initializing buffers\n");
46
nr_pixblock_setup_fast (&d, NR_PIXBLOCK_MODE_R8G8B8A8P, 0, 0, 64, 64, 1);
50
for (i = 0; i < 16; i++) {
52
nr_pixblock_setup_fast (&m[i], NR_PIXBLOCK_MODE_A8, 0, 0, 64, 64, 0);
53
for (r = 0; r < 64; r++) {
56
p = NR_PIXBLOCK_PX (&m[i]) + r * m[i].rs;
57
for (b = 0; b < 8; b++) {
60
for (c = 0; c < 8; c++) *p++ = 0;
62
for (c = 0; c < 8; c++) *p++ = 255;
64
for (c = 0; c < 8; c++) *p++ = rand_byte ();
71
printf ("Random transparency\n");
73
start = end = get_time ();
74
while ((end - start) < 5.0) {
75
unsigned char r, g, b, a;
81
for (i = 0; i < 16; i++) {
82
nr_blit_pixblock_mask_rgba32 (&d, &m[i], (a << 24) | (g << 16) | (b << 8) | a);
87
printf ("Did %d [64x64] random buffers in %f sec\n", count, end - start); // localizing ok
88
printf ("%f buffers per second\n", count / (end - start)); // localizing ok
89
printf ("%f pixels per second\n", count * (64 * 64) / (end - start)); // localizing ok