----- Original Message -----
Sent: Saturday, August 24, 2002 5:47 PM
Subject: [AL-ES] Configuración placa de video
Hola a todos:
Tengo que hacer un programa en DOS con la mayor resolución posible. Según el programa vesainfo, mi placa de video (Intel 810) tolera hasta 1024x768 con 256 colores en modo Vesa 2 (banked). Yo ya probé y funciona bien, cargo una imagen de fondo y un sprite. El problema que tengo es que draw_sprite me dibuja también el color de transparencia (negro). Este color en la imagen lo tenía definido como 255,0,255, pero cuando pasé a modo 256 colores lo transformé a 0,0,0. En consecuencia la imagen aparece dentro de un recuadro negro. Revisando la información que larga el programa vesainfo descubrí que en 8 bits el modo es "packed pixels", aunque no sé lo que esto significa, mientras que en los demás modos (15,16 o más bits) el modo es "direct colors". Supuse que el problema puede estar ahí, en el tipo de imágenes que manejo (son bmp de 8 bits.).
Si alguno tiene una idea de cómo solucionar esto y que funcione la transparencia o de poder mejorar el modo vesa y así trabajar con 16 bits en DOS y a esta resolución se lo agradeceré mucho.
Un saludo.
JD
Hola de (ESB)
Para trabajar en color Verdadero con djgpp primero debes configurar la paleta de colores a true color algo como:
bool IniciarModo(int cBits)
{
set_color_depth(cBits);
if (set_gfx_mode(GFX_AUTODETECT,640,480,0,0)) {
return FALSE;
}
clear_to_color(screen, CNegro);
generate_332_palette(gPalette);
set_palette(gPalette);
return TRUE;
}
llamandolo desde main:
despues antes de dibujar un sprite-16 bits, asegurate que el color de mascara sea RGB(255,0,255), luego antes debes fijar el blender de la
imagen algo como solides de iluminacion:
clear_to_color(Pantalla, CNegro);
set_trans_blender(255,0,255,255);
y luego ocupar las funciones que ocupen esta mascara prefijada:
(al menos yo no la pude cambiar en Bitmpas 8-bit, es RGB(0,0,0),
y 16 a 32 bits en RGB(255,0,255), rosado intenso),
draw_transp_sprite( ...)
masked_blit(...)
stretch_sprite(..)
Saludos de (ESB).
_______________________________________________
Para cancelar su subscripción envíe un email a:
allegro-espanol-unsubscribe@egroups.com
La utilización de Yahoo! Grupos está sujeta a su aceptación de las Condiciones del servicio así como de la Política de privacidad.