Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / PureGDK 2.0 - DarkBasic Professional for any programming language

Author
Message
Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 14th Nov 2010 18:16 Edited at: 31st Jul 2011 10:11


The title may be slightly misleading but you can expect PureGDK to be compatible with most modern programming languages. If your favorite programming language can load a DLL and make C functions calls then it's compatible.

PureGDK 2.0 comes with support out of the box for the PureBasic language (building on previous PureGDK releases) as well as C++. It can generate headers to work with other languages by writing a simple plugin for the library builder tool.

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Feature highlights:

All of DBP compressed down into a single DLL
Engine customization; basic 3D in less than 800 KB!
Future support is anticipated for additional programming languages.
Language agnostic interface; all exports are C function calls
Internal multithreading support. Go thread crazy!
Enhanced commands including true support for structured parameters
Potential support for rendering in a web browser
Rewritten, extremely fast 3D math library
New support for programmatically defining constants and structures
Improved documentation for all DarkBasic Professional commands
Superior runtime error support that is thread-aware
Easy to use command line tools for automated compiling
Plugin-based parser. Adding support for your own language is a breeze!

Projects supported by PureGDK out of the box:

Visual Studio 2010
Visual Studio 2008
Visual Studio 2005
Visual Studio .NET 2003
Visual Studio .NET
Visual Studio 6
GNU make/GCC g++
Nmake/VC++
PureBasic 4

The new engine is extremely lightweight and highly customizable. And best of all, it's fully compatible with DBP's plugins. Now you can enjoy the power of DarkBasic Professional from your favorite language. And if you have multiple favorites-- no problem!

Program using your favorite IDE. Any IDE. Any language!

Screenshot of PureGDK and the PureBasic IDE:



Screenshot of PureGDK and the Qt Creator C++ IDE:



Here is a video of a C++ example project being run and debugged from the Qt Creator IDE. It also demos the flexibility of PureGDK by compiling from a UNIX (cygwin) command line using Make and the GNU g++ compiler. It should work with most any C/C++ compiler.

http://puregdk.com/files/upload/TGCForum/pgdk_cpp_demo_xvid.avi

thenerd
15
Years of Service
User Offline
Joined: 9th Mar 2009
Location: Boston, USA
Posted: 14th Nov 2010 21:47
I will be really excited about support for python...

Eminent
13
Years of Service
User Offline
Joined: 15th Jul 2010
Location:
Posted: 14th Nov 2010 22:09
Is there support for Java(noob question)?


Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 3rd Dec 2010 09:02 Edited at: 3rd Dec 2010 09:16


Here is a video of a C++ example project being run and debugged from the Qt Creator IDE. It also demos the flexibility of PureGDK by compiling from a UNIX (cygwin) command line using Make and the GNU g++ compiler. It should work with most any C/C++ compiler.

http://puregdk.com/files/upload/TGCForum/pgdk_cpp_demo_xvid.avi

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 21st Dec 2010 10:44 Edited at: 21st Dec 2010 10:44
PureGDK 2.0 beta 2 is finally out, now with C++ support! Projects have been included for the following compilers to facilitate successful compiling "out of the box" with no additional setup required.

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

C++ Projects supported by this release:

GNU make/g++ (gcc compiling may require setup)
nmake/vc++ (vcvars32.bat compiling should work out of the box)
Visual Studio 6
Visual Studio .NET
Visual Studio .NET 2003
Visual Studio 2005
Visual Studio 2008
Visual Studio 2010

ChangeLog:

Quote: "PureGDK 2.0 beta 2
------------------

Bug fixes:
- dbSetD3DDeviceCallback and all functions from the 3d math functions were using the wrong calling convention and corrupting the stack.
- Updated several templates which were passing the wrong type.
- Fixed dbSetEffectConstantVector, dbSetEffectConstantMatrix, dbSetVertexShaderVector, and dbSetVertexShaderMatrix which were not passing their vector and matrix parameters as expected.
- Fixed a memory leak for all functions which return a string.
- Fixed a bug where the beta can expire early if the computer spends a lot of time in hibernation.

Updates:
- Added a new C++ plugin to the library builder for header generation.
- Added C++ examples for make/g++, nmake/vc++, vs6, vs2002, vs2003, vs2005, vs2008, and vs2010.
- Added new supplemental typing to templates to add support for type strict languages like C++.
- Updated the library builder plugin specification. The new specification is incompatible with the one from beta 1.
- Added the command dbCloseScreen for instances where it is necessary to perform the cleanest possible program termination. Some compilers are less forgiving than others.
- Significantly increased the delay allowed for the engine to start up on slower processors."


