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;
}