Revision history for GfxLib


Revision [21683]

Last edited on 2016-11-07 08:08:50 by fxm [Formatting]
Additions:



Deletions:





Revision [20814]

Edited on 2016-03-12 14:33:12 by fxm [Formatting]
Additions:





Revision [20032]

Edited on 2016-02-10 15:53:54 by DkLwikki [Update link format]
Additions:
- **##Null##** Does nothing, allows to use graphics functions on in-memory buffers and such, without anything being displayed in a graphics window. [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/gfx_driver_null.c|(gfxlib2/gfx_driver_null.c)]]
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_ddraw.c|(gfxlib2/win32/gfx_driver_ddraw.c)]]
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 to 0.24 (crash), and minor problems 0.18.5, and 0.90.x and 1.xx ("banding effects", try extra SCREENUNLOCK), [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600|(forum discussion: p=106600)]] [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_gdi.c|(gfxlib2/win32/gfx_driver_gdi.c)]]
- **##OpenGL##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_opengl.c|(gfxlib2/win32/gfx_driver_opengl.c)]]
- **##X11##** The default on Unix systems [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/unix/gfx_driver_x11.c|(gfxlib2/unix/gfx_driver_x11.c)]]
- **##OpenGL##** (on top of X11) [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/unix/gfx_driver_opengl_x11.c|(gfxlib2/unix/gfx_driver_opengl_x11.c)]]
- **##FBDev##** Linux framebuffer device -- fallback in case X11 is disabled [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/linux/gfx_driver_fbdev.c|(gfxlib2/linux/gfx_driver_fbdev.c)]]
- **##BIOS##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_bios.c|(gfxlib2/dos/gfx_driver_bios.c)]]
- **##""ModeX""##** "tuned" 320x240x8bpp VGA mode [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_modex.c|(gfxlib2/dos/gfx_driver_modex.c)]]
- **##VESA banked##** compatible with very old VESA 1.x implementations [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vesa_bnk.c|(gfxlib2/dos/gfx_driver_vesa_bnk.c)]]
- **##VESA linear##** needs VESA version at least 2.0, usually faster than banked VESA [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vesa_lin.c|(gfxlib2/dos/gfx_driver_vesa_lin.c)]]
- **##VGA##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vga.c|(gfxlib2/dos/gfx_driver_vga.c)]]
- Bug note: [[KeyPgPalette|Palette]] doesn't work well [[http://freebasic.net/forum/viewtopic.php?t=12691|(forum discussion: t=12691 2008)]] [[http://freebasic.net/forum/viewtopic.php?t=19980|(forum discussion: t=19980 2012)]]
##[[KeyPgScreencontrol|Screencontrol]]## can be used (SET_DRIVER_NAME 103) to override the default driver preferences.
- [[CatPgGfx|GFX Functions Index]]
- ##[[KeyPgScreengraphics|Screen]]## The QB-like way to set graphics mode
- ##[[KeyPgScreenres|Screenres]]## More flexible alternative to ##**Screen**##
- ##[[KeyPgScreenlist|Screenlist]]## Check display modes available for FB ""GfxLib"" to use
- ##[[KeyPgScreencontrol|Screencontrol]]## Select driver and more
- ##[[KeyPgScreenlock|Screenlock]]##
- ##[[KeyPgScreenunlock|Screenunlock]]##
- ##[[KeyPgScreenptr|Screenptr]]## Semi-low level access
- ##[[KeyPgScreenset|Screenset]]##
- ##[[KeyPgScreencopy|Screencopy]]##
- ##[[KeyPgScreeninfo|Screeninfo]]##
- ##[[KeyPgScreenglproc|Screenglproc]]##
- ##[[GfxInternalFormats|Internal pixel formats]]##
Deletions:
- **##Null##** Does nothing, allows to use graphics functions on in-memory buffers and such, without anything being displayed in a graphics window. [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/gfx_driver_null.c (gfxlib2/gfx_driver_null.c)]]
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_ddraw.c (gfxlib2/win32/gfx_driver_ddraw.c)]]
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 to 0.24 (crash), and minor problems 0.18.5, and 0.90.x and 1.xx ("banding effects", try extra SCREENUNLOCK), [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_gdi.c (gfxlib2/win32/gfx_driver_gdi.c)]]
- **##OpenGL##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_opengl.c (gfxlib2/win32/gfx_driver_opengl.c)]]
- **##X11##** The default on Unix systems [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/unix/gfx_driver_x11.c (gfxlib2/unix/gfx_driver_x11.c)]]
- **##OpenGL##** (on top of X11) [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/unix/gfx_driver_opengl_x11.c (gfxlib2/unix/gfx_driver_opengl_x11.c)]]
- **##FBDev##** Linux framebuffer device -- fallback in case X11 is disabled [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/linux/gfx_driver_fbdev.c (gfxlib2/linux/gfx_driver_fbdev.c)]]
- **##BIOS##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_bios.c (gfxlib2/dos/gfx_driver_bios.c)]]
- **##""ModeX""##** "tuned" 320x240x8bpp VGA mode [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_modex.c (gfxlib2/dos/gfx_driver_modex.c)]]
- **##VESA banked##** compatible with very old VESA 1.x implementations [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vesa_bnk.c (gfxlib2/dos/gfx_driver_vesa_bnk.c)]]
- **##VESA linear##** needs VESA version at least 2.0, usually faster than banked VESA [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vesa_lin.c (gfxlib2/dos/gfx_driver_vesa_lin.c)]]
- **##VGA##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vga.c (gfxlib2/dos/gfx_driver_vga.c)]]
- Bug note: [[KeyPgPalette Palette]] doesn't work well [[http://freebasic.net/forum/viewtopic.php?t=12691 (forum discussion: t=12691 2008)]] [[http://freebasic.net/forum/viewtopic.php?t=19980 (forum discussion: t=19980 2012)]]
##[[KeyPgScreencontrol Screencontrol]]## can be used (SET_DRIVER_NAME 103) to override the default driver preferences.
- [[CatPgGfx GFX Functions Index]]
- ##[[KeyPgScreengraphics Screen]]## The QB-like way to set graphics mode
- ##[[KeyPgScreenres Screenres]]## More flexible alternative to ##**Screen**##
- ##[[KeyPgScreenlist Screenlist]]## Check display modes available for FB ""GfxLib"" to use
- ##[[KeyPgScreencontrol Screencontrol]]## Select driver and more
- ##[[KeyPgScreenlock Screenlock]]##
- ##[[KeyPgScreenunlock Screenunlock]]##
- ##[[KeyPgScreenptr Screenptr]]## Semi-low level access
- ##[[KeyPgScreenset Screenset]]##
- ##[[KeyPgScreencopy Screencopy]]##
- ##[[KeyPgScreeninfo Screeninfo]]##
- ##[[KeyPgScreenglproc Screenglproc]]##
- ##[[GfxInternalFormats Internal pixel formats]]##


