FreeBASIC Extended Library Release 0.2.2

Headers, Bindings, Libraries for use with FreeBASIC, Please include example of use to help ensure they are tested and usable.
Post Reply
sir_mud
Posts: 1401
Joined: Jul 29, 2006 3:00
Location: US
Contact:

FreeBASIC Extended Library Release 0.2.2

Post by sir_mud »

The goal of the FreeBASIC Extended Library is to provide free peer-reviewed portable
FreeBASIC source libraries. It includes many commonly used functions written by the
community and licensed under a BSD style license to ensure maximum usage. The source
is reviewed prior to inclusion for bugs and is constantly monitored to ensure changes
do not introduce new bugs into existing code. All community members are encouraged to
contribute to the library. In an upcoming release the library will be split into a
"core" library containing common and basic functionality upon which there will be
several "modules" that implement various functions.

Information Portal: http://hmcsoft.org/ext/
Download Page: http://code.google.com/p/fb-extended-lib/
Documentation: http://hmcsoft.org/ext/docs/

The current version is 0.2.2.
This version supports Windows and Linux fully, and DOS with some exceptions (noted in the documentation).

This release fixes several bugs, introduces new functionality and refines existing functionality.
All users are recommended to upgrade. New in this release is thread safety in (some) classes. Eventually all applicable classes will be thread safe. Also new is the review section containing new code that's not quite ready for release (or not working at all).

Here is a brief rundown of some of the features of the Extended Library by category:

Code: Select all

    * Graphics
          o Ability to load TTF fonts to a Draw String compatible buffer.
          o Full Featured Sprite class with Pixel-Perfect collision checking.
          o Image Rotation.
          o Loads BMP, PNG and JPG images. 

    * File I/O
          o Built-in simple XML library. 

    * Generic Container Classes
          o Included is a linked list, array, stack, queue and hash table.
          o Automatic memory management.
          o Support for built-in types as well as user-defined types. 

    * Generic Algorithms
          o Included are copy, find, fill, transform, among many others.
          o Sorting algorithms include bubble, gnome and qsort.
          o Support for arrays of built-in types as user-defined types. 

    * Strings
          o A variable-length ASCII-character string class, supporting search and replace, reverse, split, among many others.
          o Many string operations including search and replace, reverse and split. 

    * Maths
          o 2D, 3D and 4D user-friendly vector classes.
          o 4x4 matrix class. 

    * Debugging
          o Powerful debugging features including a built-in memory leak detector. 
For those worrying about exe bloat, we compile the library so that only what you use
is linked in to your final exe.

This version has been under development for more than a month and we reccomend all users update to this version.

I'd personally like to thank stylin, Dr_D and MindlessXD for the time they've all spent
working to make this a great project.

I'd also love to thank our contributors: DrV, yetifoot and cha0s.

There are several ways to get in contact with us:

e-mail: fb-ext-lib@googlegroups.com
IRC: #freebasic-ext on the Freenode network

Either of those places would be a good place to go/ask if you would like to contribute
code or join our team.

Thanks for your time, I hope you enjoy the effort we've put into this library.

We've made a couple badges suitable for use on a website for our users if they would like:
Image
Image

~ sir_mud and the entire FreeBASIC Extended Library Development Team

P.S. v1ctor, if you don't want me using the current logo incorporating the FreeBASIC logo
I will remove it and replace it with something else.

Image
Last edited by sir_mud on May 08, 2008 1:12, edited 6 times in total.
anonymous1337
Posts: 5494
Joined: Sep 12, 2005 20:06
Location: California

Post by anonymous1337 »

This project is really interesting to me and I know a lot of other members of the community already. It's quite awesome.
Imortis
Moderator
Posts: 1924
Joined: Jun 02, 2005 15:10
Location: USA
Contact:

Post by Imortis »

Looks great... How does one submit to this fine project?
If your interested, I wrote a simple boolean type not long ago.
SotSvart
Posts: 262
Joined: May 27, 2005 9:03
Location: Norway
Contact:

Post by SotSvart »

Great project, this is something very usefull!
Good work =)
Dr_D
Posts: 2451
Joined: May 27, 2005 4:59
Contact:

Post by Dr_D »

Don't forget that this has some pretty cool vector/matrix classes. It includes things like matrix inverse, axis angle, built in vector dot/cross product, etc...

