mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-17 13:53:57 -07:00
# Attempted to make compilation faster by including as little as possible in some .h files, and moving it into .cpp. Fixed BaseTechCollection memory leak. This was SVN commit r3992.
109 lines
2.1 KiB
C++
109 lines
2.1 KiB
C++
#include "precompiled.h"
|
|
|
|
#include "MessageHandler.h"
|
|
#include "../GameLoop.h"
|
|
#include "../CommandProc.h"
|
|
|
|
#include "renderer/Renderer.h"
|
|
#include "graphics/GameView.h"
|
|
#include "gui/GUIbase.h"
|
|
#include "gui/CGUI.h"
|
|
#include "ps/CConsole.h"
|
|
#include "ps/Game.h"
|
|
#include "maths/MathUtil.h"
|
|
|
|
#include "ps/GameSetup/Config.h"
|
|
#include "ps/GameSetup/GameSetup.h"
|
|
|
|
|
|
namespace AtlasMessage {
|
|
|
|
|
|
MESSAGEHANDLER(Init)
|
|
{
|
|
UNUSED2(msg);
|
|
|
|
oglInit();
|
|
|
|
g_Quickstart = true;
|
|
Init(g_GameLoop->argc, g_GameLoop->argv, INIT_HAVE_VMODE|INIT_NO_GUI);
|
|
|
|
#if OS_WIN
|
|
// HACK (to stop things looking very ugly when scrolling) - should
|
|
// use proper config system.
|
|
if(oglHaveExtension("WGL_EXT_swap_control"))
|
|
pwglSwapIntervalEXT(1);
|
|
#endif
|
|
}
|
|
|
|
|
|
MESSAGEHANDLER(Shutdown)
|
|
{
|
|
UNUSED2(msg);
|
|
|
|
// Empty the CommandProc, to get rid of its references to entities before
|
|
// we kill the EntityManager
|
|
GetCommandProc().Destroy();
|
|
|
|
Shutdown();
|
|
|
|
g_GameLoop->rendering = false;
|
|
}
|
|
|
|
|
|
QUERYHANDLER(Exit)
|
|
{
|
|
UNUSED2(msg);
|
|
g_GameLoop->running = false;
|
|
}
|
|
|
|
|
|
MESSAGEHANDLER(RenderEnable)
|
|
{
|
|
g_GameLoop->rendering = msg->enabled;
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
MESSAGEHANDLER(SetContext)
|
|
{
|
|
g_GameLoop->glContext = msg->context;
|
|
Atlas_GLSetCurrent((void*)g_GameLoop->glContext);
|
|
}
|
|
|
|
|
|
MESSAGEHANDLER(ResizeScreen)
|
|
{
|
|
g_xres = msg->width;
|
|
g_yres = msg->height;
|
|
if (g_xres <= 2) g_xres = 2; // avoid GL errors caused by invalid sizes
|
|
if (g_yres <= 2) g_yres = 2;
|
|
|
|
SViewPort vp = { 0, 0, g_xres, g_yres };
|
|
|
|
if (g_Game)
|
|
{
|
|
g_Game->GetView()->GetCamera()->SetViewPort(&vp);
|
|
g_Game->GetView()->GetCamera()->SetProjection (1, 5000, DEGTORAD(20));
|
|
}
|
|
|
|
g_Renderer.SetViewport(vp);
|
|
g_Renderer.Resize(g_xres, g_yres);
|
|
|
|
if (g_Game)
|
|
g_Game->GetView()->GetCamera()->UpdateFrustum();
|
|
|
|
g_GUI.UpdateResolution();
|
|
|
|
g_Console->UpdateScreenSize(g_xres, g_yres);
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
MESSAGEHANDLER(RenderStyle)
|
|
{
|
|
g_Renderer.SetTerrainRenderMode(msg->wireframe ? EDGED_FACES : SOLID);
|
|
g_Renderer.SetModelRenderMode(msg->wireframe ? EDGED_FACES : SOLID);
|
|
}
|
|
|
|
}
|