|
このページは大阪弁化フィルタによって翻訳生成されたんですわ。 |
Si quiere crear una aplicaci? de consola con Allegro, debe definir el s?bolo de preprocesador USE_CONSOLE antes de incluir los ficheros de Debido a un gran descuido en el dise? de DirectX, no hay manera de preservar los contenidos de la memoria de v?eo cuando el usuario cambia a otra ventana desde su programa. Necesita estar preparado para el hecho de que el contenido de su pantalla, y el contenido de cualquier bitmap en memoria de v?eo, puede ser destruido en cualquier momento. Puede usar la funci? set_display_switch_callback() para arregl疵selas cuando ocurra esto.
En la plataforma Windows, los ?icos valores de retorno de desktop_color_depth() son 8, 16, 24 y 32. Esto significa que no puede diferenciar escritorios de 15 o 16 bits, dado que ambos se muestran como escritorios de 16 bits. Lea abajo las consecuencias que tiene esto para los drivers en ventana y modos overlay.
Drivers: GFX_*/Windows
La biblioteca para Windows soporta los siguientes par疥etros de tarjeta
para la funci? set_gfx_mode():
if (desktop_color_depth() == 16) {
set_color_depth(16);
if (set_gfx_mode(GFX_DIRECTX_WIN, 640, 480, 0, 0) != 0) {
set_color_depth(15);
if (set_gfx_mode(GFX_DIRECTX_WIN, 640, 480, 0, 0) != 0) {
/* modo dibujado directo en 640x480 no soportado */
goto Error;
}
}
/* ok, estamos en un modo de dibujado directo */
}
if (desktop_color_depth() == 16) {
set_color_depth(16);
if (set_gfx_mode(GFX_DIRECTX_OVL, 640, 480, 0, 0) != 0) {
set_color_depth(15);
if (set_gfx_mode(GFX_DIRECTX_OVL, 640, 480, 0, 0) != 0) {
/* driver overlay en 640x480 no soportado */
goto Error;
}
}
/* ok, estamos en modo overlay a 640x480 */
}
Relacionado con: set_gfx_mode.Drivers: DIGI_*/Windows
DIGI_AUTODETECT - Allegro elige un controlador de sonido digital.
DIGI_NONE - sin sonido digital.
DIGI_DIRECTX(n) - usa el dispositivo DirectSound #n (siendo 'n'
mayor o igual que cero) con mezclado directo
DIGI_DIRECTAMX(n) - usa el dispositivo DirectSound #n (siendo 'n'
mayor o igual que cero) con el mezclador de
Allegro
DIGI_WAVOUTID(n) - alta (n=0) o baja (n=1) calidad del dispositivo
WaveOut
Relacionado con: detect_digi_driver, install_sound, install_sound_input.Drivers: MIDI_*/Windows
MIDI_AUTODETECT - Allegro escoge un controlador de sonido MIDI.
MIDI_NONE - sin sonido MIDI
MIDI_WIN32MAPPER - usa el mapeador MIDI win32
MIDI_WIN32(n) - usa el dispositivo win32 #n (siendo 'n' mayor o
igual que cero)
MIDI_DIGMID - reproductor wavetable basado en samples
Las siguientes funciones proveen una interfaz espec?ica de la plataforma para integrar Allegro sin problemas con cualquier programa Win32 de prop?ito general. Para usar estas rutinas, debe incluir winalleg.h tras otros ficheros de cabecera de Allegro.
Relacionado con: detect_midi_driver, install_sound, install_sound_input.HWND win_get_window(void);
void win_set_window(HWND wnd);
Hace que Allegro use una ventana creada por el usuario. Esta funci? debe
ser llamada *antes* de iniciar la librer? con allegro_init() o
instalando el driver de sistema con autodetecci? (SYSTEM_AUTODETECT). Le
permite enganchar Allegro a una ventana ya existente y evita que la
librer? cr馥 la suya, dej疣dole el control total de la ventana; en
sonido, temporizaci?, etc) excepto el subsistema gr畴ico.
void win_set_wnd_create_proc(HWND (*proc)(WNDPROC));
Hace que Allegro use una funci? definida por el usuario para crear su
de la nueva ventana y debe devolver el hadle a la nueva ventana. Puede
usar la librer? sin restricciones de la forma habitual.
HDC win_get_dc(BITMAP *bmp);
Recupera el handle del dispositivo de contexto del v?eo DirectX o un
bitmap de sistema.
void win_release_dc(BITMAP *bmp, HDC dc);
Libera el handle del dispositivo de contexto del bitmap que fue
previamente recuperado por win_get_dc().
driver de sistema neutral (SYSTEM_NONE) si llama a install_allegro() o enganchar Allegro a una ventana externa con win_set_window() si llama a allegro_init().
Existen dos formas de dibujar sus mapas de bits de Allegro sobre la GDI de Cuando usted usa mapas de bits din疥icos (por ejemplo elementos que reaccionan seg? la entrada del usuario), es mejor usar las funciones set_pallette_to_hdc y blit_to_hdc(), que funcionan con DIB (mapas de bits independientes del dispositivo).
tabla de conversi? de colores. Usted puede alterar la paleta actual con las funciones set_palette_to_hdc() o select_palette(). Advertencia: cuando la paleta de colores del sistema es cambiada expl?itamente, (por ejemplo, por otra aplicaci?) 。la paleta actual de Allegro no es actualizada con ello!
Para usar estas rutinas debe incluir winalleg.h tras los dem疽 ficheros de cabecera de Allegro.
void set_gdi_color_format(void);
void set_palette_to_hdc(HDC dc, PALETTE pal);
Selecciona y realiza una paleta de Allegro sobre el contexto de
dispositivo espec?ico.
HPALETTE convert_palette_to_hpalette(PALETTE pal);
Convierte una paleta de Allegro a una paleta de Windows y devuelve su
manejador. Usted deber? llamar a DeleteObject() cuando no la necesite
m疽.
Relacionado con: convert_hpalette_to_palette.void convert_hpalette_to_palette(HPALETTE hpal, PALETTE pal);
Relacionado con: convert_palette_to_hpalette.el original sin afectar al convertido. Usted deber? llamar DeleteObject() cuando no necesite m疽 este mapa de bits.
Relacionado con: convert_hbitmap_to_bitmap.BITMAP *convert_hbitmap_to_bitmap(HBITMAP bitmap);
Relacionado con: convert_bitmap_to_hbitmap.void draw_to_hdc(HDC dc, BITMAP *bitmap, int x, int y);
Relacionado con: blit_to_hdc, stretch_blit_to_hdc, draw_sprite.void blit_to_hdc(BITMAP *bitmap, HDC dc, int sx, sy, dx, dy, w, h);
Relacionado con: draw_to_hdc, stretch_blit_to_hdc, blit_from_hdc, blit.void stretch_blit_to_hdc(BITMAP *bitmap, HDC dc, int sx, sy, sw, sh, int dx, dy, dw, dh);
Relacionado con: draw_to_hdc, blit_to_hdc, stretch_blit_from_hdc, stretch_blit.void blit_from_hdc(HDC hdc, BITMAP *bitmap, int sx, sy, dx, dy, w, h);
Relacionado con: stretch_blit_from_hdc, blit_to_hdc, blit.void stretch_blit_from_hdc(HDC hcd, BITMAP *bitmap, int sx, sy, sw, sh, int dx, dy, dw, dh);
Relacionado con: blit_from_hdc, stretch_blit_to_hdc, stretch_blit.