optimizations and best color depth attempt
[fbgfx] / src / main.c
index 9e27509..f0588c0 100644 (file)
@@ -20,19 +20,26 @@ static int quit;
 
 int main(void)
 {
+       int i, trybpp[] = {32, 24, 16, 0};
+
        fbgfx_save_video_mode();
-       if(!(vmem = fbgfx_get_video_mode(&xsz, &ysz, &depth))) {
-               return 1;
-       }
+       fbgfx_get_video_mode(&xsz, &ysz, &depth);
 
-       /*if(!(vmem = fbgfx_set_video_mode(xsz, ysz, 16))) {
-               return 1;
+       for(i=0; trybpp[i]; i++) {
+               if(!(vmem = fbgfx_set_video_mode(xsz, ysz, trybpp[i]))) {
+                       continue;
+               }
+               fbgfx_get_video_mode(&xsz, &ysz, &depth);
+               if(depth == trybpp[i]) {
+                       break;
+               }
+               fprintf(stderr, "failed to set color depth: %dbpp\n", trybpp[i]);
        }
-       fbgfx_get_video_mode(&xsz, &ysz, &depth);
-       if(depth != 16) {
-               fprintf(stderr, "failed to set color depth: 16bpp\n");
+       if(trybpp[i] == 0) {
+               fprintf(stderr, "no usable color depths found\n");
                goto end;
-       }*/
+       }
+
        if(fbev_init() == -1) {
                goto end;
        }