Este sitio web usa cookies de terceros para analizar el tráfico y personalizar los anuncios. Si no está de acuerdo, abandone el sitio y no siga navegando por él. ×


14.10. Gráficos con FPK y TMT.

La gran mayoría de los ejemplos que hemos visto para Turbo Pascal deberían funcionar sin cambios en FPK Pascal y en TMT Pascal, pero estos no necesitan que los ficheros BGI estén en un cierto directorio, y nos permitirán acceder a modos gráficos con más puntos en pantalla y más colores, propios de tarjetas gráficas más avanzadas (siguiendo el estándar VESA).

Por ejemplo, el primer programa gráfico que hemos creado se podría reescribir para Tmt con ligeras modificaciones, así:

{--------------------------}
{  Ejemplo en Pascal:      }
{                          }
{    Primer ejemplo de     }
{    graficos en TMT       }
{    GRAF1T.PAS            }
{                          }
{  Este fuente procede de  }
{  CUPAS, curso de Pascal  }
{  por Nacho Cabanes       }
{                          }
{  Comprobado con:         }
{    - TMT Pascal 3.30     }
{--------------------------}

program PrimerGrafico;

uses Graph;                    { Usaremos la libreria grafica de TMT }

begin
 SetGraphMode($101);              { Inicializamos: modo 640x480, 256c }
 Line(0, 0, 320, 240);                          { Dibujamos una linea }
 Readln;                                                  { Esperamos }
 CloseGraph                                              { Y se acabo }
end. 

Aquí hemos cambiado la orden “InitGraph” por la que se recomienda en TMT, que es “SetGraphMode”, y que sólo espera el número de modo gráfico que nos interesa (insisto, no necesitamos indicar ningún directorio donde buscar los drivers).  Los números de modos gráficos, definidos en el estándar VESA, pueden ser, por ejemplo:

 100h 640x400x256
 101h 640x480x256
 102h 800x600x16
 103h 800x600x256
 104h 1024x768x16
 105h 1024x768x256
 106h 1280x1024x16
 107h 1280x1024x256

para tarjetas que sigan el estandar VESA 1.0, y si siguen el estandar VESA 1.2, hay todavía más modos disponibles, con mayor número de colores:

 10Dh 320x200x32K
 10Eh 320x200x64K
 10Fh 320x200x16M
 110h 640x480x32K
 111h 640x480x64K
 112h 640x480x16M
 113h 800x600x32K
 114h 800x600x64K
 115h 800x600x16M
 116h 1024x768x32K
 117h 1024x768x64K
 118h 1024x768x16M
 119h 1280x1024x32K
 11Ah 1280x1024x64K
 11Bh 1280x1024x16M

Podríamos crearnos nosotros muestras constantes si nos interesa, con algo parecido a:

const
 VESA640x400x256 = $100;
 VESA640x480x256 = $101;
 (...)
 

En FPK Pascal sí se usa la misma orden InitGraph, pero la lista de drivers y de modos es bastante distinta: los “drivers” se referirán al número de colores que deseamos, y el “modo” se referirá a la resolución (número) de puntos en pantalla.  Tenemos definidas las siguientes constantes (tomado directamente de la documentación de FPK):

-- “Drivers” de pantalla:
D1bit = 11;
D2bit = 12;
D4bit = 13;
D6bit = 14; { 64 colors Half-brite mode - Amiga }
D8bit = 15;
D12bit = 16; { 4096 color modes HAM mode - Amiga }
D15bit = 17;
D16bit = 18;
D24bit = 19; { not yet supported }
D32bit = 20; { not yet supported }
D64bit = 21; { not yet supported }

-- “Modos” de pantalla:
detectMode = 30000;
m320x200 = 30001;
m320x256 = 30002; { amiga resolution (PAL) }
m320x400 = 30003; { amiga/atari resolution }
m512x384 = 30004; { mac resolution }
m640x200 = 30005; { vga resolution }
m640x256 = 30006; { amiga resolution (PAL) }
m640x350 = 30007; { vga resolution }
m640x400 = 30008;
m640x480 = 30009;
m800x600 = 30010;
m832x624 = 30011; { mac resolution }
m1024x768 = 30012;
m1280x1024 = 30013;
m1600x1200 = 30014;
m2048x1536 = 30015;

De modo que para entrar al modo de 640x480 con 256 colores haríamos:

driver : = D8bit;
modo : = m640x480;
initgraph ( driver, modo, ’’);