Eminent
13
Years of Service
User Offline
Joined: 15th Jul 2010
Location:
Posted: 21st Dec 2010 14:24
C# compatibility?


Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 21st Dec 2010 18:39 Edited at: 21st Dec 2010 18:39
Quote: "C# compatibility?"


This release provides C++ support out of the box. PureGDK should already be compatible with C# since it provides a 'C' interface but it does not provide any headers.

I've never used C# or .NET before so I will need some time to experiment.

If you know C#, it would be a big help if you convert one or two of the C++ examples to get me started.

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 4th Feb 2011 08:50 Edited at: 4th Feb 2011 08:50
PureGDK 2.0 beta 3 is out. Stability has been improved in this version and some commands which broke from the 7.5 update have been fixed. If you previously experienced crashes when running the example projects, please try them again.

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

ChangeLog:

Quote: "PureGDK 2.0 beta 3
------------------

Bug fixes:
- Updated the following commands to work with DBP 7.5:
* dbAddMeshToBuffer
* dbDeleteMeshFromBuffer
* dbGetBufferIndexCount
* dbGetBufferVertexCount
* dbGetVertexDiffuse
* dbGetVertexNormalsX
* dbGetVertexNormalsY
* dbGetVertexNormalsZ
* dbGetVertexPositionX
* dbGetVertexPositionY
* dbGetVertexPositionZ
* dbGetVertexU
* dbGetVertexV
* dbLockVertexBufferForLimb
* dbLockVertexBufferForMesh
* dbSetBufferDiffuse
* dbSetBufferIndexData
* dbSetBufferNormals
* dbSetBufferPosition
* dbSetBufferUV
* dbUnlockBuffer
- gdkc.exe will now report an appropriate error if an illegal command is used to specify a plugin.
- Fix a bug where functions returning a string would cause the program to become unstable.

Updates:
- Renamed dbSetIndexData to dbSetBufferIndexData.
- Updated gdkc.exe to support unix-style command line parameters. See gdkc.exe --help for a list of options.
- Added the parameter "-all" to gdkc.exe to support compiling the engine with existing plugins which have been properly configured. This is now the default behavior invoked by the installer.
- Added preliminary support for plugins. This feature will be enhanced in a future version to properly address default parameters.
- Added PureBasic example projects for cloth and advanced terrain and some TGC plugins."


Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 8th May 2011 09:45
PureGDK 2.0 beta 4 is out. This release should solidify the PureGDK plugin SDK specification. There is now full support for all DBP-compatible plugins where a template is available. PureGDK does not support DBP legacy types which may be present in some plugins but this is rare.

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

ChangeLog:

Quote: "PureGDK 2.0 beta 4
------------------
Updates:
- Major changes to the PureGDK plugin SDK specification which are incompatible with previous beta SDK releases.
- Completed full support for DBP-compatible plugins. The library builder is now capable of handling multiple instances of functions of the same name but with different parameters. Code generation is entirely dependent on the plugin's implementation.
- Minor changes to the template specification and buildlibs.exe parsing routines."


kamac
13
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 8th May 2011 10:41
The problem is that not many people wish to use PureGDK. It's thread looks a bit... empty. Is PureGDK going to be continued with that frequency ?

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 8th May 2011 11:03 Edited at: 8th May 2011 11:06
Quote: "The problem is that not many people wish to use PureGDK. It's thread looks a bit... empty. Is PureGDK going to be continued with that frequency ?"


PureGDK has been developed for the past three years and has been support by and contracted for sale to TGC. PureGDK is a stable product and there are quite a few people who use it. I'll continue to develop it for some time.

The solution provided by PureGDK is different from that of DarkGDK. It provides a high level interface above the plugin-based DBP implementation that is extremely extensible. All of the source code used to generate PureGDK header and library files is provided in the SDK.

Yes, PureGDK hasn't "caught on" but I hope that at some point people will figure out that it really is a superior solution. The best part about it is that if you want to switch to another language-- no problem! With PureGDK you can take the engine with you.

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 9th May 2011 01:23
PureGDK 2.0 beta 5 is out. This release just adds some missing functionality.

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

ChangeLog:

Quote: "PureGDK 2.0 beta 5
------------------
Updates:
- Added an optional depth parameter to dbOpenScreen. If 0 is passed then it will default to the screen depth.
- Added dbSetDisplayMode. Somewhere it went messing in PureGDK 2.0 but it's back! If 0 is passed for the Depth parameter then it will default to the screen depth. If 0 is passed for the BackBufferWidth or BackBufferHeight parameter it will default to the specified width/height for the DBP screen resolution."


Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 9th May 2011 03:22 Edited at: 9th May 2011 03:31
PureGDK 2.0 beta 6 is out. This release adds support for some DBP 7.7 internals to improve sync performance. Thread safety is now disabled by default (it can be reenabled) which boosts performance by 20% on average.

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

ChangeLog:

