Mail Archives: djgpp/1997/05/06/14:11:50
>Would this by any chance be in a mode-X resolution?
>If so, you are either using an old version of Allegro, which had a bug w
>solid text backgrounds in mode-X (upgrade to v2.2), or you are using a
>customised proportional font (just yesterday I found a bug with regard t
>solid text backgrounds with proportional fonts in mode-X :-) If this is
>the case, edit modex.c and in the _x_draw_character() function, replace:
no, i'm using 640x480 (autodetect, but this problem exist on other
resolutions also) the thing that baffles me is, when i use the mouse and
click 'ok' or just double click the resolution....the background and
textcolor of the text are both the same...when i use the keyboard and just
press enter...it works 100% fine....well here's the parts that you can
look at...i'll explain it the best i can:
/* ok first i initialize allegro like this */
allegro_init();
install_keyboard();
install_mouse();
install_timer();
initialise_joystick();
set_gui_color(); //just sets the palette, just used it from your ex?.c files
set_gfx_mode(GFX_VGA, 320, 200, 0, 0);
set_pallete(desktop_pallete); // set the palette
/* VIDEO_MAX_? are just 'int' */
if (!gfx_mode_select(&video_card, &VIDEO_MAX_X, &VIDEO_MAX_Y))
{
allegro_exit();
exit(1);
}
/* ok i do that first 'video_card' is type 'int' */
/* ... init all my 3d engine code / load .3ds mesh */
/* then i set the gmode */
if (set_gfx_mode(video_card, VIDEO_MAX_X, VIDEO_MAX_Y, 0, 0) != 0)
{
allegro_exit();
printf("Error setting graphics mode\n%s\n\n", allegro_error);
exit(1);
}
/* BITMAP *vir_seg; .....load_texture loads a 128x128 texture (and sets
the pallete */
vir_seg = create_bitmap(VIDEO_MAX_X, VIDEO_MAX_Y);
load_texture("3d.dat", texture);
/* then it goes into a main loop */
while(...)
{
clear(vir_seg); //clear dubble buffer
....
.....
sprintf(sbuffer, "blah %3d", x_angle);
textout_centre(vir_seg, font, sbuffer, SCREEN_W >> 1, SCREEN_H - 40, 255);
/* unsigned char sbuffer[255] */
blit(vir_seg, screen, 0, 0, 0, 0, VIDEO_MAX_X, VIDEO_MAX_Y);
vsync();
/* that's pretty mutch all you need to know i think...*/
}
but the thing si it's probaly not the code...cuz it has to do with using
the mouse or keyboard to pick the video mode....
- Raw text -