351 lines
11 KiB
Text
351 lines
11 KiB
Text
Welcome to GRX 2.4.9!
|
|
|
|
GRX is a 2D graphics C library originaly written by Csaba Biegl for
|
|
DJ Delorie's DOS port of the GCC compiler. Now it support a big range
|
|
of platforms.
|
|
|
|
|
|
Supported platforms
|
|
===================
|
|
|
|
Directly supported platforms:
|
|
-----------------------------
|
|
|
|
Currently GRX directly supports the following four platforms:
|
|
|
|
DOS / DJGPP v>=2.03 EGA, VGA and VESA drivers
|
|
Linux / console svgalib and framebuffer drivers
|
|
Linux / X11R6 xwin driver (windowed) and SDL (full screen)
|
|
Win32 / Mingw win32 driver (windowed) and SDL (full screen)
|
|
|
|
The Linux console framebuffer driver is new from GRX 2.4.2.
|
|
The SDL driver, compiled separately, is new from GRX 2.4.7.
|
|
Both i386 and x86_64 architectures are supported for the linux
|
|
console and the linux X11 versions. See below.
|
|
|
|
Other DOS platforms:
|
|
--------------------
|
|
|
|
Makefiles for Borland C++ have been updated in GRX 2.4.6
|
|
|
|
Until 2.3 the Watcom C++ compiler was supported, probably it still work,
|
|
but the makefiles must be updated:
|
|
|
|
Other X11 platforms:
|
|
--------------------
|
|
|
|
GRX should work on any X11R5 (or later) system after a few changes
|
|
in "makedefs.grx"
|
|
|
|
New in GRX 2.4.6 is a DGA (Direct Graphics Access) driver for Xfree86,
|
|
experimental, not compiled by default, it must be enabled editing
|
|
the "makedefs.grx" file.
|
|
|
|
New in GRX 2.4.7 is a SDL driver. Compiled separately after editing
|
|
the "makedefs.grx" file, SDL section, EP=x .
|
|
|
|
Other Win32 platforms:
|
|
----------------------
|
|
|
|
GRX is reported to compile with MSVC, and there is support in the source
|
|
files, so you only need to generate the project files.
|
|
|
|
New in GRX 2.4.7 is a SDL driver. Compiled separately after editing
|
|
the "makedefs.grx" file, SDL section, EP= .
|
|
|
|
Other Win32 compilers may probably work.
|
|
|
|
Other platforms:
|
|
----------------
|
|
|
|
Some people has ported GRX to embeded devices. For this you need a good
|
|
understanding of GRX internals.
|
|
|
|
|
|
GRX installation instructions
|
|
=============================
|
|
|
|
Requirements:
|
|
-------------
|
|
|
|
The source files and fonts: grx249.tar.gz or grx249.zip
|
|
This document: readme
|
|
|
|
A. Unpacking the GRX archive
|
|
----------------------------
|
|
|
|
1) Choose and download the .tar.gz or .zip package. You can use either.
|
|
The .zip is intended for dos and win32 users, specialy for DJGPP users,
|
|
because it expand to the contrib subdir and has manifest files.
|
|
|
|
2) 'cd' to a directory where you want the GRX file tree to be created
|
|
as a subdirectory. Examples are:
|
|
|
|
DJGPP : C:\DJGPP\
|
|
Mingw : C:\MINGW\
|
|
Linux : /usr/local/src/
|
|
|
|
3) unpack the GRX archive:
|
|
|
|
tar xzvf grx249.tar.gz (1)
|
|
or
|
|
unzip grx249.zip (2)
|
|
|
|
(1) This will create the subdirectory 'grx249'.
|
|
(2) This will create the subdirectory 'contrib/grx249'.
|
|
|
|
B. Compiling GRX
|
|
----------------
|
|
|
|
1) Go to GRX base dir and edit "makedefs.grx" to customize it for
|
|
your system.
|
|
|
|
2) Switch to "src" sub dir
|
|
|
|
3) run 'make -f <your makefile>':
|
|
|
|
makefile.dj2 for DOS/DJGPPv2
|
|
makefile.w32 for Win32/Mingw
|
|
makefile.lnx for Linux/console
|
|
makefile.x11 for Linux/X11
|
|
makefile.sdl for SDL driver on MingW and X11
|
|
|
|
This process generates the GRX lib in the "lib/---" (where --- is
|
|
dj2, w32, lnx, x11) subdir and some utility programs in the
|
|
"bin" subdir.
|
|
|
|
Note for DJGPP/Mingw users: If you set in makedefs.grx HAVE_UNIX_TOOLS=n
|
|
do _not_ use an environment variable `SHELL' leading to `bash', e.g.
|
|
`SHELL=/djgpp/bin/bash.exe'. For mingw use mingw32-make instead of make.
|
|
Some parts of the DJGPP/Mingw Makefiles with this option require
|
|
`command.com'. If you set HAVE_UNIX_TOOLS=y (i.e. work under bash
|
|
for djgpp or msys for mingw32), there are no problems.
|
|
|
|
Note for Linux/console users: At the end you must become root and
|
|
run 'make -f makefile.lnx setsuid' in order to set de suid flag of
|
|
the modetest utility program. (This is required by the SVGALIB
|
|
video driver).
|
|
|
|
C. Testing GRX
|
|
--------------
|
|
|
|
1) Switch to "test" sub dir
|
|
|
|
2) run 'make -f <your makefile>'
|
|
|
|
3) run the 'demogrx' program
|
|
|
|
4) Switch to "test/bgi" sub dir
|
|
|
|
5) run 'make -f <your makefile>'
|
|
|
|
6) run the 'bccbgi' program
|
|
|
|
Note for Linux/console users: you must compile test programs as root.
|
|
(This is required by the SVGALIB video driver).
|
|
|
|
D. Installing GRX lib for your compiler
|
|
---------------------------------------
|
|
|
|
You'll either need to 1: copy some GRX files to places where your compiler
|
|
will find them or 2: change your compiler setup so it will find the GRX
|
|
files in there default place.
|
|
|
|
1) Copy the library from <GRX base>/lib/<your system> to the compiler
|
|
library directory.
|
|
Copy the header files from <GRX base>/include to your compiler include
|
|
directory.
|
|
|
|
Or you can let makefiles do it for you, switch to "src" sub dir and
|
|
run 'make -f <your makefile> install'. You can uninstall the library
|
|
running 'make -f <your makefile> uninstall'.
|
|
|
|
Note for Linux users: probably you must be root to do that. Don't forget
|
|
to run 'ldconfig' to register the shared libraries.
|
|
|
|
2) See compiler documentation. Either change the default compiler behaviour
|
|
(eg., change djgpp.env) or use command line switches to tell the
|
|
compiler where to find the GRX files.
|
|
|
|
E. Installing GRX utility programs
|
|
----------------------------------
|
|
|
|
Run 'make -f <your makefile> install-bin'
|
|
|
|
You can uninstall them running 'make -f <your makefile> uninstall-bin'
|
|
|
|
Note for Linux users: probably you must be root to do that.
|
|
|
|
F. Installing GRX fonts
|
|
-----------------------
|
|
|
|
Only if you have defined a default font directory in "makedefs.grx"
|
|
you can install them running 'make -f <your makefile> install-fonts'
|
|
|
|
You can uninstall them running 'make -f <your makefile> uninstall-fonts'
|
|
|
|
Note for Linux users: probably you must be root to do that.
|
|
|
|
G. Installing GRX info doc
|
|
--------------------------
|
|
|
|
Except for the 'w32' target you can install the GRX info doc in your
|
|
info tree. Run 'make -f <your makefile> install-info'
|
|
|
|
You can uninstall them running 'make -f <your makefile> uninstall-info'
|
|
|
|
Note for Linux users: probably you must be root to do that.
|
|
|
|
|
|
Support for the x86_64 architecture
|
|
===================================
|
|
|
|
By default, on linux, the makefiles build the library for the i386
|
|
architecture even in a x86_64 cpu. To build the x86_64 library (in
|
|
a x86_64 compatible cpu of course) you must set to 'y' the BUILD_X86_64
|
|
variable in the makedefs.grx file.
|
|
|
|
Alternate installation by a Configure script
|
|
============================================
|
|
|
|
For people who know how to use it, a configure script is provided,
|
|
run './configure --help' to show the options.
|
|
|
|
|
|
Environment variables for using GRX programs
|
|
============================================
|
|
|
|
1) set the default driver and graphics mode info (very useful but not
|
|
required), in DOS or Windows:
|
|
|
|
SET GRX20DRV=<driver> gw <width> gh <height> nc <colors>
|
|
|
|
in Linux:
|
|
|
|
export GRX20DRV="<driver> gw <width> gh <height> nc <colors>"
|
|
|
|
Available drivers are for:
|
|
|
|
DOS : herc, stdvga, stdega, et4000, cl5426, mach64,
|
|
ati28800, s3, VESA, memory
|
|
Linux: svgalib, linuxfb, memory
|
|
X11 : xwin, memory
|
|
Win32: win32, memory
|
|
|
|
There is also a sdl driver for x11 and win32, compiled separately.
|
|
In this case GRX20DRV="sdl::fs" gives full screen, GRX20DRV="sdl::ww"
|
|
gives windowed graphics. You can also change inside a program:
|
|
see test/fswwtest.c.
|
|
|
|
Values for gw and gh can be by example 640,480 or 800,600
|
|
Values for nc can be 2, 16, 256, 64K or 16M.
|
|
|
|
2) set the GRX font dir, in DOS or Windows:
|
|
|
|
SET GRXFONT=<directory for the GRX fonts>
|
|
|
|
in linux:
|
|
|
|
export GRXFONT=<directory for the GRX fonts>
|
|
|
|
This is required for GRX graphics text output. Path: <GRX base>/fonts
|
|
|
|
NOTE: You can define a default font directory when compiling GRX.
|
|
Check the "makedefs.grx" file.
|
|
|
|
3) the linux framebuffer driver opens the "/dev/fb0" device file by
|
|
default, if you want to open an alternate device file, set the
|
|
$FRAMEBUFFER environment variable:
|
|
|
|
export FRAMEBUFFER=<device file>
|
|
|
|
|
|
Suidroot in the Linux console platform
|
|
======================================
|
|
|
|
You know setting suidroot is a security flaw, if you want your grx linux
|
|
console program really portable yo have not options, because the svgalib
|
|
stable version requires it. But if you really wants a suidroot aware
|
|
libgrx you can modify makedefs.grx to obtain:
|
|
|
|
* a framebuffer only linux console libgrx version
|
|
|
|
* a libgrx version without some framedrivers than do direct in/out port,
|
|
so you can link it with the svgalib alpha version (1.9.x) that not
|
|
requires suidroot.
|
|
|
|
|
|
Pascal users
|
|
============
|
|
|
|
GRX has a Pascal interface (gpc), if you plan to use it don't forget
|
|
next steps before compiling:
|
|
|
|
1) Activate INCLUDE_GPC_SUPPORT editing the "makedefs.grx" file.
|
|
|
|
2) Edit the files pascal/grx.pas and pascal/bgi/graph.pas to uncomment
|
|
the '{.$L ...}' directives (near the beginning) to load the auxiliary
|
|
libraries (tiff, jpeg, png, z and socket) you need.
|
|
|
|
Alternatively you can use the configure script.
|
|
|
|
See the "pascal/readme" file for other details.
|
|
|
|
|
|
Help
|
|
====
|
|
|
|
Read the user's guide in the "doc/grx249um.htm" file. If you ran
|
|
'make <your makefile> install-info', just type 'info grx' to view
|
|
the info version of the manual.
|
|
|
|
If you have problems installing or running GRX check
|
|
|
|
http://www.gnu.de/software/GRX/
|
|
|
|
for updates, pre-compiled libs, ...
|
|
|
|
If this doesn't help, check your system/compiler FAQ (eg., the
|
|
DJGPP v2 FAQ is at http://www.delorie.com/djgpp/v2faq)
|
|
|
|
Check the GRX mailing list archive at
|
|
http://grx.gnu.de/archive/grx/en/
|
|
|
|
Check out the DJGPP newsgroup comp.os.msdos.djgpp (archive at
|
|
http://www.delorie.com/djgpp/mail-archives/ )
|
|
|
|
Send a problem report to comp.os.msdos.djgpp or to the GRX mailing
|
|
list <grx@gnu.de> (see below).
|
|
|
|
There is a GRX mailing list <grx@gnu.de> and a separate, moderated
|
|
mailing list for GRX announcements <grx-announce@gnu.de>. To
|
|
subscribe to one of the lists, send an email containing "subscribe
|
|
grx" or "subscribe grx-announce" in the body to <majordomo@gnu.de>.
|
|
(The subject will be ignored.)
|
|
|
|
|
|
License
|
|
=======
|
|
|
|
The GRX graphics library is free software; you can redistribute it
|
|
and/or modify it under some conditions; see the "copying.grx" file
|
|
for details.
|
|
|
|
|
|
Credits
|
|
=======
|
|
|
|
I am maintainig GRX now by accident, but if GRX is a so good library
|
|
it is thanks to:
|
|
|
|
Csaba Biegl <csaba@vuse.vanderbilt.edu> who wrote it.
|
|
Michael Goffioul <goffioul@emic.ucl.ac.be> who released 2.1
|
|
Hartmut Schirmer <hsc@techfak.uni-kiel.de> who released 2.2 and 2.3
|
|
Peter Gerwinski <peter@gerwinski.de> released GRX 2.3.1 and 2.3.2.
|
|
Mariano Alvarez Fernandez <malfer@telefonica.net> who released 2.3.3-4 and 2.4.0-6.
|
|
|
|
and other people, see the "doc/credits.doc" for details.
|
|
|
|
|
|
Enjoy, M. Lombardi <Maurice.Lombardi@ujf-grenoble.fr>
|
|
|