Quote: "PureGDK 2.0 beta 6
------------------
Updates:
- Removed legacy code required to support syncing in previous versions of DBP. The DBP 7.7 release candidate is now REQUIRED to be installed BEFORE installing PureGDK. Sync will NOT work without it!
- Thread safety code is now disabled by default providing performance improvement of up to 20%. To reenable thread safety, pass the #GDK_ThreadSafe flag to dbOpenScreen."


Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 27th Jul 2011 14:36
PureGDK 2.0 beta 7 is out! Major features of this release include the addition of Direct3D callbacks to recover from an invalid state, specifying an ID is now optional for all creation and load commands, and the first iteration of the brand new documentation. It's really great!

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.


Brand new language-specific documentation!



Here is a screenshot of the DarkGDK documentation for a comparison:



The documentation is in the excellent .chm format with an index and full text search.

All source code and templates for the documentation builder will be available in the SDK for you to help extend the existing docs and also for you to apply to your own projects if you like.

Many of the commands have been renamed for clarity and others have had their parameters reordered to support default parameters and function polymorphism.

Here is an example of a function which will have its parameters reordered for automatic ID allocation:

Quote: "
dbLoadSound(string fileName[, int soundID])"


The "soundID" parameter is optional and therefore appears at the end of the function. If no ID is specified, one will be returned as the result.

For functions which take advantage of default parameters, the header might look like this:

Quote: "
dbLoadSound(string fileName, int soundID = -1)"


And for others which use function polymorphism, for example:

Quote: "
dbLoadSound(string fileName)
dbLoadSound(string fileName, int soundID)"


Another example where a command might be different is "dbSetDisplayMode".

In DarkGDK you can use these commands to change the resolution:

Quote: "
void dbSetDisplayMode (int iWidth, int iHeight, int iDepth)
bool dbSetDisplayModeEx(int iWidth, int iHeight)
bool dbSetDisplayModeEx(int iWidth, int iHeight, int iDepth)
bool dbSetDisplayModeEx(int iWidth, int iHeight, int iDepth, int iMode)
bool dbSetDisplayModeEx(int iWidth, int iHeight, int iDepth, int iMode, int iVertexProcessing)
bool dbSetDisplayModeEx(int iWidth, int iHeight, int iDepth, int iMode, int iVertexProcessing, int iLockable)
bool dbSetDisplayModeVSync(int iWidth, int iHeight, int iDepth, int iVSyncOn)
bool dbSetDisplayModeAntialias (int iWidth, int iHeight, int iDepth, int iVSyncOn, int iMultisamplingFactor, int iMultimonitorMode)"


In PureGDK the same command with optional parameters is:

Quote: "
dbSetDisplayMode(int width, int height[, int depth[, int vSync[, int multiSampling[, int multiMonitor[, int backBufferWidth[, int backBufferHeight[, int vrMode]]]]]]])"


In this function each parameter after width and height can be optionally specified.

PureGDK has built-in support for multithreading by providing function-level critical sections for your convenience behind the scenes as well as thread-aware error handling. Each function can have several possible error codes which can be detected are caught at runtime for you to examine and respond to.

For example, dbMakeMatrix() can throw any of the following errors for you to catch with dbGetLastError():

Quote: "
kGDK_Error_3D_Matrix_ID_Invalid
kGDK_Error_3D_Matrix_Exists
kGDK_Error_3D_Matrix_Segment_Invalid
kGDK_Error_3D_Matrix_Dimension_Invalid
kGDK_Error_3D_Matrix_Too_Large"


dbGetLastError() will return the last error to occur in the current thread. It can safely and accurately be used across multiple threads.

Never have to use a vector or matrix "ID" again! PureGDK supports vector and matrix datatypes as structures. This means that you can access any part of this data and they can be written to and read from memory:

Quote: "PureGDK 2.0 beta 7
------------------
Bug fixes:
- dbCameraExist no longer has a default parameter.
- Fixed a few erroneous command names:
* dbLockpixels -> dbLockPixels
* dbStopRecodingSound -> dbStopRecordingSound
* dbGetBackbufferWidthWidth -> dbGetBackbufferWidth

Updates:
- Document commands are also now verified against existing commands in the template libraries to eliminate the documenting of erroneous parameters and non-existent commands. The documentation itself has gotten a major visual overhaul as well.
- The documentation builder now has the ability to create .chm documentation for multiple languages using shared templates. Any change to the documentation will propegate to every targeted language.
- Added runtime error constants to PureGDK.gdt as well as the documentation. Every command which returns an error is now documented.
- Added the dbSetD3DDeviceCallback command for recovering from an invalid render device.
- dbSyncRate now uses DBP's more accurate frame rate limiter.
- Added '-v' parameter to buildlibs.exe to provide additional verbose output for aggregating command documentation. Several parameters for this tool have also been adjusted for consistency.
- Updated the SDK specification and plugins to support verbose output and new arc/argv parameters. Changes are incompatible with previous beta SDK releases.
- Specifying an ID explicitly for creation and load commands which would normally accept an ID is now optional. Many commands have had their parameters reordered for support this behavior.

