Moved Xerces initialisation out of CObjectEntry to here (still need to moved GUI and entity XML code at some point). Added simple fixed camera view for basic profiling.
This was SVN commit r409.
This commit is contained in:
parent
9210297729
commit
bd0d3e1c36
@ -40,6 +40,7 @@
|
||||
#include "EntityHandles.h"
|
||||
#include "EntityManager.h"
|
||||
#include "PathfindEngine.h"
|
||||
#include "XML.h"
|
||||
|
||||
|
||||
#ifndef NO_GUI
|
||||
@ -69,7 +70,9 @@ static bool g_NoGLVBO=false;
|
||||
// flag to switch on shadows
|
||||
static bool g_Shadows=false;
|
||||
// flag to switch off pbuffers
|
||||
static bool g_NoPBuffer=false;
|
||||
static bool g_NoPBuffer=true;
|
||||
// flag to switch on fixed frame timing (RC: I'm using this for profiling purposes)
|
||||
static bool g_FixedFrameTiming=false;
|
||||
static bool g_VSync = false;
|
||||
|
||||
static bool g_EntGraph = false;
|
||||
@ -339,7 +342,7 @@ static void Render()
|
||||
// overlay mode
|
||||
glPushAttrib(GL_ENABLE_BIT);
|
||||
glDisable(GL_CULL_FACE);
|
||||
glBlendFunc(GL_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glEnable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.5);
|
||||
glEnable(GL_ALPHA_TEST);
|
||||
@ -438,6 +441,12 @@ void ParseArgs(int argc, char* argv[])
|
||||
}
|
||||
break;
|
||||
|
||||
case 'f':
|
||||
if (strncmp(argv[i]+1,"fixedframe",10)==0) {
|
||||
g_FixedFrameTiming=true;
|
||||
}
|
||||
break;
|
||||
|
||||
case 's':
|
||||
if (strncmp(argv[i]+1,"shadows",7)==0) {
|
||||
g_Shadows=true;
|
||||
@ -541,6 +550,11 @@ int main(int argc, char* argv[])
|
||||
debug_warn("SDL_SetGamma failed");
|
||||
}
|
||||
|
||||
// start up Xerces - only needs to be done once (unless locale changes mid-game, for
|
||||
// some reason), not on every XML file load; multiple initialization calls are ok, though,
|
||||
// provided there are a matching number of XMLPlatformUtils::Terminate calls
|
||||
XMLPlatformUtils::Initialize();
|
||||
|
||||
|
||||
res_mount("", "mods/official/", 0);
|
||||
|
||||
@ -623,6 +637,22 @@ if(!g_MapFile)
|
||||
// render everything to a blank frame to force renderer to load everything
|
||||
RenderNoCull();
|
||||
|
||||
size_t frameCount=0;
|
||||
if (g_FixedFrameTiming) {
|
||||
#if 0 // TOPDOWN
|
||||
g_Camera.SetProjection(1.0f,10000.0f,DEGTORAD(90));
|
||||
g_Camera.m_Orientation.SetIdentity();
|
||||
g_Camera.m_Orientation.RotateX(DEGTORAD(90));
|
||||
g_Camera.m_Orientation.Translate(CELL_SIZE*250*0.5, 250, CELL_SIZE*250*0.5);
|
||||
#else // std view
|
||||
g_Camera.SetProjection(1.0f,10000.0f,DEGTORAD(20));
|
||||
g_Camera.m_Orientation.SetXRotation(DEGTORAD(30));
|
||||
g_Camera.m_Orientation.RotateY(DEGTORAD(-45));
|
||||
g_Camera.m_Orientation.Translate(350, 350, -275);
|
||||
#endif
|
||||
g_Camera.UpdateFrustum();
|
||||
}
|
||||
|
||||
g_Console->RegisterFunc(Testing, "Testing");
|
||||
|
||||
|
||||
@ -662,13 +692,15 @@ g_Console->RegisterFunc(Testing, "Testing");
|
||||
float TimeSinceLastFrame = (float)(time1-time0);
|
||||
in_get_events();
|
||||
UpdateWorld(TimeSinceLastFrame);
|
||||
terr_update(TimeSinceLastFrame);
|
||||
if (!g_FixedFrameTiming) terr_update(float(TimeSinceLastFrame));
|
||||
g_Console->Update(TimeSinceLastFrame);
|
||||
Render();
|
||||
SDL_GL_SwapBuffers();
|
||||
|
||||
calc_fps();
|
||||
time0=time1;
|
||||
frameCount++;
|
||||
if (g_FixedFrameTiming && frameCount==100) quit=true;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -693,6 +725,9 @@ g_Console->RegisterFunc(Testing, "Testing");
|
||||
// destroy renderer
|
||||
delete CRenderer::GetSingletonPtr();
|
||||
|
||||
// close down Xerces
|
||||
XMLPlatformUtils::Terminate();
|
||||
|
||||
//shut down FMOD - needs adding to the atexit calls above
|
||||
FSOUND_Close();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user