
+ Preface +++
JSFBGL (i.e. Javascript framebuffer graphics library) is considered as an
art/fun project. So do not take it too seriously. Since all the webV2.0/AJAX hype
which is going on atm I started to think about a way to produce graphics with
javascript. And this is the result. I don't know if this is the most efficient way
- but it works as a proof of concept.
The library is open source and licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.0 License. So
feel free to send me your optimizations and ideas of the library.
+ Technique +++
The library uses html-tables as the actual screen buffer. Each cell of the
table represents a pixel. What it does when you draw a pixel for example is
just changing the background color of the cell.
The core of the engine supplies some basic instructions (like plot(), drawLine())
to modify the buffer. The rest is up to you ;-)
The code is successfully tested on Mozilla/5.0 (Windows) Gecko/20060909 Firefox/1.5.0.7
and InternetExplorer 6.0 (Windows).
In the end, html-tables are not mend to be used in the way this library uses them.
This technique is more like a hack and very cpu-consuming. So please keep
that in mind and try to keep the cpu usage as low as possible (i.e. small framebuffers,
efficient algorithms et cetera)!
+ Gallery +++
Some examples written with jsfbgl. Click on the screenshots and the corresponding
effect pops up!
| Title | TV-Noise effect |
| Author | benny! |
| Description | Faked tv-noise signal effect. |
| Title | 2D-Starfield |
| Author | benny! |
| Description | Horizontal scrolling starfield. |
| Title | Fire |
| Author | benny! |
| Description | A simple fire effect. |
| Title | Pixelfade |
| Author | benny! |
| Description | Pixelwise fading between two different pictures. |
| Title | Snake |
| Author | benny! |
| Description | The traditional snake game realized with jsfbgl. |
Feel free to send me your creations and I will add them here.
+ Final words +++
Please do not hesitate to send me feedback. Any feature request,
bug report or any other thought about this project is appreciated.
Have fun using it!
