projects
/
dosdemo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added missing "modify" declarations in cdpmi.h inline assembly blocks
[dosdemo]
/
src
/
dos
/
gfx.c
diff --git
a/src/dos/gfx.c
b/src/dos/gfx.c
index
b5670bf
..
d0128ee
100644
(file)
--- a/
src/dos/gfx.c
+++ b/
src/dos/gfx.c
@@
-25,11
+25,25
@@
static int fbidx;
static int init_vbe(void)
{
static int init_vbe(void)
{
+ int i, num;
+
if(vbe_info(&vbe) == -1) {
if(vbe_info(&vbe) == -1) {
+ fprintf(stderr, "failed to retrieve VBE information\n");
return -1;
}
vbe_print_info(stdout, &vbe);
return -1;
}
vbe_print_info(stdout, &vbe);
+
+ num = vbe_num_modes(&vbe);
+ for(i=0; i<num; i++) {
+ struct vbe_mode_info minf;
+
+ if(vbe_mode_info(vbe.modes[i], &minf) == -1) {
+ continue;
+ }
+ printf("%04x: ", vbe.modes[i]);
+ vbe_print_mode_info(stdout, &minf);
+ }
fflush(stdout);
vbe_init_ver = VBE_VER_MAJOR(vbe.ver);
fflush(stdout);
vbe_init_ver = VBE_VER_MAJOR(vbe.ver);
@@
-56,7
+70,11
@@
void *set_video_mode(int xsz, int ysz, int bpp)
mode = -1;
nmodes = vbe_num_modes(&vbe);
for(i=0; i<nmodes; i++) {
mode = -1;
nmodes = vbe_num_modes(&vbe);
for(i=0; i<nmodes; i++) {
- vbe_mode_info(vbe.modes[i], &minf);
+ if(vbe_mode_info(vbe.modes[i], &minf) == -1) {
+ continue;
+ }
+ printf("trying to match mode: %d (%dx%d %dbpp)\n", vbe.modes[i],
+ minf.xres, minf.yres, minf.bpp);
if(minf.xres != xsz || minf.yres != ysz) continue;
if(minf.bpp == bpp) {
mode = vbe.modes[i];
if(minf.xres != xsz || minf.yres != ysz) continue;
if(minf.bpp == bpp) {
mode = vbe.modes[i];