- New commands:
* dbIsAdvancedTerrain
* dbIsCloth
* dbIsCollider
* dbIsEffector
* dbIsEmitter
* dbSetD3DDeviceCallback
* dbSetNVPerfHUD

- Renamed commands to be more specific and/or consistent with other commands:
* dbAddMeshToBuffer -> dbAddMeshToVertexBuffer
* dbAnimationExist -> dbIsAnimation
* dbBitmapExist -> dbIsBitmap
* dbCameraExist -> dbIsCamera
* dbChangeMesh -> dbReplaceMesh
* dbCreateObjectTerrain -> dbCreateAdvancedTerrain
* dbCSGDifferenceOnVertexData -> dbCSGDifferenceOnVertexBuffer
* dbCSGIntersectionOnVertexData -> dbCSGIntersectionOnVertexBuffer
* dbCSGUnionOnVertexData -> dbCSGUnionOnVertexBuffer
* dbDeleteMeshFromBuffer -> dbDeleteMeshFromVertexBuffer
* dbDestroyTerrain -> dbDeleteAdvancedTerain
* dbEffectExist -> dbIsEffect
* dbFreeAllClothPoints -> dbDeleteAllClothPoints
* dbFreeAllClothPointsOnAllObjects -> dbDeleteAllClothPointsOnAllObjects
* dbFreeAllClothPointsOnObject -> dbDeleteAllClothPointsOnObject
* dbFreeAllRagdollPoints -> dbDeleteAllRagdollPoints
* dbFreeClothNearestPoint -> dbDeleteClothNearestPoint
* dbFreeClothPoint -> dbDeleteClothPoint
* dbFreeClothPoints -> dbDeleteClothPoints
* dbFreeClothPointsRadius -> dbDeleteClothPointsRadius
* dbFreeNetGame -> dbDeleteNetGame
* dbFreeNetPlayer -> dbDeleteNetPlayer
* dbGetBufferIndexCount -> dbGetVertexBufferIndexCount
* dbGetBufferIndexData -> dbGetVertexBufferIndexData
* dbGetBufferVertexCount -> dbGetVertexBufferVertexCount
* dbImageExist -> dbIsImage
* dbLimbExist -> dbIsLimb
* dbMakeBasicEmitter -> dbCreateBasicEmitter
* dbMakeBitmapFromMemblock -> dbCreateBitmapFromMemblock
* dbMakeBoxEmitter -> dbCreateBoxEmitter
* dbMakeCamera -> dbCreateCamera
* dbMakeChaosEffector -> dbCreateChaosEffector
* dbMakeCloth -> dbCreateCloth
* dbMakeCollisionBox -> dbCreateCollisionBox
* dbMakeCollisionDisc -> dbCreateCollisionDisc
* dbMakeCollisionPlane -> dbCreateCollisionPlane
* dbMakeCollisionSphere ->dbCreateCollisionSphere
* dbMakeCollisionSquare -> dbCreateCollisionSquare
* dbMakeColorEffector -> dbCreateColorEffector
* dbMakeDampingEffector -> dbCreateDampingEffector
* dbMakeDragEffector ->dbCreateDragEffector
* dbMakeFireParticles -> dbCreateFireParticles
* dbMakeFlockEffector -> dbCreateFlockEffector
* dbMakeForceEffector -> dbCreateForceEffector
* dbMakeGravityEffector -> dbCreateGravityEffector
* dbMakeImageFromMemblock -> dbCreateImageFromMemblock
* dbMakeLight -> dbCreateLight
* dbMakeMatrix -> dbCreateMatrix
* dbMakeMemblock -> dbCreateMemblock
* dbMakeMemblockFromBitmap -> dbCreateMemblockFromBitmap
* dbMakeMemblockFromImage -> dbCreateMemblockFromImage
* dbMakeMemblockFromMesh -> dbCreateMemblockFromMesh
* dbMakeMemblockFromSound -> dbCreateMemblockFromSound
* dbMakeMeshFromMemblock -> dbCreateMeshFromMemblock
* dbMakeMeshFromObject -> dbCreateMeshFromObject
* dbMakeObject -> dbCreateObject
* dbMakeObjectBox -> dbCreateObjectBox
* dbMakeObjectCollisionBox -> dbCreateObjectCollisionBox
* dbMakeObjectCone -> dbCreateObjectCone
* dbMakeObjectCube -> dbCreateObjectCube
* dbMakeObjectCylinder -> dbCreateObjectCylinder
* dbMakeObjectFromLimb -> dbCreateObjectFromLimb
* dbMakeObjectPlane -> dbCreateObjectPlane
* dbMakeObjectSphere -> dbCreateObjectSphere
* dbMakeObjectTerrain -> dbCreateObjectTerrain
* dbMakeObjectTriangle -> dbCreateObjectTriangle
* dbMakeParticles -> dbCreateParticles
* dbMakePointEffector -> dbCreatePointEffector
* dbMakeSizeEffector -> dbCreateSizeEffector
* dbMakeSnowParticles -> dbCreateSnowParticles
* dbMakeSoundFromMemblock -> dbCreateSoundFromMemblock
* dbMakeSphericalEmitter -> dbCreateSphericalEmitter
* dbMakeStaticCollisionBox -> dbCreateStaticCollisionBox
* dbMakeStaticLimb -> dbCreateStaticLimb
* dbMakeStaticObject -> dbCreateStaticObject
* dbMakeTerrain -> dbCreateTerrain
* dbMakeVortexEffector -> dbCreateVortexEffector
* dbMakeWindEffector -> dbCreateWindEffector
* dbMakeWrapAroundEffector -> dbCreateWrapAroundEffector
* dbMatrixExist -> dbIsMatrix
* dbMatrixTilesExist -> dbIsMatrixTextured
* dbMemblockExist -> dbIsMemblock
* dbMeshExist -> dbIsMesh
* dbMusicExist -> dbIsMusic
* dbNetGameExist -> dbIsNetGame
* dbNetMessageExist -> dbIsNetMessage
* dbObjectExist -> dbIsObject
* dbParticlesExist -> dbIsParticles
* dbPixelShaderExist -> dbIsPixelShader
* dbSetImageColorkey -> dbSetImageChromaKey
* dbSetStaticPortalsOff -> dbHideStaticPortals
* dbSetStaticPortalsOn -> dbShowStaticPortals
* dbSoundExist -> dbIsSound
* dbSpriteExist -> dbIsSprite
* dbTerrainExist -> dbIsTerrain
* dbUnlockBuffer -> dbUnlockVertexBuffer
* dbVertexShaderExist -> dbIsVertexShader
* dbChangeMeshFromMemblock -> dbReplaceMeshWithMemblock

