New build going up this week
by Brian Ramage · in Torque Game Engine Advanced · 11/07/2006 (4:49 pm) · 18 replies
Since we aren't on CVS anymore, I thought I'd give you guys some notice in case you want to grab the current .zip for reference.
The new build will have the TGE 1.5 merge (targeted towards editor and gui fixes) and a bunch of small bug fixes.
The new build will have the TGE 1.5 merge (targeted towards editor and gui fixes) and a bunch of small bug fixes.
About the author
I have over 16 years of professional game development experience at both AAA studios like Dynamix, to indie studios like GarageGames and my own Black Jacket Games. I worked for 5 years at GarageGames as the lead developer on TGEA (precursor to T3D).
#2
11/08/2006 (1:04 pm)
YAY!!
#3
Maybe we could have a mailing list for when new releases are made and a change log?
11/08/2006 (4:11 pm)
Sounds good :-)Maybe we could have a mailing list for when new releases are made and a change log?
#4
11/09/2006 (5:20 pm)
OK, should be up now.
#5
11/09/2006 (5:42 pm)
Downloading :) Keep up the good work!
#6
You guys have really been kicking out alot of great stuff!
Todd
11/09/2006 (5:59 pm)
Brian, thanks for posting the heads up.You guys have really been kicking out alot of great stuff!
Todd
#7
11/09/2006 (10:20 pm)
Nice update. Lot of bug fixes and lighting changes. No atlas changes yet, but the rest of it was nice.
#8
11/10/2006 (6:12 am)
@Brian - Is there going to be a weekly build release or just when ever the are significant changes?
#9
Running the VC8 project directly (no merge) and building it gives the same error.
11/10/2006 (7:17 am)
I'm holding off on this update until the linker errors are dealt with. This in particular:Quote:
gfxD3DDevice.obj : error LNK2019: unresolved external symbol "class RefPtr__cdecl OsLoadLibrary(char const *)" (?OsLoadLibrary@@YA?AV?$RefPtr@VDLibrary@@@@PBD@Z) referenced in function "public: static void __cdecl GFXD3DDevice::enumerateAdapters(class Vector &)" (?enumerateAdapters@GFXD3DDevice@@SAXAAV?$Vector@UGFXAdapter@@@@@Z)
../example/TSE.exe : fatal error LNK1120: 1 unresolved externals
Running the VC8 project directly (no merge) and building it gives the same error.
#10
Edit: Add it to the project.
11/10/2006 (8:23 am)
You need to add winDLibrary.cpp to engine\platformWin32.Edit: Add it to the project.
#11
allocVertexBuffer.
Tracing through it, it seems that sgShadowProjector::sgClear() the call to sgShadowBuffer.set is somehow
causing a buffer allocation to fail. It APPEARS as though the only parameter that could cause the fail, is the 0 for numverts??
Basically, that call to clear is allocating a buffer of 0 verts. Which is a bit wasteful?
Console log doesnt give any clearer picture. Error is
Scene WelcomeScene open
Static Camera
Mapping string: MissionStart to index: 11
Mapping string: SyncClock to index: 12
Mapping string: SetGameGUI to index: 13
*** Initial Control Object
Activating DirectInput...
keyboard0 input device acquired.
Mapping string: Tarkof to index: 14
Fatal: (d:\torque-projects\tse_ms4_1\engine\gfx\d3d\gfxd3ddevice.h @ 23) D
I
Failed to allocate VB
Anyway, here is the call stack.
TSE_DEBUG.exe!Platform::debugBreak() Line 15 + 0x8 C++
TSE_DEBUG.exe!PlatformAssert::process(PlatformAssert::Type assertType=Fatal, const char * filename=0x00d10280, unsigned int lineNumber=23, const char * message=0x0012dc40) Line 89 C++
TSE_DEBUG.exe!PlatformAssert::processAssert(PlatformAssert::Type assertType=Fatal, const char * filename=0x00d10280, unsigned int lineNumber=23, const char * message=0x0012dc40) Line 109 + 0x23 C++
TSE_DEBUG.exe!D3DAssert(HRESULT hr=-2005530516, const char * info=0x00d107f4) Line 23 + 0x26 C++
> TSE_DEBUG.exe!GFXD3DDevice::allocVertexBuffer(unsigned int numVerts=0, unsigned int vertFlags=18, unsigned int vertSize=24, GFXBufferType bufferType=GFXBufferTypeStatic) Line 1493 + 0x5f C++
TSE_DEBUG.exe!GFXVertexBufferHandleBase::set(GFXDevice * theDevice=0x0191ff50, unsigned int numVerts=0, unsigned int flags=18, unsigned int vertexSize=24, GFXBufferType type=GFXBufferTypeStatic) Line 14 + 0x1d C++
TSE_DEBUG.exe!GFXVertexBufferHandle::set(GFXDevice * theDevice=0x0191ff50, unsigned int numVerts=0, GFXBufferType t=GFXBufferTypeStatic) Line 99 C++
TSE_DEBUG.exe!sgShadowProjector::sgClear() Line 147 C++
TSE_DEBUG.exe!sgShadowProjector::sgSetupShadowType() Line 185 C++
TSE_DEBUG.exe!sgShadowProjector::sgRender(float camdist=6.2529731) Line 574 C++
TSE_DEBUG.exe!sgObjectShadows::sgRender(SceneObject * parentobject=0x07ad6588, TSShapeInstance * shapeinstance=0x07ad6f78, float camdist=6.2529731) Line 307 + 0x11 C++
TSE_DEBUG.exe!ShapeBase::renderShadow(SceneState * state=0x03330af4, RenderInst * ri=0x08f149ac) Line 2435 C++
TSE_DEBUG.exe!RenderObjectMgr::render() Line 17 + 0x23 C++
TSE_DEBUG.exe!RenderInstManager::render() Line 285 + 0x2a C++
TSE_DEBUG.exe!SceneState::renderCurrentImages() Line 144 C++
TSE_DEBUG.exe!SceneGraph::traverseSceneTree(SceneState * pState=0x03330af4) Line 364 C++
TSE_DEBUG.exe!SceneGraph::renderScene(const unsigned int objectMask=4294967295) Line 190 C++
TSE_DEBUG.exe!GameRenderWorld() Line 1026 C++
TSE_DEBUG.exe!GameTSCtrl::renderWorld(const RectI & updateRect={...}) Line 42 C++
11/10/2006 (9:11 am)
I built the engine and ran it as debug (build with VC2003) and when the Orc is due to come into the scene, there is an Assert with a failure in:allocVertexBuffer.
Tracing through it, it seems that sgShadowProjector::sgClear() the call to sgShadowBuffer.set is somehow
causing a buffer allocation to fail. It APPEARS as though the only parameter that could cause the fail, is the 0 for numverts??
Basically, that call to clear is allocating a buffer of 0 verts. Which is a bit wasteful?
Console log doesnt give any clearer picture. Error is
Scene WelcomeScene open
Static Camera
Mapping string: MissionStart to index: 11
Mapping string: SyncClock to index: 12
Mapping string: SetGameGUI to index: 13
*** Initial Control Object
Activating DirectInput...
keyboard0 input device acquired.
Mapping string: Tarkof to index: 14
Fatal: (d:\torque-projects\tse_ms4_1\engine\gfx\d3d\gfxd3ddevice.h @ 23) D
I
Failed to allocate VB
Anyway, here is the call stack.
TSE_DEBUG.exe!Platform::debugBreak() Line 15 + 0x8 C++
TSE_DEBUG.exe!PlatformAssert::process(PlatformAssert::Type assertType=Fatal, const char * filename=0x00d10280, unsigned int lineNumber=23, const char * message=0x0012dc40) Line 89 C++
TSE_DEBUG.exe!PlatformAssert::processAssert(PlatformAssert::Type assertType=Fatal, const char * filename=0x00d10280, unsigned int lineNumber=23, const char * message=0x0012dc40) Line 109 + 0x23 C++
TSE_DEBUG.exe!D3DAssert(HRESULT hr=-2005530516, const char * info=0x00d107f4) Line 23 + 0x26 C++
> TSE_DEBUG.exe!GFXD3DDevice::allocVertexBuffer(unsigned int numVerts=0, unsigned int vertFlags=18, unsigned int vertSize=24, GFXBufferType bufferType=GFXBufferTypeStatic) Line 1493 + 0x5f C++
TSE_DEBUG.exe!GFXVertexBufferHandleBase::set(GFXDevice * theDevice=0x0191ff50, unsigned int numVerts=0, unsigned int flags=18, unsigned int vertexSize=24, GFXBufferType type=GFXBufferTypeStatic) Line 14 + 0x1d C++
TSE_DEBUG.exe!GFXVertexBufferHandle
TSE_DEBUG.exe!sgShadowProjector::sgClear() Line 147 C++
TSE_DEBUG.exe!sgShadowProjector::sgSetupShadowType() Line 185 C++
TSE_DEBUG.exe!sgShadowProjector::sgRender(float camdist=6.2529731) Line 574 C++
TSE_DEBUG.exe!sgObjectShadows::sgRender(SceneObject * parentobject=0x07ad6588, TSShapeInstance * shapeinstance=0x07ad6f78, float camdist=6.2529731) Line 307 + 0x11 C++
TSE_DEBUG.exe!ShapeBase::renderShadow(SceneState * state=0x03330af4, RenderInst * ri=0x08f149ac) Line 2435 C++
TSE_DEBUG.exe!RenderObjectMgr::render() Line 17 + 0x23 C++
TSE_DEBUG.exe!RenderInstManager::render() Line 285 + 0x2a C++
TSE_DEBUG.exe!SceneState::renderCurrentImages() Line 144 C++
TSE_DEBUG.exe!SceneGraph::traverseSceneTree(SceneState * pState=0x03330af4) Line 364 C++
TSE_DEBUG.exe!SceneGraph::renderScene(const unsigned int objectMask=4294967295) Line 190 C++
TSE_DEBUG.exe!GameRenderWorld() Line 1026 C++
TSE_DEBUG.exe!GameTSCtrl::renderWorld(const RectI & updateRect={...}) Line 42 C++
#12
Thanks and yes, I know it's pretty simple to fix. I just don't want to spend more time with fixes than I already am. Given that something so simple was missed, I'd rather wait for the changes to be tested before I use them and find myself stuck again.
I too get an assert when allocating the vertex buffer, or so it seems.
11/10/2006 (4:56 pm)
Quote:
You need to add winDLibrary.cpp to engine\platformWin32.
Thanks and yes, I know it's pretty simple to fix. I just don't want to spend more time with fixes than I already am. Given that something so simple was missed, I'd rather wait for the changes to be tested before I use them and find myself stuck again.
I too get an assert when allocating the vertex buffer, or so it seems.
#13
11/11/2006 (11:23 am)
I had the same problem as Phil. As a work around I remarked out line 144 in sgObjectBasedProjector.cc. Which is the call to 'sgShadowBuffer.set' Phil was referring to. Shadows still appear to work properly, so I'm not sure what the call was supposed to do.
#14
So if you're into making random changes to code you know nothing about (again, as I am), you can at least change it back to what it used to be.
11/11/2006 (11:44 am)
As Phil noted, the problem is the line sgShadowBuffer.set(..) in sgShadowProjector::sgClear(). I was changed from a GFXBufferTypeVolatile buffer to whatever it is now (I overwrote it like the brave soul that I am).So if you're into making random changes to code you know nothing about (again, as I am), you can at least change it back to what it used to be.
#15
Although, this would be an easy fix with CVS, as they could update the files needed to fix it properly, but with the system how it is now, it will be a whole new zip file which is bleh
11/11/2006 (1:08 pm)
I am wondering who QA'ed this build :pAlthough, this would be an easy fix with CVS, as they could update the files needed to fix it properly, but with the system how it is now, it will be a whole new zip file which is bleh
#16
11/11/2006 (1:14 pm)
Just out of curiosity why did GG move away from CVS?
#17
As Static is a write once, use many scenario, and what is trying to be done in the sgClear function is invalid, as such anyways.. (even if it is trying to "zero" out a vertex buffer, which isn't feasible for Static buffers, and serves no real purpose)
11/11/2006 (1:41 pm)
SgShadowBuffer gets set to a proper value later on when its calculating bounding boxes, which is fine, but with the change to a Static Vertex Buffer, this becomes a problem.As Static is a write once, use many scenario, and what is trying to be done in the sgClear function is invalid, as such anyways.. (even if it is trying to "zero" out a vertex buffer, which isn't feasible for Static buffers, and serves no real purpose)
#18
I have my original ones which don't use those controls, but it would be nice that if they are going to be a part of the release, that the needed controls are there.
11/11/2006 (2:08 pm)
Seem to be missing a proper guiColorPicker control still, along with GuiDirectoryTreeCtrl and GuiDirectoryFileListCtrl... Those are used in the LoadFileDlg/SaveFileDlg that came with this new release. I have my original ones which don't use those controls, but it would be nice that if they are going to be a part of the release, that the needed controls are there.
Torque 3D Owner Jonathon Stevens