Revision [17400]

Edited on 2014-12-31 05:55:33 by DoS386 [updates]
Additions:
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 to 0.24 (crash), and minor problems 0.18.5, and 0.90.x and 1.xx ("banding effects", try extra SCREENUNLOCK), [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_gdi.c (gfxlib2/win32/gfx_driver_gdi.c)]]
- In DOS, the resolution must match one supported by the graphics card. ""GfxLib"" will try to find an appropriate mode from VGA modes, ""ModeX"" or VESA, preferring VESA LFB interface if available, or banked VESA otherwise. Unsupported resolutions may currently crash the program (if you fail to check SCREENPTR for ZERO before using it), though in future ""GfxLib"" may try to find a close match instead. For optimal compatibility, you should support "safe" resolutions like 640x480 and 800x600, and maybe 1024x768. There are various additional modes like 768x576 around, but they are vendor specific and lacking on many other cards. Also modes 1024x768 and above are not available on older cards and laptops.
Deletions:
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 to 0.24 (crash) and 0.18.5 and 0.90rc2 ("banding effects"), [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_gdi.c (gfxlib2/win32/gfx_driver_gdi.c)]]
- In DOS, the resolution must match one supported by the graphics card. ""GfxLib"" will try to find an appropriate mode from VGA modes, ""ModeX"" or VESA, preferring VESA LFB interface if available, or banked VESA otherwise. Unsupported resolutions may currently crash the program, though in future ""GfxLib"" may try to find a close match instead. For optimal compatibility, you should support "safe" resolutions like 640x480 and 800x600, and maybe 1024x768. There are various additional modes like 768x576 around, but they are vendor specific and lacking on many other cards. Also modes 1024x768 and above are not available on older cards and laptops.


Revision [17031]