- Reordered parameters to support automatic ID allocation
* dbCloneObject(ObjectCloneID, SourceID, SharedDataFlag) -> (SourceID, ObjectCloneID, SharedDataFlag)
* dbCopyMemblock(SourceID, MemblockID, SourceStartPos, DestinationStartPos, Length) -> (SourceStartPos, DestinationStartPos, Length, SourceID, MemblockID)
* dbCreateAnimatedSprite(SpriteID, Filename.s, Across, Down, ImageID) -> (Filename.s, Across, Down, ImageID, SpriteID)
* dbCreateBasicEmitter(EmitterID, ParticleCount) -> (ParticleCount, EmitterID)
* dbCreateBitmap(BitmapID, Width, Height) -> (Width, Height, BitmapID)
* dbCreateBitmapFromMemblock(BitmapID, MemblockID) -> dbCreateBitmapFromMemblock(MemblockID, BitmapID)
* dbCreateBoxEmitter(EmitterID, ParticleCount) -> (ParticleCount, EmitterID)
* dbCreateFireParticles(ParticleID, ImageID, Frequency, x.f, y.f, z.f, Width.f, Height.f, Depth.f) -> (ImageID, Frequency, x.f, y.f, z.f, Width.f, Height.f, Depth.f, ParticleID)
* dbCreateImageFromMemblock(ImageID, MemblockID) -> dbCreateBitmapFromMemblock(MemblockID, ImageID)
* dbCreateMatrix(MatrixID, Width.f, Depth.f, xSegments, zSegments) -> (Width.f, Depth.f, xSegments, zSegments, MatrixID)
* dbCreateMemblock(MemblockID, Size) -> (Size, MemblockID)
* dbCreateMemblockFromBitmap(MemblockID, BitmapID) -> (BitmapID, MemblockID)
* dbCreateMemblockFromImage(MemblockID, ImageID) -> (ImageID, MemblockID)
* dbCreateMemblockFromMesh(MemblockID, MeshID) -> (MeshID, MemblockID)
* dbCreateMemblockFromSound(MemblockID, SoundID) -> (SoundID, MemblockID)
* dbCreateMeshFromMemblock(MeshID, MemblockID) -> dbCreateBitmapFromMemblock(MemblockID, MeshID)
* dbCreateMeshFromObject(MeshID, ObjectID) -> (ObjectID, MeshID)
* dbCreateObject(ObjectID, MeshIndex, ImageID) -> (MeshIndex, ImageID, ObjectID)
* dbCreateObjectBox(ObjectID, Width.f, Height.f, Depth.f) -> (Width.f, Height.f, Depth.f, ObjectID)
* dbCreateObjectCone(ObjectID, Size.f) -> (Size.f, ObjectID)
* dbCreateObjectCube(ObjectID, Size.f) -> (Size.f, ObjectID)
* dbCreateObjectCylinder(ObjectID, Size.f) -> (Size.f, ObjectID)
* dbCreateObjectFromLimb(ObjectID, NewObjectID, LimbID, CopyAllFlag) -> (ObjectID, LimbID, CopyAllFlag, NewObjectID)
* dbCreateObjectPlane(ObjectID, Width.f, Height.f, Orientation) -> (Width.f, Height.f, Orientation, ObjectID)
* dbCreateObjectSphere(ObjectID, Size.f, Rows, Columns) -> (Size.f, Rows, Columns, ObjectID)
* dbCreateObjectTriangle(ObjectID, x1, y1, z1, x2, y2, z2, x3, y3, z3) -> (x1, y1, z1, x2, y2, z2, x3, y3, z3, ObjectID)
* dbCreateParticles(ParticleID, ImageID, Frequency, Radius.f) -> (ImageID, Frequency, Radius.f, ParticleID)
* dbCreateSnowParticles(ParticleID, ImageID, Frequency, x.f, y.f, z.f, Width.f, Height.f, Depth.f) -> (ImageID, Frequency, x.f, y.f, z.f, Width.f, Height.f, Depth.f, ParticleID)
* dbCreateSoundFromMemblock(SoundID, MemblockID) -> dbCreateBitmapFromMemblock(MemblockID, SoundID)
* dbCreateSphericalEmitter(EmitterID, ParticleCount) -> (ParticleCount, EmitterID)
* dbCreateTerrain(TerrainID, HeightmapFilename.s) -> (HeightmapFilename.s, TerrainID)
* dbGetImage(ImageID, Left, Top, Right, Bottom, TextureFlag) -> (Left, Top, Right, Bottom, TextureFlag, ImageID)
* dbInstanceObject(ObjectID, SourceID) -> (SourceID, ObjectID)
* dbLoadEffect(FileName.s, EffectID, TextureFlag, DoNotGenerateExtraData) -> (FileName.s, TextureFlag, DoNotGenerateExtraData, EffectID)
* dbLoadEffect(FileName.s, EffectID, TextureFlag, DoNotGenerateExtraData) -> (FileName.s, TextureFlag, EffectID, DoNotGenerateExtraData)
* dbLoadImage(Filename.s, ImageID, TextureFlag) -> (Filename.s, TextureFlag, ImageID)
* dbLoadMesh(FileName.s, MeshID)
* dbLoadObject(FileName.s, ObjectID, TextureMode, TextureReduce) -> (FileName.s, TextureReduce, TextureMode, ObjectID)
* dbLoadPixelShader(FileName.s, PixelShaderID)
* dbLoadVertexShader(FileName.s, VertexShaderID)
* dbRecordSound(SoundID, Duration) -> (Duration, SoundID)
* dbReplaceMeshWithMemblock(MeshID, MemblockID) -> dbReplaceMeshWithMemblock(MemblockID, MeshID)"


