Page 2 of 2

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Thu Jul 21, 2011 10:00 pm
by Mistrel
How can i resolve the error "can not find gdkengine.dll"?
i search for it in the puregdk directory but i didnt find it.
The engine library is built for you at installation. It can be rebuilt by running the .bat files in the PureGDK installation directory: "compile engine.bat" or "compile engine with plugins.bat".

The default location where this file is created by the installation is "D:\Program Files (x86)\PureGDK\examples". If it is not there please let me know. This could indicate a problem with the installer.

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Fri Jul 22, 2011 4:53 am
by alan_solis
The compile engine command works fine, it produce the gdkengine.dll missing.
The compile with plugins command gives this message "gdkc.exe: darkphysics.dll is configured with an invalid command"

after moving the dll to the puregdk\examples the demos works fine.
thanks

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Wed Jul 27, 2011 12:25 pm
by Mistrel
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=for ... 77817&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!

Image

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

Image

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:

Code: Select all

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:

Code: Select all

dbLoadSound(string fileName, int soundID = -1)
And for others which use function polymorphism, for example:

Code: Select all

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:

Code: Select all

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:

Code: Select all

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():

Code: Select all

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:

Code: Select all

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)

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Sun Jul 31, 2011 7:36 am
by Mistrel
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=for ... 77817&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:

Code: Select all

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.

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Sun Jul 31, 2011 7:38 am
by Mistrel
alan_solis wrote:The compile with plugins command gives this message "gdkc.exe: darkphysics.dll is configured with an invalid command"
This error has been addressed in Beta 8 by providing a dialog during the installation process which identifies the offending plugin; though you already know which it is.

This error indicates a licensing issue. If you installed Dark Physics, make sure you license it before installing PureGDK to avoid this error.

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Fri Aug 05, 2011 2:01 am
by Mistrel
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=for ... 77817&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:

Code: Select all

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.

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Tue Aug 09, 2011 6:01 pm
by Mistrel
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=for ... 77817&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:

Code: Select all

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

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Mon Oct 17, 2011 5:21 pm
by takis76
Hello Mistrel , today I purchased the PureGDK and I am in members area , but I see something about PureGDK ver 1.1.1-4.31 for PureBasic 4.31 , I don't see PureGDK ver 2.0 for PureBasic 4.60. I made my purchase from http://www.puregdk.com not from www.thegamecreators.com , what is the difference?
I would like to experiment with this a little.

Thank you.

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Wed May 16, 2012 6:39 am
by Blue Steel
I've been away for quite a while , (a few system rebuilds and maybe even an isp change) I've tried logging on to your site with ALL of my remembered emails. with no luck.

I know i purchased puregdk and I've even had it running at one stage. but now i can't remember how i got it / how to get it again and how to update

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Wed May 16, 2012 2:16 pm
by Mistrel
I know i purchased puregdk and I've even had it running at one stage. but now i can't remember how i got it / how to get it again and how to update
When transitioning from the old database to the new one, instead of moving everyone's account, I sent e-mails to everyone with a coupon code to redeem a free copy of PureGDK (now DarkGDK).

Send me a PM with the e-mail addresses you may have used and I'll check to see where I sent it. I'll also PM you the code if you can't find the e-mail; however, I'll still need to confirm your order, of course.

A PayPal transaction ID would also suffice.

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Wed May 16, 2012 6:02 pm
by Tenaja
How long does it take to set up mountainous terrain like that? What are the steps to do it? (Briefly--I am not looking for a tutorial, just a short description.) Thanks.

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Wed May 16, 2012 9:03 pm
by Mistrel
Tenaja wrote:How long does it take to set up mountainous terrain like that? What are the steps to do it? (Briefly--I am not looking for a tutorial, just a short description.) Thanks.
It's super easy. The source, media, and an example binary are included in the release candidate under the examples directory. Here is what the code looks like:

http://darkgdk.com/files/upload/media_t ... vanced.zip

Code: Select all

XIncludeFile "..\..\include\h.InitDarkGDK.pb"
XIncludeFile "..\..\include\darkgdk\core\h.DarkGDK.pb"