Edited on 2014-03-30 03:19:42 by DoS386 [no refrresh]
Additions:
##[[KeyPgScreencontrol Screencontrol]]## can be used (SET_DRIVER_NAME 103) to override the default driver preferences.
- In DOS, ""GfxLib"" will create and "manage" a mouse arrow if a mouse driver is detected. There is no "official" way to disable this. Also note that the arrow doesn't react to mouse movements while the screen is locked.
- In DOS, the refresh rate setting is not available (some VESA cards do support it, but ""FreeBASIC"" for now doesn't)
Deletions:
##[[KeyPgScreencontrol Screencontrol]]## can be used (SET_DRIVER_NAME 103) to override the default driver preferences.
- In DOS, ""GfxLib"" will create and "manage" a mouse arrow if a mouse driver is detected. There is no "official" way to disable this. Also the arrow doesn't react to mouse movements while the screen is locked.


Revision [17026]

Edited on 2014-03-30 02:55:55 by DoS386 [CLS]
Additions:
- In DOS, the resolution must match one supported by the graphics card. ""GfxLib"" will try to find an appropriate mode from VGA modes, ""ModeX"" or VESA, preferring VESA LFB interface if available, or banked VESA otherwise. Unsupported resolutions may currently crash the program, though in future ""GfxLib"" may try to find a close match instead. For optimal compatibility, you should support "safe" resolutions like 640x480 and 800x600, and maybe 1024x768. There are various additional modes like 768x576 around, but they are vendor specific and lacking on many other cards. Also modes 1024x768 and above are not available on older cards and laptops.
- It has been observed that SCREEN and SCREENRES may fail to clear the screen in DOS, actually this is probably a BIOS bug that ""GfxLib"" currently doesn't workaround.
Deletions:
- In DOS, the resolution must match one supported by the graphics card. ""GfxLib"" will try to find an appropriate mode from VGA modes, ""ModeX"" or VESA, preferring VESA LFB interface if available, or banked VESA otherwise. Unsupported resolutions may currently crash the program, though in future ""GfxLib"" may try to find a close match instead. For optimal compatibility, you should support "safe" resolutions like 640x480 and 800x600, and maybe 1024x768. There are various additional modes like 768x576 around, but they are vendor specific and lacking on many other cards. Also modes 1024x768 and above are not available on older cards and laptops.


Revision [16834]

Edited on 2013-06-15 01:53:22 by DoS386 [not fixed in 0.90rc2]
Additions:
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 to 0.24 (crash) and 0.18.5 and 0.90rc2 ("banding effects"), [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_gdi.c (gfxlib2/win32/gfx_driver_gdi.c)]]
Deletions:
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN (needs retest with 0.23). [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_gdi.c (gfxlib2/win32/gfx_driver_gdi.c)]]


Revision [16817]

Edited on 2013-05-22 03:10:40 by DkLwikki [Update Git links]
Additions:
- **##Null##** Does nothing, allows to use graphics functions on in-memory buffers and such, without anything being displayed in a graphics window. [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/gfx_driver_null.c (gfxlib2/gfx_driver_null.c)]]
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_ddraw.c (gfxlib2/win32/gfx_driver_ddraw.c)]]
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN (needs retest with 0.23). [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_gdi.c (gfxlib2/win32/gfx_driver_gdi.c)]]
- **##OpenGL##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_opengl.c (gfxlib2/win32/gfx_driver_opengl.c)]]
- **##X11##** The default on Unix systems [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/unix/gfx_driver_x11.c (gfxlib2/unix/gfx_driver_x11.c)]]
- **##OpenGL##** (on top of X11) [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/unix/gfx_driver_opengl_x11.c (gfxlib2/unix/gfx_driver_opengl_x11.c)]]
- **##FBDev##** Linux framebuffer device -- fallback in case X11 is disabled [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/linux/gfx_driver_fbdev.c (gfxlib2/linux/gfx_driver_fbdev.c)]]
- **##BIOS##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_bios.c (gfxlib2/dos/gfx_driver_bios.c)]]
- **##""ModeX""##** "tuned" 320x240x8bpp VGA mode [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_modex.c (gfxlib2/dos/gfx_driver_modex.c)]]
- **##VESA banked##** compatible with very old VESA 1.x implementations [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vesa_bnk.c (gfxlib2/dos/gfx_driver_vesa_bnk.c)]]
- **##VESA linear##** needs VESA version at least 2.0, usually faster than banked VESA [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vesa_lin.c (gfxlib2/dos/gfx_driver_vesa_lin.c)]]
- **##VGA##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vga.c (gfxlib2/dos/gfx_driver_vga.c)]]
Deletions:
- **##Null##** Does nothing, allows to use graphics functions on in-memory buffers and such, without anything being displayed in a graphics window. [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/gfx_driver_null.c; (gfxlib2/gfx_driver_null.c)]]
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_ddraw.c; (gfxlib2/win32/gfx_driver_ddraw.c)]]
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN (needs retest with 0.23). [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_gdi.c; (gfxlib2/win32/gfx_driver_gdi.c)]]
- **##OpenGL##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_opengl.c; (gfxlib2/win32/gfx_driver_opengl.c)]]
- **##X11##** The default on Unix systems [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/unix/gfx_driver_x11.c; (gfxlib2/unix/gfx_driver_x11.c)]]
- **##OpenGL##** (on top of X11) [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/unix/gfx_driver_opengl_x11.c; (gfxlib2/unix/gfx_driver_opengl_x11.c)]]
- **##FBDev##** Linux framebuffer device -- fallback in case X11 is disabled [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/linux/gfx_driver_fbdev.c; (gfxlib2/linux/gfx_driver_fbdev.c)]]
- **##BIOS##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_bios.c; (gfxlib2/dos/gfx_driver_bios.c)]]
- **##""ModeX""##** "tuned" 320x240x8bpp VGA mode [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_modex.c; (gfxlib2/dos/gfx_driver_modex.c)]]
- **##VESA banked##** compatible with very old VESA 1.x implementations [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vesa_bnk.c; (gfxlib2/dos/gfx_driver_vesa_bnk.c)]]
- **##VESA linear##** needs VESA version at least 2.0, usually faster than banked VESA [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vesa_lin.c; (gfxlib2/dos/gfx_driver_vesa_lin.c)]]
- **##VGA##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vga.c; (gfxlib2/dos/gfx_driver_vga.c)]]