Morcilla
21
Years of Service
User Offline
Joined: 1st Dec 2002
Location: Spain
Posted: 28th Jul 2011 20:01
Quote: " Internal multithreading support. Go thread crazy!"

Hey you should say this louder. Many people ask for this feature in DBPro and DGDK. Needless to say that it should be useful in many ways, and makes a difference with the others.

Also, don't know if you already did, but you should expose how easy (or tough ) is to migrate existing projects from DBPro/DGDK to PureGDK, that way tou could get more people here.

Hope that helps. Great job, no doubt.

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 29th Jul 2011 04:01 Edited at: 29th Jul 2011 04:02
Quote: "Also, don't know if you already did, but you should expose how easy (or tough ) is to migrate existing projects from DBPro/DGDK to PureGDK, that way tou could get more people here."


What is PureGDK and why should I use it?
http://forum.thegamecreators.com/?m=forum_view&t=158906&b=38

New features in PureGDK with PureBasic
http://forum.thegamecreators.com/?m=forum_view&t=159032&b=38

From DarkBasic to PureGDK and PureBasic
http://forum.thegamecreators.com/?m=forum_view&t=158900&b=38

What I really need is for more people to start using it for things. I hope the new documentation provided in this most recent beta will help encourage people to try it. The PureGDK documentation, unlike some "other" documentation here.. will be very high quality, easy to read, and above all else, extremely useful!

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 31st Jul 2011 09:39 Edited at: 31st Jul 2011 09:40
PureGDK 2.0 beta 8 is out. This release fixes a small bug which broke dbCreateMatrix. It also adds a lot of changes to the installer which improves the user experience and adds important validation to ensure that all of the necessary prerequisites are in order.

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