If Not InitDarkGDK("gdkengine.dll","..\..\..\..\")
  End
EndIf

;/ Show the DarkGDK render window
OpenWindow(0,0,0,640,480,"DarkGDK - Game Developer's Toolkit",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
dbOpenScreen(WindowID(0),0,0,640,480)

;/ Advanced Terrain System

;/ Sky textures from "SkyMatter"
;/ Heightmap created by David Smith (infiniteloop@optushome.com.au)
;/ Terrain base texture generated from Advanced Terrain System Plus

;/ Set up display and camera
dbBackdropOn()
dbAutoCamOff()
dbSetCameraRange(0.5, 30000)

;/ Movement
g_fSpeed.f=0.05
g_fTurn.f=0.3

;/ Set the current directory
SetCurrentDirectory("..\..\..\..\shared\terrain-advanced\media1")

;/ Load base And detail texture
dbLoadImage("texture.jpg",0,1)
dbLoadImage("detail.jpg",0,2)

dbCreateAdvancedTerrain(1) ;/ Create the terrain object
dbSetTerrainHeightMap(1,"map.jpg") ;/ Set the heightmap
dbSetTerrainScale(1,3,0.6,3) ;/ Set the scale
dbSetTerrainSplit(1,16) ;/ Split value by 16 * 16
dbSetTerrainTiling(1,4) ;/ Detail map tiling
dbSetTerrainLight(1,1,-0.25,0,1,1,0.78,0.5) ;/ Light - xdir, ydir, zdir, red, green, blue, intensity
dbSetTerrainTexture(1,1,2) ;/ Base And detail texture
dbBuildTerrain(1) ;/ Finally build the terrain

;/ Load our skybox
dbLoadObject("skybox2.x",0,#kGDK_3D_DBPro,200)
dbSetObjectLight(200,0)
dbSetObjectTexture(200,3,1)

dbPositionObject(200,1000,2000,4000)
dbScaleObject(200,30000,30000,30000)

;/ Reset the directory
SetCurrentDirectory("..")

;/ Position the camera
dbPositionCamera(385,23,100)

Repeat
  ;/ Handle user input And show some stats
  Gosub userInput
  Gosub information
  
  ;/ Get the height of the terrain at the current camera position
  a.f=dbGetTerrainGroundHeight(1,dbCameraPositionX(),dbCameraPositionZ())
  
  ;/ Position the camera slightly above the terrain
  dbPositionCamera(dbCameraPositionX(),a.f+3,dbCameraPositionZ())
  
  ;/ Let the terrain perform some internal work
  dbUpdateTerrain()
  
  ;/ Final screen update
  dbSync()
Until WindowEvent()=#PB_Event_CloseWindow Or dbKeyState(1)

dbCloseScreen()

End

;/ Simple mouse and keyboard movement
userInput:
  ;/ Move around with arrow keys
  dbControlCameraUsingArrowKeys(0,g_fSpeed.f,g_fTurn.f)
  
  ;/ Store old camera angle
  OldCamAngleY.f=CameraAngleY.f
  OldCamAngleX.f=CameraAngleX.f
  
  ;/ Store new camera angle
  CameraAngleY.f=dbWrapValue(CameraAngleY.f+dbMouseMoveX()*0.4)
  CameraAngleX.f=dbWrapValue(CameraAngleX.f+dbMouseMoveY()*0.4)
  
  ;/ Rotate camera
  dbYRotateCamera(dbCurveAngle(CameraAngleY.f,OldCamAngleY.f,24))
  dbXRotateCamera(dbCurveAngle(CameraAngleX.f,OldCamAngleX.f,24))
  
  ;/ Speed up movement
  If dbInKey()="+"
    If g_fSpeed.f<1000
      g_fSpeed.f=g_fSpeed.f+0.01
    EndIf
  EndIf
  
  ;/ Slow down movement
  If dbInKey()="-"
    If g_fSpeed.f>0.002
      g_fSpeed.f=g_fSpeed.f-0.001
    EndIf
  EndIf
Return

information:
  ;/ Show some information
  
  ;/ Start printing at top of screen
  dbSetCursor(0,0)
  
  ;/ Show frame rate
  dbPrint("fps = "+Str(dbScreenFPS()))
  dbPrint("")
  
  ;/ Current camera position
  dbPrint("")
  dbPrint("x = "+StrF(dbCameraPositionX()))
  dbPrint("y = "+StrF(dbCameraPositionY()))
  dbPrint("z = "+StrF(dbCameraPositionZ()))
  dbPrint("")
  
  ;/ Finally the polygon count
  dbPrint("polygon count = "+Str(dbStatistic(1)))
  dbPrint("")
Return

Re: PureGDK 2.0 - DarkBasic Professional for any language

Posted: Wed May 16, 2012 9:17 pm
by Mistrel
Just do you guys know, PureGDK has been re-branded as DarkGDK. I made a new thread here:

http://www.purebasic.fr/english/viewtop ... 14&t=49977