Revision [16816]

Edited on 2013-05-22 03:09:26 by DkLwikki [Update Git links]
Additions:
- **##Null##** Does nothing, allows to use graphics functions on in-memory buffers and such, without anything being displayed in a graphics window. [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/gfx_driver_null.c; (gfxlib2/gfx_driver_null.c)]]
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_ddraw.c; (gfxlib2/win32/gfx_driver_ddraw.c)]]
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN (needs retest with 0.23). [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_gdi.c; (gfxlib2/win32/gfx_driver_gdi.c)]]
- **##OpenGL##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/win32/gfx_driver_opengl.c; (gfxlib2/win32/gfx_driver_opengl.c)]]
- **##X11##** The default on Unix systems [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/unix/gfx_driver_x11.c; (gfxlib2/unix/gfx_driver_x11.c)]]
- **##OpenGL##** (on top of X11) [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/unix/gfx_driver_opengl_x11.c; (gfxlib2/unix/gfx_driver_opengl_x11.c)]]
- **##FBDev##** Linux framebuffer device -- fallback in case X11 is disabled [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/linux/gfx_driver_fbdev.c; (gfxlib2/linux/gfx_driver_fbdev.c)]]
- **##BIOS##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_bios.c; (gfxlib2/dos/gfx_driver_bios.c)]]
- **##""ModeX""##** "tuned" 320x240x8bpp VGA mode [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_modex.c; (gfxlib2/dos/gfx_driver_modex.c)]]
- **##VESA banked##** compatible with very old VESA 1.x implementations [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vesa_bnk.c; (gfxlib2/dos/gfx_driver_vesa_bnk.c)]]
- **##VESA linear##** needs VESA version at least 2.0, usually faster than banked VESA [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vesa_lin.c; (gfxlib2/dos/gfx_driver_vesa_lin.c)]]
- **##VGA##** [[http://sourceforge.net/p/fbc/code/ci/master/tree/src/gfxlib2/dos/gfx_driver_vga.c; (gfxlib2/dos/gfx_driver_vga.c)]]
Deletions:
- **##Null##** Does nothing, allows to use graphics functions on in-memory buffers and such, without anything being displayed in a graphics window. [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_null.c; (gfxlib2/driver_null.c)]]
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_ddraw_win32.c; (gfxlib2/driver_ddraw_win32.c)]]
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN (needs retest with 0.24 and 0.25). [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_gdi_win32.c; (gfxlib2/driver_gdi_win32.c)]]
- **##OpenGL##** [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_opengl_win32.c; (gfxlib2/driver_opengl_win32.c)]]
- **##X11##** The default on Unix systems [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_x11.c; (gfxlib2/driver_x11.c)]]
- **##OpenGL##** (on top of X11) [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_opengl_x11.c; (gfxlib2/driver_opengl_x11.c)]]
- **##FBDev##** Linux framebuffer device -- fallback in case X11 is disabled [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_fbdev_linux.c; (gfxlib2/driver_fbdev_linux.c)]]
- **##BIOS##** [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_bios_dos.c; (gfxlib2/driver_bios_dos.c)]]
- **##""ModeX""##** "tuned" 320x240x8bpp VGA mode [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_modex_dos.c; (gfxlib2/driver_modex_dos.c)]]
- **##VESA banked##** compatible with very old VESA 1.x implementations [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_vesa_bnk_dos.c; (gfxlib2/driver_vesa_bnk_dos.c)]]
- **##VESA linear##** needs VESA version at least 2.0, usually faster than banked VESA [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_vesa_lin_dos.c; (gfxlib2/driver_vesa_lin_dos.c)]]
- **##VGA##** [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_vga_dos.c; (gfxlib2/driver_vga_dos.c)]]


Revision [16814]

Edited on 2013-05-22 02:47:58 by DoS386 [edit]
Additions:
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN (needs retest with 0.24 and 0.25). [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_gdi_win32.c; (gfxlib2/driver_gdi_win32.c)]]
Deletions:
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN (needs retest with 0.23). [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_gdi_win32.c; (gfxlib2/driver_gdi_win32.c)]]


Revision [16205]

Edited on 2012-06-16 04:37:57 by DoS386 [re-added BUG-note as it is still unfiex and still bugs people]
Additions:
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN (needs retest with 0.23). [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_gdi_win32.c; (gfxlib2/driver_gdi_win32.c)]]
- Bug note: [[KeyPgPalette Palette]] doesn't work well [[http://freebasic.net/forum/viewtopic.php?t=12691 (forum discussion: t=12691 2008)]] [[http://freebasic.net/forum/viewtopic.php?t=19980 (forum discussion: t=19980 2012)]]
Deletions:
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_gdi_win32.c; (gfxlib2/driver_gdi_win32.c)]]


