MiniB3d for FreeBasic

Headers, Bindings, Libraries for use with FreeBASIC, Please include example of use to help ensure they are tested and usable.
Post Reply
leopardpm
Posts: 1795
Joined: Feb 28, 2009 20:58

Re: MiniB3d for FreeBasic

Post by leopardpm »

thank you, i will ignore the message because I don't know how to rebuild anything... now I get to play!
leopardpm
Posts: 1795
Joined: Feb 28, 2009 20:58

Re: MiniB3d for FreeBasic

Post by leopardpm »

are there any sort of tutorials or manuals that go along with using this library? This thread has 56 pages... a bit much to plow through...

looked at the wiki, but some commands like 'LoadAnimMesh' are missing... actually, I would rather look at sample code while having a command reference available to look at - any tutorial/sample code depositories out there?
angros47
Posts: 2321
Joined: Jun 21, 2005 19:04

Re: MiniB3d for FreeBasic

Post by angros47 »

Most of the library is based on blitz3d command set, that has a manual on site www.blitzbasic.com
leopardpm
Posts: 1795
Joined: Feb 28, 2009 20:58

Re: MiniB3d for FreeBasic

Post by leopardpm »

ah ok... thank you
Kot
Posts: 336
Joined: Dec 28, 2006 10:34

Re: MiniB3d for FreeBasic

Post by Kot »

Are there any GUI commands? I can't find any :( There are some in Irrlicht - do you plan to add some of them?
angros47
Posts: 2321
Joined: Jun 21, 2005 19:04

Re: MiniB3d for FreeBasic

Post by angros47 »

No, and I am not planning to add them, because a set of GUI commands means writing a complete new library.

Anyway, there already are some GUI libraries designed to work in opengl mode, you can use one of them.
angros47
Posts: 2321
Joined: Jun 21, 2005 19:04

Re: MiniB3d for FreeBasic

Post by angros47 »

Minor release: version 1.12 is online

https://sourceforge.net/projects/minib3d/files/

V1.12
Fixed:
-Bug in planet rendering that caused irregularities in textures
-Bug in terrains that set wrong height in corners
-Bug that made particles crash
-many memory leaks
-wrong declaration in basic header for PositionTexture

Deprecated:
The file 2d.bi isn't included anymore
Westbeam
Posts: 239
Joined: Dec 22, 2009 9:24
Contact:

Re: MiniB3d for FreeBasic

Post by Westbeam »

Hmm, I'm trying to compile the library for Linux 64bit, but I get some errors:

Code: Select all

$ make
g++ -Wall -O3  -shared -o libOpenB3D.so model.o string_helper.o surface.o bank.o bone.o brush.o collision.o entity.o functions.o geom.o global.o light.o matrix.o pick.o pivot.o project.o sprite.o tilt.o touch.o texture_filter.o tree.o animation.o animation_keys.o collision2.o maths_helper.o quaternion.o sprite_batch.o camera.o file.o mesh.o texture.o terrain.o stb_image.o 3ds.o collidetri.o shadow.o material.o stencil.o csg.o voxel.o x.o octree.o geosphere.o md2.o isosurface.o particle.o physics.o actions.o  -lGL -lGLU
model.o: error adding symbols: unacceptable value
collect2: error: ld returned 1 exit status
makefile:8: recipe for target „main“ failed
make: *** [main] Error 1
Not sure why, maybe you can help me?
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: MiniB3d for FreeBasic

Post by D.J.Peters »

Westbeam do you use -fPIC ?

On Linux 64-bit I compile and link all libs with -fPIC.

Joshy
Westbeam
Posts: 239
Joined: Dec 22, 2009 9:24
Contact:

Re: MiniB3d for FreeBasic

Post by Westbeam »

The same error sadly :/
angros47
Posts: 2321
Joined: Jun 21, 2005 19:04

Re: MiniB3d for FreeBasic

Post by angros47 »

If you use the file "model.cpp" from the previous version, what happens?
Westbeam
Posts: 239
Joined: Dec 22, 2009 9:24
Contact:

Re: MiniB3d for FreeBasic

Post by Westbeam »

Still doesn't work. Same error :/
Tried it with the "model.cpp" from 1.1
angros47
Posts: 2321
Joined: Jun 21, 2005 19:04

Re: MiniB3d for FreeBasic

Post by angros47 »

Version 1.1 did compile?
Westbeam
Posts: 239
Joined: Dec 22, 2009 9:24
Contact:

Re: MiniB3d for FreeBasic

Post by Westbeam »

No, same error.
I get many warnings when he needs to compile to ".o" first:

Code: Select all

g++ -Wall -O3  -c model.cpp -o model.o
g++ -Wall -O3  -c string_helper.cpp -o string_helper.o
g++ -Wall -O3  -c surface.cpp -o surface.o
g++ -Wall -O3  -c bank.cpp -o bank.o
g++ -Wall -O3  -c bone.cpp -o bone.o
bone.cpp: In member function ‘virtual void Bone::FreeEntity()’:
bone.cpp:98:9: warning: deleting object of polymorphic class type ‘Bone’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
g++ -Wall -O3  -c brush.cpp -o brush.o
g++ -Wall -O3  -c collision.cpp -o collision.o
g++ -Wall -O3  -c entity.cpp -o entity.o
g++ -Wall -O3  -c functions.cpp -o functions.o	
g++ -Wall -O3  -c geom.cpp -o geom.o
g++ -Wall -O3  -c global.cpp -o global.o
g++ -Wall -O3  -c light.cpp -o light.o
light.cpp: In member function ‘virtual void Light::FreeEntity()’:
light.cpp:126:9: warning: deleting object of polymorphic class type ‘Light’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
g++ -Wall -O3  -c matrix.cpp -o matrix.o
g++ -Wall -O3  -c pick.cpp -o pick.o
g++ -Wall -O3  -c pivot.cpp -o pivot.o
pivot.cpp: In member function ‘virtual void Pivot::FreeEntity()’:
pivot.cpp:94:9: warning: deleting object of polymorphic class type ‘Pivot’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
g++ -Wall -O3  -c project.cpp -o project.o
project.cpp: In function ‘GLint gluUnProject(GLfloat, GLfloat, GLfloat, const GLfloat*, const GLfloat*, const GLint*, GLfloat*, GLfloat*, GLfloat*)’:
project.cpp:30:59: warning: ‘*((void*)& m +60)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(3, 0) * in[0] + M(3, 1) * in[1] + M(3, 2) * in[2] + M(3, 3) * in[3];
                                                           ^
project.cpp:301:12: note: ‘*((void*)& m +60)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:28:59: warning: ‘*((void*)& m +56)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(2, 0) * in[0] + M(2, 1) * in[1] + M(2, 2) * in[2] + M(2, 3) * in[3];
                                                           ^
project.cpp:301:12: note: ‘*((void*)& m +56)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:26:59: warning: ‘*((void*)& m +52)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(1, 0) * in[0] + M(1, 1) * in[1] + M(1, 2) * in[2] + M(1, 3) * in[3];
                                                           ^
project.cpp:301:12: note: ‘*((void*)& m +52)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:24:59: warning: ‘*((void*)& m +48)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(0, 0) * in[0] + M(0, 1) * in[1] + M(0, 2) * in[2] + M(0, 3) * in[3];
                                                           ^
project.cpp:301:12: note: ‘*((void*)& m +48)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:30:51: warning: ‘*((void*)& m +44)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(3, 0) * in[0] + M(3, 1) * in[1] + M(3, 2) * in[2] + M(3, 3) * in[3];
                                                   ^
project.cpp:301:12: note: ‘*((void*)& m +44)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:28:51: warning: ‘*((void*)& m +40)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(2, 0) * in[0] + M(2, 1) * in[1] + M(2, 2) * in[2] + M(2, 3) * in[3];
                                                   ^
project.cpp:301:12: note: ‘*((void*)& m +40)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:26:51: warning: ‘*((void*)& m +36)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(1, 0) * in[0] + M(1, 1) * in[1] + M(1, 2) * in[2] + M(1, 3) * in[3];
                                                   ^
project.cpp:301:12: note: ‘*((void*)& m +36)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:24:51: warning: ‘*((void*)& m +32)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(0, 0) * in[0] + M(0, 1) * in[1] + M(0, 2) * in[2] + M(0, 3) * in[3];
                                                   ^
project.cpp:301:12: note: ‘*((void*)& m +32)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:30:33: warning: ‘*((void*)& m +28)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(3, 0) * in[0] + M(3, 1) * in[1] + M(3, 2) * in[2] + M(3, 3) * in[3];
                                 ^