ChangeLog:

Quote: "PureGDK 2.0 beta 8
------------------
Bug fixes:
* Fixed a bug in Matrix.gdt which was preventing dbCreateMatrix from evaluating correctly.

Updates:
* The installer now creates start menu entries with links to the documentation, projects, and useful batch files.
* The installer now checks for licensing errors when it builds the engine dll during installation and will report the offending library if a problem has occurred.
* The installer now checks checks for the existence of a DarkBasic Professional and will provide useful information about where to download it if it cannot be found. This is in contrast to previous versions which simply asked for a directory path.
* The installer now verifies whether a compatible version of DarkBasic Professional has been selected. It will not continue unless the correct version (at least 7.7) has been detected. It will also provide useful information about where to download it if it was not detected.
* The installer now verifies that the engine dll has been created successfully after calling gdkc.exe.
* Various other small bits of polish, fixing typos, and textual changes to the installer."


Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 5th Aug 2011 04:01 Edited at: 5th Aug 2011 04:10
PureGDK 2.0 beta 9 is out. This release focuses primarily on improving the documentation and the documentation builder source code (which will eventually make it into the SDK). There was also a minor bug fixes.

The default structure for the application data folder (%appdata%\PureGDK) has changed. The old folder should be deleted so that old files don't clutter it up and add to confusion when referencing the new documentation.

Instructions for how to setup projects in Visual Studio 2008, Visual Studio 2010, and PureBasic are also included in this release's revised documentation. No more guesswork on how to setup a project.

PureGDK is now extremely stable and is rapidly approaching release-candidate status!

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

ChangeLog:

Quote: "
PureGDK 2.0 beta 9
------------------
Bug fixes:
* Fixed a bug where plugin headers were not evaluating their include path correctly.
* Fixed creation and load functions which were failing to return the IDs passed to them.
* Fixed creation and load functions which were failing to return a unique ID when passed -1 as expected.

Updates:
* The documentation has received a lot of polish for this release including font style, text placement, new topics, index revisions, as well as a few minor bug fixes.
* puregdk_cpp.chm and puregdk_purebasic.chm have been merged into puregdk.chm. All documentation for language targets have been split into aliased folders within the Library/ path of the documentation. Searching the index will now provide links to all supported languages to eliminate ambiguity.
* Added new entries for PureBasic and C++ fundamentals, source examples in the documentation, and full walkthroughs on how to setup a project in PureBasic, Visual Studio 2008 and Visual Studio 2010.
* Vector and matrix structures now use their fully-qualified name by default (Vector2 vs. v2) for clarity."


Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 7th Aug 2011 23:20
PureGDK 2.0 beta 10 is out. This focuses primarily on C++ plugin support with a few bug fixes and improvements. There is also the addition of example Visual Studio projects for DarkAI, DarkClouds, DarkLights, and DarkPhysics. Also of note, Sparky's Collision and D3DFunc has been updated, and IanM's Matrix1Util library plugins 9, 12, 18, and 26 have been added.

C++ users: be sure to delete all of your old "plugin" headers .h and .cpp files before copying over the new ones otherwise you will compiler/linker errors. Some of the libraries have been consolidated and linking with the old ones will get you naming conflicts.

This was a fantastic beta release with a lot of really great improvements. Thank you, DarkGDK testers!

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

Changelog:

Quote: "PureGDK 2.0 beta 10
------------------
Bug fixes:
* Fixed a bug where plugin headers were not evaluating their include path correctly (really fixed it this time).
* Corrected some parameter name conflics that were illegal in C++ in a few third-party plugin templates.
* Fixed the PureBasic plugin examples to use the new parameter order convention update from beta 7.
* Fixed a bug with the C++ language plugin where return types for anything other than an integer weren't being resolved correctly for doubles and 64-bit integers.
* Fixed a bug with the C++ language plugin where function call typedefs for polymorphized functions were not being enumerated.
* Fixed a bug where dbCreateObjectTriangle was erroneously passing the wrong parameter type, causing it to fail.

