12 struct options opt = {
13 DEF_WIDTH, DEF_HEIGHT, DEF_BPP
16 int fb_width, fb_height, fb_bpp, fb_pitch;
18 unsigned int time_msec;
29 #define XORRGB(x, y, zoom, r, g, b) \
31 int xor = (((x) - fb_width/2) * (zoom) >> 10) ^ (((y) - fb_height/2) * (zoom) >> 10); \
39 int i, j, r, g, b, xoffs, yoffs, zoom;
43 float t = (float)time_msec / 1000.0f;
45 xoffs = cos(t * 0.5f) * DEF_WIDTH * 2;
46 yoffs = sin(t) * DEF_HEIGHT;
47 zoom = (sin(t * 0.75f) * 0.5f + 1.0f) * 1024.0f;
52 for(i=0; i<fb_height; i++) {
53 for(j=0; j<fb_width; j++) {
54 XORRGB(j + xoffs, i + yoffs, zoom, r, g, b);
55 *fbptr16++ = ((r & 0x1f) << 10) | ((g & 0x1f) << 5) | (b & 0x1f);
57 fbptr16 += (fb_pitch >> 1) - fb_width;
63 for(i=0; i<fb_height; i++) {
64 for(j=0; j<fb_width; j++) {
65 XORRGB(j + xoffs, i + yoffs, zoom, r, g, b);
66 *fbptr16++ = ((r & 0x1f) << 11) | ((g & 0x3f) << 5) | (b & 0x1f);
68 fbptr16 += (fb_pitch >> 1) - fb_width;
74 for(i=0; i<fb_height; i++) {
75 for(j=0; j<fb_width; j++) {
76 XORRGB(j + xoffs, i + yoffs, zoom, r, g, b);
81 fbptr += fb_pitch - fb_width * 3;
87 for(i=0; i<fb_height; i++) {
88 for(j=0; j<fb_width; j++) {
89 XORRGB(j + xoffs, i + yoffs, zoom, r, g, b);
90 *fbptr32++ = ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff);
92 fbptr32 += (fb_pitch >> 2) - fb_width;
98 void key_event(int key, int press)
102 int read_config(const char *fname)
107 if(!(fp = fopen(fname, "rb"))) {
112 if(!(ts = ts_load(fname))) {
116 opt.width = ts_lookup_int(ts, "rbench.width", DEF_WIDTH);
117 opt.height = ts_lookup_int(ts, "rbench.height", DEF_HEIGHT);
118 opt.bpp = ts_lookup_int(ts, "rbench.bpp", DEF_BPP);