project.cpp:301:12: note: ‘*((void*)& m +28)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:28:33: warning: ‘*((void*)& m +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(2, 0) * in[0] + M(2, 1) * in[1] + M(2, 2) * in[2] + M(2, 3) * in[3];
                                 ^
project.cpp:301:12: note: ‘*((void*)& m +24)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:26:33: warning: ‘*((void*)& m +20)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(1, 0) * in[0] + M(1, 1) * in[1] + M(1, 2) * in[2] + M(1, 3) * in[3];
                                 ^
project.cpp:301:12: note: ‘*((void*)& m +20)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:24:33: warning: ‘*((void*)& m +16)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(0, 0) * in[0] + M(0, 1) * in[1] + M(0, 2) * in[2] + M(0, 3) * in[3];
                                 ^
project.cpp:301:12: note: ‘*((void*)& m +16)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:30:15: warning: ‘*((void*)& m +12)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(3, 0) * in[0] + M(3, 1) * in[1] + M(3, 2) * in[2] + M(3, 3) * in[3];
               ^
project.cpp:301:12: note: ‘*((void*)& m +12)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:28:15: warning: ‘*((void*)& m +8)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(2, 0) * in[0] + M(2, 1) * in[1] + M(2, 2) * in[2] + M(2, 3) * in[3];
               ^
project.cpp:301:12: note: ‘*((void*)& m +8)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:26:15: warning: ‘*((void*)& m +4)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(1, 0) * in[0] + M(1, 1) * in[1] + M(1, 2) * in[2] + M(1, 3) * in[3];
               ^
project.cpp:301:12: note: ‘*((void*)& m +4)’ was declared here
    GLfloat m[16], A[16];
            ^
project.cpp:24:15: warning: ‘m’ may be used uninitialized in this function [-Wmaybe-uninitialized]
       M(0, 0) * in[0] + M(0, 1) * in[1] + M(0, 2) * in[2] + M(0, 3) * in[3];
               ^
project.cpp:301:12: note: ‘m’ was declared here
    GLfloat m[16], A[16];
            ^
g++ -Wall -O3  -c sprite.cpp -o sprite.o
sprite.cpp: In member function ‘virtual void Sprite::FreeEntity()’:
sprite.cpp:114:9: warning: deleting object of polymorphic class type ‘Sprite’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
g++ -Wall -O3  -c tilt.cpp -o tilt.o
g++ -Wall -O3  -c touch.cpp -o touch.o
g++ -Wall -O3  -c texture_filter.cpp -o texture_filter.o
g++ -Wall -O3  -c tree.cpp -o tree.o
g++ -Wall -O3  -c animation.cpp -o animation.o
animation.cpp: In static member function ‘static void Animation::AnimateMesh(Mesh*, float, int, int)’:
animation.cpp:77:12: warning: ‘t1’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    int t0, t1;
            ^
g++ -Wall -O3  -c animation_keys.cpp -o animation_keys.o
g++ -Wall -O3  -c collision2.cpp -o collision2.o
g++ -Wall -O3  -c maths_helper.cpp -o maths_helper.o
g++ -Wall -O3  -c quaternion.cpp -o quaternion.o
g++ -Wall -O3  -c sprite_batch.cpp -o sprite_batch.o
In file included from sprite_batch.cpp:10:0:
sprite_batch.h: In static member function ‘static void SpriteBatch::Clear()’:
sprite_batch.h:98:25: warning: deleting object of polymorphic class type ‘Mesh’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
    delete sprite_batch->mesh;
                         ^
g++ -Wall -O3  -c camera.cpp -o camera.o
In file included from camera.cpp:15:0:
sprite_batch.h: In static member function ‘static void SpriteBatch::Clear()’:
sprite_batch.h:98:25: warning: deleting object of polymorphic class type ‘Mesh’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
    delete sprite_batch->mesh;
                         ^
camera.cpp: In member function ‘virtual void Camera::FreeEntity()’:
camera.cpp:133:9: warning: deleting object of polymorphic class type ‘Camera’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
g++ -Wall -O3  -c file.cpp -o file.o
file.cpp: In member function ‘char File::ReadByte()’:
file.cpp:176:21: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
  fread(&c,1,1,pFile);
                     ^
file.cpp: In member function ‘short int File::ReadShort()’:
file.cpp:185:21: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
  fread(&s,1,2,pFile);
                     ^
file.cpp: In member function ‘int File::ReadInt()’:
file.cpp:194:21: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
  fread(&i,1,4,pFile);
                     ^
file.cpp: In member function ‘long int File::ReadLong()’:
file.cpp:203:21: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
  fread(&l,1,8,pFile);
                     ^
file.cpp: In member function ‘float File::ReadFloat()’:
file.cpp:212:21: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
  fread(&f,1,4,pFile);
                     ^
file.cpp: In member function ‘std::__cxx11::string File::ReadString()’:
file.cpp:223:25: warning: ignoring return value of ‘char* fgets(char*, int, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
  fgets(c,length+1,pFile);
                         ^
file.cpp: In member function ‘int File::Eof()’:
file.cpp:349:21: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
  fread(&c,1,1,pFile);
                     ^
g++ -Wall -O3  -c mesh.cpp -o mesh.o
mesh.cpp: In member function ‘virtual void Mesh::FreeEntity()’:
mesh.cpp:265:9: warning: deleting object of polymorphic class type ‘Mesh’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
g++ -Wall -O3  -c texture.cpp -o texture.o
g++ -Wall -O3  -c terrain.cpp -o terrain.o
terrain.cpp: In member function ‘virtual void Terrain::FreeEntity()’:
terrain.cpp:989:9: warning: deleting object of polymorphic class type ‘Terrain’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
terrain.cpp: In member function ‘virtual Terrain* Terrain::CopyEntity(Entity*)’:
terrain.cpp:128:41: warning: iteration 21u invokes undefined behavior [-Waggressive-loop-optimizations]
   terr->level2dzsize[i] = level2dzsize[i];
                                         ^
terrain.cpp:127:19: note: containing loop
  for (int i = 0; i<= ROAM_LMAX+1; i++){
                   ^
gcc -c stb_image.c -o stb_image.o
g++ -Wall -O3  -c 3ds.cpp -o 3ds.o
gcc -c collidetri.c -o collidetri.o
g++ -Wall -O3  -c shadow.cpp -o shadow.o
g++ -Wall -O3  -c material.cpp -o material.o
g++ -Wall -O3  -c stencil.cpp -o stencil.o
g++ -Wall -O3  -c csg.cpp -o csg.o
g++ -Wall -O3  -c voxel.cpp -o voxel.o
g++ -Wall -O3  -c x.cpp -o x.o
g++ -Wall -O3  -c octree.cpp -o octree.o
octree.cpp: In member function ‘virtual void OcTree::UpdateTerrain()’:
octree.cpp:245:11: warning: deleting object of polymorphic class type ‘Mesh’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
    delete m;
           ^
octree.cpp: In member function ‘virtual void OcTree::FreeEntity()’:
octree.cpp:606:11: warning: deleting object of polymorphic class type ‘Mesh’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
    delete m;
           ^
octree.cpp:627:9: warning: deleting object of polymorphic class type ‘OcTree’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
g++ -Wall -O3  -c geosphere.cpp -o geosphere.o
geosphere.cpp: In member function ‘virtual void Geosphere::FreeEntity()’:
geosphere.cpp:1354:9: warning: deleting object of polymorphic class type ‘Geosphere’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
geosphere.cpp: In member function ‘virtual Geosphere* Geosphere::CopyEntity(Entity*)’:
geosphere.cpp:125:40: warning: iteration 21u invokes undefined behavior [-Waggressive-loop-optimizations]
   geo->level2dzsize[i] = level2dzsize[i];
                                        ^
geosphere.cpp:124:19: note: containing loop
  for (int i = 0; i<= ROAM_LMAX+1; i++){
                   ^
g++ -Wall -O3  -c md2.cpp -o md2.o
g++ -Wall -O3  -c isosurface.cpp -o isosurface.o
isosurface.cpp: In member function ‘virtual void Fluid::FreeEntity()’:
isosurface.cpp:445:9: warning: deleting object of polymorphic class type ‘Fluid’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
isosurface.cpp: In member function ‘virtual void Fluid::Render()’:
isosurface.cpp:1162:12: warning: suggest parentheses around operand of ‘!’ or change ‘&’ to ‘&&’ or ‘!’ to ‘~’ [-Wparentheses]
  if(!brush.fx&4){
            ^
isosurface.cpp: In member function ‘virtual void Blob::FreeEntity()’:
isosurface.cpp:1447:9: warning: deleting object of polymorphic class type ‘Blob’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
isosurface.cpp: In member function ‘virtual void FieldArray::FreeEntity()’:
isosurface.cpp:1566:9: warning: deleting object of polymorphic class type ‘FieldArray’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
g++ -Wall -O3  -c particle.cpp -o particle.o
particle.cpp: In member function ‘virtual void ParticleEmitter::FreeEntity()’:
particle.cpp:369:9: warning: deleting object of polymorphic class type ‘ParticleEmitter’ which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
  delete this;
         ^
g++ -Wall -O3  -c physics.cpp -o physics.o
g++ -Wall -O3  -c actions.cpp -o actions.o
angros47
Posts: 2321
Joined: Jun 21, 2005 19:04

Re: MiniB3d for FreeBasic

Post by angros47 »

How about other versions? Because I know of people who compiled it at 64 bit... is there an older version you managed to compile?
Post Reply