TestAARHUD::TestAARHUD(dtCore::DeltaWin& win, dtCore::Keyboard& keyboard, dtCore::Mouse& mouse, dtGame::LogController& logController, dtGame::TaskComponent& taskComponent, dtGame::ServerLoggerComponent& serverLogger) : dtGame::GMComponent("TestAARHUD") , mHUDState(&HUDState::MINIMAL) , mLastHUDStateBeforeHelp(&HUDState::MINIMAL) , mLogController(&logController) , mTaskComponent(&taskComponent) , mServerLoggerComponent(&serverLogger) , mWin(&win) , mMainWindow(NULL) , mGUI(NULL) , mHUDOverlay(NULL) , mHelpOverlay(NULL) , mStateText(NULL) , mSimTimeText(NULL) , mSpeedFactorText(NULL) , mNumMessagesText(NULL) , mRecordDurationText(NULL) , mNumTagsText(NULL) , mLastTagText(NULL) , mNumFramesText(NULL) , mLastFrameText(NULL) , mCurLogText(NULL) , mCurMapText(NULL) , mFirstTipText(NULL) , mSecondTipText(NULL) , mHelpTipText(NULL) , mHelp1Text(NULL) , mHelp2Text(NULL) , mHelp3Text(NULL) , mHelp4Text(NULL) , mHelp5Text(NULL) , mHelp6Text(NULL) , mHelp7Text(NULL) , mHelp8Text(NULL) , mHelp9Text(NULL) , mHelp10Text(NULL) , mHelp11Text(NULL) , mHelp12Text(NULL) , mHelp13Text(NULL) , mHelp14Text(NULL) , mHelp15Text(NULL) , mHelp16Text(NULL) , mHelp17Text(NULL) , mHelp18Text(NULL) , mHelp19Text(NULL) , mTasksHeaderText(NULL) , mTaskTextList() , mRightTextXOffset(180.0f) , mTextYTopOffset(10.0f) , mTextYSeparation(2.0f) , mTextHeight(20.0f) { SetupGUI(win, keyboard, mouse); }
void HGEGame::InitEngine() { SetupGUI(); // Инициализация компонентов движка Engine::GetSingleton()->SetInputSystem(new HGEInputSystem(mHGE)); Engine::GetSingleton()->SetResourceManager(new HGEResourceManager(mHGE)); Engine::GetSingleton()->SetSoundSystem(new HGESoundSystem(mHGE)); Engine::GetSingleton()->mHGE = mHGE; // Инициализация менеджера состояний GetStateManager()->SetRenderer(new HGERenderer(mHGE)); }
MainWindow::MainWindow() : m_timer(this) { SetupGUI(); InitSytem(); }
// Creation void VoxGame::Create(VoxSettings* pVoxSettings) { m_pRenderer = NULL; m_pGameCamera = NULL; m_pQubicleBinaryManager = NULL; m_pPlayer = NULL; m_pChunkManager = NULL; m_GUICreated = false; m_pVoxSettings = pVoxSettings; m_pVoxApplication = new VoxApplication(this, m_pVoxSettings); m_pVoxWindow = new VoxWindow(this, m_pVoxSettings); // Create application and window m_pVoxApplication->Create(); m_pVoxWindow->Create(); /* Setup the FPS and deltatime counters */ #ifdef _WIN32 QueryPerformanceCounter(&m_fpsPreviousTicks); QueryPerformanceCounter(&m_fpsCurrentTicks); QueryPerformanceFrequency(&m_fpsTicksPerSecond); #else struct timeval tm; gettimeofday(&tm, NULL); m_fpsCurrentTicks = (double)tm.tv_sec + (double)tm.tv_usec / 1000000.0; m_fpsPreviousTicks = (double)tm.tv_sec + (double)tm.tv_usec / 1000000.0; #endif //_WIN32 m_deltaTime = 0.0f; m_fps = 0.0f; /* Setup the initial starting wait timing */ m_initialWaitTimer = 0.0f; m_initialWaitTime = 0.5f; m_initialStartWait = true; /* Create the renderer */ m_windowWidth = m_pVoxWindow->GetWindowWidth(); m_windowHeight = m_pVoxWindow->GetWindowHeight(); m_pRenderer = new Renderer(m_windowWidth, m_windowHeight, 32, 8); /* Create the GUI */ m_pGUI = new OpenGLGUI(m_pRenderer); /* Create cameras */ m_pGameCamera = new Camera(m_pRenderer); m_pGameCamera->SetPosition(vec3(8.0f, 8.25f, 15.5f)); m_pGameCamera->SetFakePosition(m_pGameCamera->GetPosition()); m_pGameCamera->SetFacing(vec3(0.0f, 0.0f, -1.0f)); m_pGameCamera->SetUp(vec3(0.0f, 1.0f, 0.0f)); m_pGameCamera->SetRight(vec3(1.0f, 0.0f, 0.0f)); /* Create viewports */ m_pRenderer->CreateViewport(0, 0, m_windowWidth, m_windowHeight, 60.0f, &m_defaultViewport); /* Create fonts */ m_pRenderer->CreateFreeTypeFont("media/fonts/arial.ttf", 12, &m_defaultFont); /* Create lights */ m_defaultLightPosition = vec3(300.0f, 300.0f, 300.0f); m_defaultLightView = vec3(0.0f, 0.0f, 0.0f); vec3 lightDirection = m_defaultLightView - m_defaultLightPosition; m_pRenderer->CreateLight(Colour(1.0f, 1.0f, 1.0f, 1.0f), Colour(1.0f, 1.0f, 1.0f, 1.0f), Colour(0.0f, 0.0f, 0.0f, 1.0f), m_defaultLightPosition, lightDirection, 0.0f, 0.0f, 2.0f, 0.001f, 0.0f, true, false, &m_defaultLight); /* Create materials */ m_pRenderer->CreateMaterial(Colour(1.0f, 1.0f, 1.0f, 1.0f), Colour(1.0f, 1.0f, 1.0f, 1.0f), Colour(1.0f, 1.0f, 1.0f, 1.0f), Colour(0.0f, 0.0f, 0.0f, 1.0f), 64, &m_defaultMaterial); /* Create the frame buffers */ bool frameBufferCreated = false; frameBufferCreated = m_pRenderer->CreateFrameBuffer(-1, true, true, true, true, m_windowWidth, m_windowHeight, 1.0f, "SSAO", &m_SSAOFrameBuffer); frameBufferCreated = m_pRenderer->CreateFrameBuffer(-1, true, true, true, true, m_windowWidth, m_windowHeight, 5.0f, "Shadow", &m_shadowFrameBuffer); frameBufferCreated = m_pRenderer->CreateFrameBuffer(-1, true, true, true, true, m_windowWidth, m_windowHeight, 1.0f, "Deferred Lighting", &m_lightingFrameBuffer); frameBufferCreated = m_pRenderer->CreateFrameBuffer(-1, true, true, true, true, m_windowWidth, m_windowHeight, 1.0f, "Transparency", &m_transparencyFrameBuffer); frameBufferCreated = m_pRenderer->CreateFrameBuffer(-1, true, true, true, true, m_windowWidth, m_windowHeight, 1.0f, "FXAA", &m_FXAAFrameBuffer); frameBufferCreated = m_pRenderer->CreateFrameBuffer(-1, true, true, true, true, m_windowWidth, m_windowHeight, 1.0f, "FullScreen 1st Pass", &m_firstPassFullscreenBuffer); frameBufferCreated = m_pRenderer->CreateFrameBuffer(-1, true, true, true, true, m_windowWidth, m_windowHeight, 1.0f, "FullScreen 2nd Pass", &m_secondPassFullscreenBuffer); /* Create the shaders */ bool shaderLoaded = false; m_defaultShader = -1; m_phongShader = -1; m_SSAOShader = -1; m_shadowShader = -1; m_lightingShader = -1; m_textureShader = -1; m_fxaaShader = -1; m_blurVerticalShader = -1; m_blurHorizontalShader = -1; shaderLoaded = m_pRenderer->LoadGLSLShader("media/shaders/default.vertex", "media/shaders/default.pixel", &m_defaultShader); shaderLoaded = m_pRenderer->LoadGLSLShader("media/shaders/phong.vertex", "media/shaders/phong.pixel", &m_phongShader); shaderLoaded = m_pRenderer->LoadGLSLShader("media/shaders/shadow.vertex", "media/shaders/shadow.pixel", &m_shadowShader); shaderLoaded = m_pRenderer->LoadGLSLShader("media/shaders/texture.vertex", "media/shaders/texture.pixel", &m_textureShader); shaderLoaded = m_pRenderer->LoadGLSLShader("media/shaders/fullscreen/SSAO.vertex", "media/shaders/fullscreen/SSAO.pixel", &m_SSAOShader); shaderLoaded = m_pRenderer->LoadGLSLShader("media/shaders/fullscreen/fxaa.vertex", "media/shaders/fullscreen/fxaa.pixel", &m_fxaaShader); shaderLoaded = m_pRenderer->LoadGLSLShader("media/shaders/fullscreen/lighting.vertex", "media/shaders/fullscreen/lighting.pixel", &m_lightingShader); shaderLoaded = m_pRenderer->LoadGLSLShader("media/shaders/fullscreen/blur_vertical.vertex", "media/shaders/fullscreen/blur_vertical.pixel", &m_blurVerticalShader); shaderLoaded = m_pRenderer->LoadGLSLShader("media/shaders/fullscreen/blur_horizontal.vertex", "media/shaders/fullscreen/blur_horizontal.pixel", &m_blurHorizontalShader); /* Create the chunk manager*/ m_pChunkManager = new ChunkManager(m_pRenderer, m_pVoxSettings); m_pChunkManager->SetStepLockEnabled(m_pVoxSettings->m_stepUpdating); /* Create the qubicle binary file manager */ m_pQubicleBinaryManager = new QubicleBinaryManager(m_pRenderer); /* Create the lighting manager */ m_pLightingManager = new LightingManager(m_pRenderer); /* Create the block particle manager */ m_pBlockParticleManager = new BlockParticleManager(m_pRenderer); /* Create the player */ m_pPlayer = new Player(m_pRenderer, m_pChunkManager, m_pQubicleBinaryManager, m_pLightingManager, m_pBlockParticleManager); /* Create the frontend manager */ m_pFrontendManager = new FrontendManager(m_pRenderer); /* Create module and manager linkage */ m_pChunkManager->SetPlayer(m_pPlayer); /* Initial chunk creation (Must be after player pointer sent to chunks) */ m_pChunkManager->InitializeChunkCreation(); // Keyboard movement m_bKeyboardForward = false; m_bKeyboardBackward = false; m_bKeyboardStrafeLeft = false; m_bKeyboardStrafeRight = false; m_bKeyboardLeft = false; m_bKeyboardRight = false; m_bKeyboardUp = false; m_bKeyboardDown = false; m_bKeyboardSpace = false; // Joystick flags m_bJoystickJump = false; // Combat flags m_bAttackPressed_Mouse = false; m_bAttackReleased_Mouse = false; m_bAttackPressed_Joystick = false; m_bAttackReleased_Joystick = false; m_bCanDoAttack_Mouse = true; m_bCanDoAttack_Joystick = true; // Camera movement m_bCameraRotate = false; m_pressedX = 0; m_pressedY = 0; m_currentX = 0; m_currentY = 0; m_cameraDistance = m_pGameCamera->GetZoomAmount(); m_maxCameraDistance = m_cameraDistance; m_autoCameraMovingModifier = 1.0f; // Player movement m_keyboardMovement = false; m_gamepadMovement = false; m_movementSpeed = 0.0f; m_movementDragTime = 0.45f; m_movementIncreaseTime = 0.25f; m_maxMovementSpeed = 10.0f; m_movementStopThreshold = 0.05f; // Toggle flags m_deferredRendering = true; m_modelWireframe = false; m_modelAnimationIndex = 0; m_multiSampling = true; m_ssao = true; m_blur = false; m_shadows = true; m_dynamicLighting = true; m_animationUpdate = true; m_fullscreen = m_pVoxSettings->m_fullscreen; m_debugRender = false; m_instanceRender = true; // Camera mode m_cameraMode = CameraMode_Debug; m_previousCameraMode = CameraMode_Debug; // Game mode m_gameMode = GameMode_Debug; SetGameMode(m_gameMode); /* Create, setup and skin the GUI components */ CreateGUI(); SetupGUI(); SkinGUI(); }