[Gambas-user] SDL component documentation

kevinfishburne kevinfishburne at ...1887...
Wed Dec 16 07:05:07 CET 2009



Fabien Bodard-4 wrote:
> 
> gb.sdl is incomplete ... in fact Laurent have begin to redraw all the
> gb.sdl lib by using OpenGl... but ... still incomplete ... i think the
> lack of users on this lib mess his enthusiasm
> 

Hi Fabien, I agree with your comments. I'm guessing that GAMBAS 3 is still
in alpha/beta since I haven't seen any releases on the download page. I am
looking forward to it and hope it's fairly downward-compatible so GAMBAS 2
apps will run in it.

That's good to hear that the new SDL component will be rewritten using
OpenGL. I think the only thing GAMBAS is currently missing is a robust
high-level 2D and 3D graphics library. While an OpenGL wrapper is cool,
having to write 10 or more lines of code to create a single polygon probably
doesn't help most people. I think it's also important to consider that
GAMBAS need not necessarily implement literal wrappers for SDL or OpenGL,
but rather its own unique flavor of 2D and 3D routines aimed squarely at
delivering practical and efficient results.

The spirit of GAMBAS surely is to write effective apps quickly and with
respect to modern object-oriented programming conventions, all using a
language that is easy and familiar to BASIC-loving developers. In that
spirit a higher-level graphics component fits right in. Here's my two cents
for what a 2D graphics library might include:

* Graphics Buffers
** Allow creation of buffers in video memory (hardware accelerated) to store
images
** Allow multiple buffers with different properties
*** Define width and height
*** Define RGB bit-depth (8, 16, 24, 32, etc.)
*** Define alpha-channel bit-depth (0, 2, 4, 8, etc.)

* Image Loading
** Allow loading of different file types into a graphics buffer (PNG, GIF,
JPG, etc.)
** Allow loading file into specific location (x1,y1) of the buffer

* Bit Blitting
** Allow copying one region of a graphics buffer (x1,y1,x2,y2) to another
graphics buffer (x1,y1)
** Allow arbitrary rotation when copying a region from one buffer to another
** Allow arbitrary scaling when copying a region from one buffer to another
** Allow "downsampling" and "upsampling" when copying a region to a buffer
with a different bit-depth
** Allow global alpha modifier multiplied by the existing region's alpha
channel (will allow a region to be faded in or faded out, preserving its
existing alpha channel)

* Effects Processing
** Allow various effects (brightness, contrast, hue, saturation, gaussian
blur, etc.)
** Allow the results of the effects, when necessary, to extend beyond the
region in the buffer they were applied to

I think a 2D graphics component is far more useful than a 3D component, as
it will appeal to a wider developer base. 3D graphics require more work and
more skill, therefore most programmers would be more adept at 2D graphics
than 3D. While 3D is important, it should be relegated to being more
seriously-developed only after a robust 2D library has been implemented.

I wish I could contribute more but will have to settle for posting in the
forums and developing GAMBAS apps that hopefully people will find useful or
fun. I'm very good at graphics and documentation, so if anyone has any tasks
that need to be done that they think I could do (or help me do by acting as
an intermediary with the source code) please let me know.

-----
Kevin Fishburne, Eight Virtues
www:  http://sales.eightvirtues.com http://sales.eightvirtues.com 
e-mail:  mailto:sales at ...1887... sales at ...1887... 
phone: (770) 853-6271
-- 
View this message in context: http://old.nabble.com/SDL-component-documentation-tp26603936p26806675.html
Sent from the gambas-user mailing list archive at Nabble.com.





More information about the User mailing list