10 #define DEF_HEIGHT 480
13 struct options opt = {
14 DEF_WIDTH, DEF_HEIGHT, DEF_BPP
17 int fb_width, fb_height, fb_bpp, fb_pitch;
18 int fb_rshift, fb_gshift, fb_bshift;
19 unsigned int fb_rmask, fb_gmask, fb_bmask;
21 unsigned int time_msec;
25 printf("initialized graphics %dx%d %dbpp\n", fb_width, fb_height, fb_bpp);
26 printf(" rgb mask: %x %x %x\n", fb_rmask, fb_gmask, fb_bmask);
27 printf(" rgb shift: %d %d %d\n", fb_rshift, fb_gshift, fb_bshift);
35 #define XORRGB(x, y, zoom, r, g, b) \
37 int xor = (((x) - fb_width/2) * (zoom) >> 10) ^ (((y) - fb_height/2) * (zoom) >> 10); \
45 int i, j, r, g, b, xoffs, yoffs, zoom;
50 xoffs = COS(time_msec >> 5) * fb_width >> 7;
51 yoffs = SIN(time_msec >> 4) * fb_height >> 8;
52 zoom = ((SIN(time_msec >> 4) + 256) << 1) + 512;
58 for(i=0; i<fb_height; i++) {
59 for(j=0; j<fb_width; j++) {
60 XORRGB(j + xoffs, i + yoffs, zoom, r, g, b);
61 *fbptr16++ = (((r >> 3) << fb_rshift) & fb_rmask) |
62 (((g >> 2) << fb_gshift) & fb_gmask) |
63 (((b >> 3) << fb_bshift) & fb_bmask);
65 fbptr16 += (fb_pitch >> 1) - fb_width;
71 for(i=0; i<fb_height; i++) {
72 for(j=0; j<fb_width; j++) {
73 XORRGB(j + xoffs, i + yoffs, zoom, r, g, b);
78 fbptr += fb_pitch - fb_width * 3;
84 for(i=0; i<fb_height; i++) {
85 for(j=0; j<fb_width; j++) {
86 XORRGB(j + xoffs, i + yoffs, zoom, r, g, b);
87 *fbptr32++ = (((r) << fb_rshift) & fb_rmask) |
88 (((g) << fb_gshift) & fb_gmask) |
89 (((b) << fb_bshift) & fb_bmask);
91 fbptr32 += (fb_pitch >> 2) - fb_width;
97 void key_event(int key, int press)
101 int read_config(const char *fname)
106 if(!(fp = fopen(fname, "rb"))) {
111 if(!(ts = ts_load(fname))) {
115 opt.width = ts_lookup_int(ts, "rbench.width", DEF_WIDTH);
116 opt.height = ts_lookup_int(ts, "rbench.height", DEF_HEIGHT);
117 opt.bpp = ts_lookup_int(ts, "rbench.bpp", DEF_BPP);