Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/interkosmos/eggx-procall-2003
Fortran 2003 interfaces to the X11 graphics library EGGX/ProCALL
https://github.com/interkosmos/eggx-procall-2003
eggx fortran graphics plotting procall x11
Last synced: 21 days ago
JSON representation
Fortran 2003 interfaces to the X11 graphics library EGGX/ProCALL
- Host: GitHub
- URL: https://github.com/interkosmos/eggx-procall-2003
- Owner: interkosmos
- License: isc
- Created: 2021-01-04T18:39:58.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-11-19T15:49:34.000Z (about 3 years ago)
- Last Synced: 2024-11-08T03:09:41.049Z (2 months ago)
- Topics: eggx, fortran, graphics, plotting, procall, x11
- Language: Fortran
- Homepage:
- Size: 5.88 MB
- Stars: 9
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# EGGX/ProCALL 2003
Modern Fortran modules that contain interfaces to the free X11 graphics
library [EGGX/ProCALL](https://www.ir.isas.jaxa.jp/~cyamauch/eggx_procall/).
The EGGX/ProCALL library provides fast and simple drawing routines on Linux,
Unix, and Cygwin, directly callable from C or FORTRAN 77.EGGX/ProCALL 2003 is a wrapper around EGGX/ProCALL that includes:
* Fortran 90 interfaces to the FORTRAN 77 ProCALL subroutines (module `procall`).
* Selected Fortran 2003 ISO C binding interfaces to C functions in EGGX that do not have a FORTRAN counterpart (module `eggx`).
* Named parameters of key codes, colour palettes, and output formats.## Build Instructions
Simply clone the GitHub repository and execute the Makefile:```
$ git clone https://github.com/interkosmos/eggx-procall-2003
$ cd eggx-procall-2003/
$ make
```The EGGX/ProCALL 0.95 source code is included in directory `vendor/eggx-0.95/`.
Link your Fortran application with `vendor/eggx-0.95/libeggx.a`,
`libeggx2003.a`, and `-lX11`, for instance:```
$ gfortran -o demo demo.f90 libeggx.a libeggx2003.a -lX11
```## Examples
See directory `examples/` for some demo applications:* **julia** draws the Julia set.
* **mandelbrot** draws the Mandelbrot set.
* **munch** renders a graphical pattern.
* **peano** draws a [Peano curve](https://rosettacode.org/wiki/Peano_curve).
* **snake** sprites-based implementation of the snake game.
* **starfield** lets you fly through a starfield.
* **tiles** draws text and a tileset to screen.
* **wireframe** renders the 3D model of a Tie-Figher.Compile all programs with:
```
$ make examples
```Or, use the name of a particular example. Run each program from its respective
directory:```
$ make
$ cd examples//
$ ./
```## Screen Shots
![Screen Shots](screenshots.png)## Documentation
For the official documentation, see the PDF file
[vendor/eggx-0.95/eggx_procall.pdf](vendor/eggx-0.95/eggx_procall.pdf).Generate the source code documentation with
[FORD](https://github.com/cmacmackin/ford). Add FORD with `pip`, for example:```
$ python3 -m venv virtual-environment/
$ source virtual-environment/bin/activate
$ python3 -m pip install ford
```Or, instead, just install the package in your user directory:
```
$ python3 -m pip install --user ford
```Then, run:
```
$ ford project.md -d ./src
```Open `doc/index.html` in a web browser.
## Coverage
### ProCALL| FORTRAN 77 routine | Fortran 2003 interface |
|--------------------|------------------------|
| arc | arc |
| arohd | arohd |
| circ1 | circ1 |
| clsc | clsc |
| clsx | clsx |
| copylayer | copylayer |
| drawarc | drawarc |
| drawarrow | drawarrow |
| drawcirc | drawcirc |
| drawline | drawline |
| drawlines | drawlines |
| drawnum | drawnum |
| drawpoly | drawpoly |
| drawpts | drawpts |
| drawrect | drawrect |
| drawstr | drawstr |
| drawsym | drawsym |
| drawsyms | drawsyms |
| fillarc | fillarc |
| fillcirc | fillcirc |
| fillpoly | fillpoly |
| fillrect | fillrect |
| gclose | gclose |
| gcloseall | gcloseall |
| gclr | gclr |
| ggetch | ggetch |
| ggetdisplayinfo | ggetdisplayinfo |
| ggetevent | ggetevent |
| ggetxpress | ggetxpress |
| gopen | gopen |
| gsetbgcolor | gsetbgcolor |
| gsetnonblock | gsetnonblock |
| isnan | isnan |
| layer | layer |
| line | line |
| lineto | lineto |
| makecolor | makecolor |
| moveto | moveto |
| msleep | msleep |
| newcolor | newcolor |
| newcoordinate | newcoordinate |
| newfontset | newfontset |
| newhsvcolor | newhsvcolor |
| newlinestyle | newlinestyle |
| newpen | newpen |
| newpencolor | newpencolor |
| newrgbcolor | newrgbcolor |
| newwindow | newwindow |
| number | number |
| plot | plot |
| plots | plots |
| pset | pset |
| putimg24 | putimg24 |
| rtoc | rtoc |
| saveimg | saveimg |
| selwin | selwin |
| setal | setal |
| symbol | symbol |
| tclr | tclr |
| vport | vport |
| window | window |### EGGX
| C function | Fortran 2003 interface |
|--------------------|------------------------|
| gputimage | eggx_gputimage |
| winname | eggx_winname |## Licence
GNU GPL (EGGX/ProCALL), ISC (EGXX/ProCALL 2003)