Revision [15702]

Edited on 2012-01-16 02:22:04 by SirMud [re-added BUG-note as it is still unfiex and still bugs people]
Additions:
{{fbdoc item="back" value="DevToc|FreeBASIC Developer Information"}}


Revision [15261]

Edited on 2011-09-30 09:43:11 by DkLwikki [Update to Git, mention X11 & fbdev, explain NULL driver]
Additions:
""GfxLib"" is the built-in graphics library included in ""FreeBASIC"". As well as re-creating every ""QuickBASIC"" graphics command, ""GfxLib"" has built-in commands to handle input from the keyboard and mouse. Major contributors of the library are Lillo, ""CoderJeff"" and ""DrV"".
- **##Null##** Does nothing, allows to use graphics functions on in-memory buffers and such, without anything being displayed in a graphics window. [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_null.c; (gfxlib2/driver_null.c)]]
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_ddraw_win32.c; (gfxlib2/driver_ddraw_win32.c)]]
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]] [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_gdi_win32.c; (gfxlib2/driver_gdi_win32.c)]]
- **##OpenGL##** [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_opengl_win32.c; (gfxlib2/driver_opengl_win32.c)]]
- ""Linux & others"":
- **##X11##** The default on Unix systems [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_x11.c; (gfxlib2/driver_x11.c)]]
- **##OpenGL##** (on top of X11) [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_opengl_x11.c; (gfxlib2/driver_opengl_x11.c)]]
- **##FBDev##** Linux framebuffer device -- fallback in case X11 is disabled [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_fbdev_linux.c; (gfxlib2/driver_fbdev_linux.c)]]
- **##BIOS##** [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_bios_dos.c; (gfxlib2/driver_bios_dos.c)]]
- **##""ModeX""##** "tuned" 320x240x8bpp VGA mode [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_modex_dos.c; (gfxlib2/driver_modex_dos.c)]]
- **##VESA banked##** compatible with very old VESA 1.x implementations [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_vesa_bnk_dos.c; (gfxlib2/driver_vesa_bnk_dos.c)]]
- **##VESA linear##** needs VESA version at least 2.0, usually faster than banked VESA [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_vesa_lin_dos.c; (gfxlib2/driver_vesa_lin_dos.c)]]
- **##VGA##** [[http://fbc.git.sourceforge.net/git/gitweb.cgi?p=fbc/fbc;a=blob;f=gfxlib2/driver_vga_dos.c; (gfxlib2/driver_vga_dos.c)]]
- In DOS, Windowing and ""OpenGL"" related commands and switches are not available (they exist but do nothing, or return some values with no meaning)
- Graphics support was internally redesigned. QB used VGA graphics modes, and wrote directly into the VGA RAM. Multiple pages were available as long as the card supported them. FB uses backbuffers, one per defined page, and copies them to the video RAM (VGA (DOS), VESA (DOS), ""DirectX"" (""Win32""), ...) in the background. Graphics commands do work as they used to in QB, but a few notable differences are present:
Deletions:
""GfxLib"" is the built-in graphics library included in FreeBASIC. As well as re-creating every QuickBASIC graphics command, ""GfxLib"" has built-in commands to handle input from the keyboard and mouse. Major contributors of the library are Lillo, ""CoderJeff"" and DrV.
- **##Null##** Does nothing. Purpose = ??? [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/libfb_gfx_driver_null.c?view=markup (SVN libfb_gfx_driver_null.c)]]
- ""Win32"" and ""Linux"":
- **##OpenGL##**
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/win32/libfb_gfx_driver_ddraw.c?view=markup (SVN libfb_gfx_driver_ddraw.c)]] Bug note: broken in FB versions 0.20 and (some ?) 0.18.x (crash if not available), fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- **##GDI##** The "safest" one, available in all ""Win32"" versions. [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/win32/libfb_gfx_driver_gdi.c?view=markup (SVN libfb_gfx_driver_gdi.c)]] Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- ""Linux"":
- **##???##**
- **##BIOS##** [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/dos/libfb_gfx_driver_bios.c?view=markup (SVN libfb_gfx_driver_bios.c)]]
- **##""ModeX""##** "tuned" 320x240x8bpp VGA mode [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/dos/libfb_gfx_driver_modex.c?view=markup (SVN libfb_gfx_driver_modex.c)]]
- **##VESA banked##** compatible with very old VESA 1.x implementations [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/dos/libfb_gfx_driver_vesa_bnk.c?view=markup (SVN libfb_gfx_driver_vesa_bnk.c)]]
- **##VESA linear##** needs VESA version at least 2.0, usually faster than banked VESA [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/dos/libfb_gfx_driver_vesa_lin.c?view=markup (SVN libfb_gfx_driver_vesa_lin.c)]]
- **##VGA##** [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/dos/libfb_gfx_driver_vga.c?view=markup (SVN libfb_gfx_driver_vga.c)]]
- Bug note: [[KeyPgPalette Palette]] doesn't work well [[http://freebasic.net/forum/viewtopic.php?t=12691 (forum discussion: t=12691)]]
- In DOS, Windowing and OpenGL related commands and switches are not available (they exist but do nothing, or return some values with no meaning)
- Graphics support was internally redesigned. QB used VGA graphics modes, and wrote directly into the VGA RAM. Multiple pages were available as long as the card supported them. FB uses backbuffers, one per defined page, and copies them to the video RAM (VGA (DOS), VESA (DOS), DirectX (""Win32""), ...) in the background. Graphics commands do work as they used to in QB, but a few notable differences are present:


Revision [14837]

Edited on 2010-09-24 22:51:26 by Sisophon2001 [Removed abbreviation]
Additions:
- Mixing FB's graphics support with low-level screen accesses (VGA) is not supported, even in DOS. However direct screen memory access is possible using Screenptr and Screenlock and is fully portable. In DOS VGA and VESA are still available, but can't be mixed with FB's graphics support.
Deletions:
- Mixing FB's graphics support with low-level screen accesses (VGA) is absolutely prohibited, even in DOS, OTOH semi-low-level can be done using Screenptr and Screenlock, and is even portable. In DOS VGA and VESA are still available, but can't be mixed with FB's graphics support.


Revision [14562]

Edited on 2010-01-08 23:09:49 by DoS386 [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-( [11]]
Additions:
- **##GDI##** The "safest" one, available in all ""Win32"" versions. [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/win32/libfb_gfx_driver_gdi.c?view=markup (SVN libfb_gfx_driver_gdi.c)]] Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- In DOS, Windowing and OpenGL related commands and switches are not available (they exist but do nothing, or return some values with no meaning)
Deletions:
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- In DOS, Windowing and OpenGL related commands and switches are not available.


Revision [14561]

Edited on 2010-01-08 22:47:07 by DoS386 [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-( [10]]
Additions:
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/win32/libfb_gfx_driver_ddraw.c?view=markup (SVN libfb_gfx_driver_ddraw.c)]] Bug note: broken in FB versions 0.20 and (some ?) 0.18.x (crash if not available), fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- **##???##**
Deletions:
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x (crash if not available), fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- **##???##**


Revision [14559]