Here's how some of it works. :)

Code: Select all

dim as matrix mat1, mat2
mat1.load_identity
mat1.translate(1,2,3)
mat1.rotate(45,67,19)
mat2*=mat1

dim as vector3d v1, v2

v1*=mat1
v2=v1*mat2.inverse*mat1.forward+mat2.position

mat1.lookat( v1,v2,type<vector3d>(0,1,0))
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Post by D.J.Peters »

cool idea a central lib

tip: give it the right names from beginning

examples:
MATRIX3x3 = 3x3 single
MATRIX3x3D = 3x3 double
MATRIX4x4 = 4x4 single
MATRIX4x4D = 4x4 double
...

VECTOR2 = x,y single
VECTOR2D = x,y double
VECTOR3 = x,y,z single
VECTOR3D = x,y,z double
VECTOR4 = x,y,z,w single
VECTOR4D = x,y,z,w double
...

or use diffrent namespaces

using Ext.Math.Single
using Ext.Math.Double
using Ext.Math.Fixed

or

using Ext.Math
using Ext.MathD

same for projection (matrix)
using Ext.Math.ProjetionLeftHand
using Ext.Math.ProjetionRightHand
...

Joshy
notthecheatr
Posts: 1759
Joined: May 23, 2007 21:52
Location: Cut Bank, MT
Contact:

Post by notthecheatr »

Brilliant, now there's no need to re-invent the wheel anymore :D
PeterHarder
Posts: 32
Joined: May 27, 2005 23:51
Location: Germany
Contact:

Post by PeterHarder »

I added your homepage url to the "freebasic top 50 site" because of your great code project!

They told you schoud put the following code to your site:

<a href="http://www.fbtop50.com/"><img src="http://www.fbtop50.com/button.php?u=PeterHarder" alt="FreeBasic Top 50" border="0" /></a>

Maybe you must renew the announcement if you want to put your name in it.

Regards and take care

Peter
Lachie Dazdarian
Posts: 2338
Joined: May 31, 2005 9:59
Location: Croatia
Contact:

Post by Lachie Dazdarian »

Erm....why nobody informed me to add my sites to FBTop50? :P

What's the procedure?

Sites:
http://lachie.phatcode.net
http://games.freebasic.net
sir_mud
Posts: 1401
Joined: Jul 29, 2006 3:00
Location: US
Contact:

Post by sir_mud »

New release is out, details in first post.

*edit*
The changes in this release are far too many to list here, for full details i would reccomend reading the svn logs
badmrbox
Posts: 664
Joined: Oct 27, 2005 14:40
Location: Sweden
Contact:

Post by badmrbox »

Lachie Dazdarian wrote:Erm....why nobody informed me to add my sites to FBTop50? :P

What's the procedure?

Sites:
http://lachie.phatcode.net
http://games.freebasic.net
You go to http://www.fbtop50.com/ and click join. There after you input some information and get some code you put on homepage.
anonymous1337
Posts: 5494
Joined: Sep 12, 2005 20:06
Location: California

Post by anonymous1337 »

Been a few days. Everyone should really check out FB-ext. I found its rotation and image code to be really useful so far. There's *tons* of other stuff, of course, but I haven't gotten to those just yet.
Imortis
Moderator
Posts: 1924
Joined: Jun 02, 2005 15:10
Location: USA
Contact:

Post by Imortis »

anonymous1337 wrote:Been a few days. Everyone should really check out FB-ext. I found its rotation and image code to be really useful so far. There's *tons* of other stuff, of course, but I haven't gotten to those just yet.
I have been looking at it. The list, tree, and sort stuff looks particularly interesting to me.

Love it all, though.
sir_mud
Posts: 1401
Joined: Jul 29, 2006 3:00
Location: US
Contact:

Post by sir_mud »

Imortis wrote: I have been looking at it. The list, tree, and sort stuff looks particularly interesting to me.

Love it all, though.
Thank you, we all worked very hard on this release. It'd be nice to have an actual Tree class in the next release, perhaps someone has a nice implementation they'd be willing to contribute.
relsoft
Posts: 1767
Joined: May 27, 2005 10:34
Location: Philippines
Contact:

Post by relsoft »

Awesome!
Post Reply