Updates:
* Updated Sparky's collision library to support the latest 2.05 release.
* Updated the D3DFunc library to support the latest 3.7.1 release.
* PureGDK now also copies over the TGC certificates viewer application to help you verify whether a commercial plugin you've installed is properly licensed.
* Included plugin templates for third-party plugins have been reevaulated for consistency. Various prefixes have been adjusted align to the prefix-underscore convention.
* Updated the D3DFunc library to conform to beta 4 optional parameter specification.
* Added example C++ projects for DarkAI, DarkClouds, DarkLights, and DarkPhysics.
* The PureGDK installer will now build the gdkengine.dll with commercial and user plugins by default.
* Added support for IanM's Matrix1Util library plugins 9, 12, 18, and 26.
* Merged legacy third-party templates into a single file per-library instead of one file per-dll; to be resolved to a single header.
* gdkc.exe and buildlibs.exe now print their errors to stderr instead of stdout.""


Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 9th Aug 2011 20:02
PureGDK 2.0 beta 11 is out. This release adds a number of commands provided by the DarkShader runtime (which comes free with DBP), documentation improvements, and support for several new plugins.

Thank you for helping test, DarkGDK testers!

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

Changelog:

Quote: "PureGDK 2.0 beta 11
------------------
Bug fixes:
- Fixed a bug where dbLimbName, dbLimbTextureName, and dbEntry were not returning a string as expected.
- Fixed a bug where functions which set shader constants were not evaluating structures correctly.

Updates:
- Added support for full-text search to the documentation.
- All documentation generated for a target language will now be compiled to its own .chm file.
- Various textual improvements to the library documentation.
- Added support for IanM's Matrix1Util library plugins 9, 12, 18, and 26 (for real this time).
- Support for DKShop and DKAVM has been removed, as these plugins no longer work.
- dbSetDisplayMode now calls dbReloadDisplayPointer internally (part of the DarkShader runtime).
- Added a new command dbSetRuntimeErrorCallback to allow logging of runtime errors.
- Added several commands introduced by the DarkShader runtime.

- Added the following plugins to PureGDK for out-of-the-box support:
* A* Pathfinding : http://forum.thegamecreators.com/?m=forum_view&t=114240&b=5
* Advanced Audio : http://forum.thegamecreators.com/?m=forum_view&t=111325&b=8
* Advanced Sprites : http://forum.thegamecreators.com/?m=forum_view&t=113378&b=5
* DarkData : http://www.thegamecreators.com/?m=view_product&id=2067
* DarkInk : http://www.thegamecreators.com/?m=view_product&id=2075
* DarkNet : http://www.thegamecreators.com/?m=view_product&id=2070
* DarkVideo : http://www.thegamecreators.com/?m=view_product&id=2227
* GreenEar : http://www.thegamecreators.com/?m=view_product&id=2227
* Image Kit V2 : http://forum.thegamecreators.com/?m=forum_view&t=177340&b=5
* Matrix1Util : http://forum.thegamecreators.com/?m=forum_view&t=85209&b=18
* Object LOD : http://forum.thegamecreators.com/?m=forum_view&t=159658&b=5
* Quadtree : http://forum.thegamecreators.com/?m=forum_view&t=108837&b=18

- New Commands:
* dbApplyDynamicCubeMapToObject
* dbCreateDynamicCubeMap
* dbDeleteCameraEffect
* dbDeleteDynamicCubeMap
* dbGetCameraEffect
* dbIsCameraEffect
* dbIsDynamicCubeMap
* dbLoadCameraEffect
* dbRemoveCameraEffect
* dbRenderDynamicCubeMap
* dbSetCameraEffect
* dbSetCameraEffectConstantFloat
* dbSetCameraEffectConstantInteger
* dbSetCameraEffectConstantVector
* dbSetRuntimeErrorCallback
* dbSyncCamera"


Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 11th Dec 2011 16:08
PureGDK 2.0 beta 14 is out. This release further improves on the documentation along with some additional updates. This will be the last beta before the release candidate.

Thank you for helping test, DarkGDK testers!

http://forum.thegamecreators.com/?m=forum_view&t=177817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

Changelog:

Quote: "PureGDK 2.0 beta 14
-------------------
Bug fixes:
- dbHideMouse now correctly hides the mouse as expected.

Updates:
- Added a new tool "strtable.exe" for extracting string tables from DarkBasic Professional plugins. This tool will work with both licensed and user plugins.
- Added several new pages to the documentation regarding command-line tools, engine extensibility, wrapping plugins, and how to add additional language support.
- The PureGDK SDK is now bundled as part of the installer.
- The builddocs tool and source code is now bundled with the installer but will not receive any attention or documentation until after PureGDK 2.0 is released.
- Minor changes to libbuilder.h and plugin sources which are incompatible with previous releases.

- Added out-of-the-box support for the following plugins:
* Intel AppUp Helper Plugin : http://appdeveloper.intel.com/en-us/node/1097
* DarkBasic Professional Enhancement Pack : http://www.thegamecreators.com/?m=view_product&id=2083
* FPSC ODE Physics : (Built into DBP)"


Login to post a reply

Server time is: 2024-03-29 14:29:05
Your offset time is: 2024-03-29 14:29:05