Edited on 2010-01-08 22:38:30 by DoS386 [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-( [9]]
Additions:
- **##""ModeX""##** "tuned" 320x240x8bpp VGA mode [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/dos/libfb_gfx_driver_modex.c?view=markup (SVN libfb_gfx_driver_modex.c)]]
- Graphics support was internally redesigned. QB used VGA graphics modes, and wrote directly into the VGA RAM. Multiple pages were available as long as the card supported them. FB uses backbuffers, one per defined page, and copies them to the video RAM (VGA (DOS), VESA (DOS), DirectX (""Win32""), ...) in the background. Graphics commands do work as they used to in QB, but a few notable differences are present:
- There is a thread (""Win32"" and ""Linux"") or ISR (DOS, uses the PIT) active for this.
Deletions:
- **##""ModeX""##** "tuned" VGA modes
- Graphics support was internally redesigned. QB used VGA graphics modes, and wrote directly into the VGA RAM. Multiple pages were available as long as the card supported them. FB uses backbuffers, one per defined page, and copies them to the video RAM (VGA (DOS), VESA (DOS), DirectX (Win32), ...) in the background. Graphics commands do work as they used to in QB, but a few notable differences are present:
- There is a thread (Win32 and Linux) or ISR (DOS, uses the PIT) active for this.


Revision [14552]

Edited on 2010-01-08 22:17:19 by DoS386 [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-( [8]]
Additions:
{{fbdoc item="title" value="GfxLib - FreeBASIC graphics library overview"}}----
Deletions:
{{fbdoc item="title" value="GfxLib - FreeBASIC graphics library overview}}----


Revision [14547]

Edited on 2010-01-08 22:10:32 by DoS386 [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-( [7]]
Additions:
- ##[[KeyPgScreengraphics Screen]]## The QB-like way to set graphics mode
- ##[[KeyPgScreenlist Screenlist]]## Check display modes available for FB ""GfxLib"" to use
- ##[[KeyPgScreenlock Screenlock]]##
- ##[[KeyPgScreenunlock Screenunlock]]##
- ##[[KeyPgScreenptr Screenptr]]## Semi-low level access
- ##[[KeyPgScreenset Screenset]]##
- ##[[KeyPgScreencopy Screencopy]]##
- ##[[KeyPgScreeninfo Screeninfo]]##
- ##[[KeyPgScreenglproc Screenglproc]]##
- ##[[GfxInternalFormats Internal pixel formats]]##
Deletions:
- ##[[KeyPgScreengraphics Screen]]## The QB-like command to set graphics mode
- ##[[KeyPgScreenlist Screenlist]]## List display modes available for FB to use


Revision [14546]

Edited on 2010-01-08 21:59:27 by DoS386 [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-( [6]]
Additions:
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x (crash if not available), fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x ("banding effects"), not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
Deletions:
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. Bug note: FB versions 0.20 and (some ?) 0.18.x crash if not available, fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x, not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]


Revision [14545]

Edited on 2010-01-08 21:57:16 by DoS386 [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-( [5]]
Additions:
""GfxLib"" is the built-in graphics library included in FreeBASIC. As well as re-creating every QuickBASIC graphics command, ""GfxLib"" has built-in commands to handle input from the keyboard and mouse. Major contributors of the library are Lillo, ""CoderJeff"" and DrV.
- **##GDI##** The "safest" one, available in all ""Win32"" versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x, not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- **##VESA banked##** compatible with very old VESA 1.x implementations [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/dos/libfb_gfx_driver_vesa_bnk.c?view=markup (SVN libfb_gfx_driver_vesa_bnk.c)]]
- In DOS, ""GfxLib"" will create and "manage" a mouse arrow if a mouse driver is detected. There is no "official" way to disable this. Also the arrow doesn't react to mouse movements while the screen is locked.
- In DOS, the resolution must match one supported by the graphics card. ""GfxLib"" will try to find an appropriate mode from VGA modes, ""ModeX"" or VESA, preferring VESA LFB interface if available, or banked VESA otherwise. Unsupported resolutions may currently crash the program, though in future ""GfxLib"" may try to find a close match instead. For optimal compatibility, you should support "safe" resolutions like 640x480 and 800x600, and maybe 1024x768. There are various additional modes like 768x576 around, but they are vendor specific and lacking on many other cards. Also modes 1024x768 and above are not available on older cards and laptops.
Deletions:
GfxLib is the built-in graphics library included in FreeBASIC. As well as re-creating every QuickBASIC graphics command, GfxLib has built-in commands to handle input from the keyboard and mouse. Major contributors of the library are Lillo, ""CoderJeff"" and DrV.
- **##GDI##** The "safest" one, available in all Win32 versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x, not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- **##VESA banked##** compatible with very old VESA 1.x implementations
- In DOS, GfxLib will create and "manage" a mouse arrow if a mouse driver is detected. There is no "official" way to disable this. Also the arrow doesn't react to mouse movements while the screen is locked.
- In DOS, the resolution must match one supported by the graphics card. GfxLib will try to find an appropriate mode from VGA modes, ""ModeX"" or VESA, preferring VESA LFB interface if available, or banked VESA otherwise. Unsupported resolutions may currently crash the program, though in future GfxLib may try to find a close match instead. For optimal compatibility, you should support "safe" resolutions like 640x480 and 800x600, and maybe 1024x768. There are various additional modes like 768x576 around, but they are vendor specific and lacking on many other cards. Also modes 1024x768 and above are not available on older cards and laptops.


Revision [14544]

Edited on 2010-01-08 21:53:50 by DoS386 [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-( [4]]
Additions:
- ""Win32"":
- **##GDI##** The "safest" one, available in all Win32 versions. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x, not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
Deletions:
- ""Win32"":
- **##GDI##** The safest one. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x, not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]


Revision [14543]

Edited on 2010-01-08 21:52:07 by DoS386 [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-( [3]]
Additions:
- **##DirectX##** The default selection of FB ""GfxLib"". May not be available on old Windows installations. Bug note: FB versions 0.20 and (some ?) 0.18.x crash if not available, fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
Deletions:
- **##DirectX##** The default selection of FB GfxLib. May not be available on old Windows installations. Bug note: FB versions 0.20 and (some ?) 0.18.x crash if not available, fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]


Revision [14542]

Edited on 2010-01-08 21:51:30 by DoS386 [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-( [2]]
Additions:
GfxLib is the built-in graphics library included in FreeBASIC. As well as re-creating every QuickBASIC graphics command, GfxLib has built-in commands to handle input from the keyboard and mouse. Major contributors of the library are Lillo, ""CoderJeff"" and DrV.
- **##DirectX##** The default selection of FB GfxLib. May not be available on old Windows installations. Bug note: FB versions 0.20 and (some ?) 0.18.x crash if not available, fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
Deletions:
GfxLib is the built-in graphics library included in FreeBASIC. As well as re-creating every QuickBASIC graphics command, GfxLib has built-in commands to handle input from the keyboard and mouse. Major contributors of the library are Lillo, CoderJeff and DrV.
- **##DirectX##** The default selection of FB Gfx. May not be available on old Windows installations. Bug note: FB versions 0.20 and (some ?) 0.18.x crash if not available, fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]


Revision [14541]

Edited on 2010-01-08 21:49:43 by DoS386 [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-(]
Additions:
{{fbdoc item="title" value="GfxLib - FreeBASIC graphics library overview}}----
GfxLib is the built-in graphics library included in FreeBASIC. As well as re-creating every QuickBASIC graphics command, GfxLib has built-in commands to handle input from the keyboard and mouse. Major contributors of the library are Lillo, CoderJeff and DrV.
The library supports various drivers depending on the platform:
- All:
- **##Null##** Does nothing. Purpose = ??? [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/libfb_gfx_driver_null.c?view=markup (SVN libfb_gfx_driver_null.c)]]
- ""Win32"" and ""Linux"":
- **##OpenGL##**
- ""Win32"":
- **##DirectX##** The default selection of FB Gfx. May not be available on old Windows installations. Bug note: FB versions 0.20 and (some ?) 0.18.x crash if not available, fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- **##GDI##** The safest one. Bug note: broken in FB versions 0.20 and (some ?) 0.18.x, not fixed in 0.21 SVN. [[http://www.freebasic.net/forum/viewtopic.php?p=106600#106600 (forum discussion: p=106600)]]
- ""Linux"":
- **##???##**
- DOS:
- **##BIOS##** [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/dos/libfb_gfx_driver_bios.c?view=markup (SVN libfb_gfx_driver_bios.c)]]
- **##""ModeX""##** "tuned" VGA modes
- **##VESA banked##** compatible with very old VESA 1.x implementations
- **##VESA linear##** needs VESA version at least 2.0, usually faster than banked VESA [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/dos/libfb_gfx_driver_vesa_lin.c?view=markup (SVN libfb_gfx_driver_vesa_lin.c)]]
- **##VGA##** [[http://fbc.svn.sourceforge.net/viewvc/fbc/trunk/FreeBASIC/src/gfxlib2/dos/libfb_gfx_driver_vga.c?view=markup (SVN libfb_gfx_driver_vga.c)]]
- Bug note: [[KeyPgPalette Palette]] doesn't work well [[http://freebasic.net/forum/viewtopic.php?t=12691 (forum discussion: t=12691)]]
##[[KeyPgScreencontrol Screencontrol]]## can be used (SET_DRIVER_NAME 103) to override the default driver preferences.
{{fbdoc item="target"}}
- In DOS, GfxLib will create and "manage" a mouse arrow if a mouse driver is detected. There is no "official" way to disable this. Also the arrow doesn't react to mouse movements while the screen is locked.
- In DOS, Windowing and OpenGL related commands and switches are not available.
- In DOS, the resolution must match one supported by the graphics card. GfxLib will try to find an appropriate mode from VGA modes, ""ModeX"" or VESA, preferring VESA LFB interface if available, or banked VESA otherwise. Unsupported resolutions may currently crash the program, though in future GfxLib may try to find a close match instead. For optimal compatibility, you should support "safe" resolutions like 640x480 and 800x600, and maybe 1024x768. There are various additional modes like 768x576 around, but they are vendor specific and lacking on many other cards. Also modes 1024x768 and above are not available on older cards and laptops.
{{fbdoc item="diff"}}
- Graphics support was internally redesigned. QB used VGA graphics modes, and wrote directly into the VGA RAM. Multiple pages were available as long as the card supported them. FB uses backbuffers, one per defined page, and copies them to the video RAM (VGA (DOS), VESA (DOS), DirectX (Win32), ...) in the background. Graphics commands do work as they used to in QB, but a few notable differences are present:
- The background screen updating eats a considerable amount of CPU performance.
- There is a thread (Win32 and Linux) or ISR (DOS, uses the PIT) active for this.
- Mixing FB's graphics support with low-level screen accesses (VGA) is absolutely prohibited, even in DOS, OTOH semi-low-level can be done using Screenptr and Screenlock, and is even portable. In DOS VGA and VESA are still available, but can't be mixed with FB's graphics support.
- ##[[KeyPgScreengraphics Screen]]## The QB-like command to set graphics mode
- ##[[KeyPgScreenres Screenres]]## More flexible alternative to ##**Screen**##
- ##[[KeyPgScreenlist Screenlist]]## List display modes available for FB to use
- ##[[KeyPgScreencontrol Screencontrol]]## Select driver and more
{{fbdoc item="back" value="DocToc|Table of Contents"}}
{{fbdoc item="back" value="CatPgProgrammer|Programmer's Guide"}}
Deletions:
{{fbdoc item="title" value="GfxLib"}}----
GfxLib is the built-in graphics library included in FreeBASIC. As well as re-creating every QuickBASIC graphics command, GfxLib has built-in commands to handle input from the keyboard and mouse.


Revision [8317]

The oldest known version of this page was created on 2007-02-21 14:41:23 by JeffMarshall [Trying to turn a useless page into a useful one :-) | Make a note of the BUG's :-(]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki



sf.net phatcode