// ============================================================================================ // ================================= Renderering ============================================== // ============================================================================================ void Renderer::Render( ) { SDL_RenderClear( renderer ); switch ( gameState ) { case GameState::MainMenu: case GameState::Options: case GameState::Lobby: RenderMenu(); break; case GameState::InGame: RenderGameObjects(); FALLTHROUGH case GameState::InGameWait: RenderText(); break; case GameState::Paused: RenderPause(); FALLTHROUGH case GameState::GameOver: RenderText(); break; default: break; } SDL_RenderPresent( renderer ); }
void HlView::Render() { if( BtStrCompare( m_lastArchiveName, m_archiveName ) == BtFalse ) { Unload(); Load(); } if( UiKeyboard::pInstance()->IsPressed( UiKeyCode_F2 ) ) { Unload(); Load(); } // Cache the screen dimension MtVector2 v2Dimension = RsRenderTarget::GetCurrent()->GetCamera().GetDimension(); if( m_isBackground ) { // Render from the top left corner 0, 0 downward RsColour colour( RsColour::WhiteColour() ); MtVector2 v2Position = MtVector2(0, 0); m_pBackgroundMaterial->Render( v2Position, v2Dimension, colour, 6 ); } // Render the menu RenderMenu(); }
void HlView::Render() { if( !m_isLoaded ) { return; } // if( BtStrCompare( m_lastArchiveName, m_archiveName ) == BtFalse ) // { // Unload(); // Load(); // } if( UiKeyboard::pInstance()->IsPressed( ReloadMenuKey ) ) { Unload(); Load(); } if( m_isBackground ) { BtAssert( m_pBackgroundMaterial ); // Render from the top left corner 0, 0 downward RsColour colour( RsColour::WhiteColour() ); MtVector2 v2Position = MtVector2(0, 0); m_pBackgroundMaterial->Render( v2Position, m_v2RenderDimension, colour, m_backgroundSortOrder ); } // Render the menu RenderMenu(); }
void MyPS2Application::Menu() { if (!menu_loaded) // Check if menu background was loaded, if not then load it. { printf("Loading Menu sprite\n"); LoadMenu(); } MenuControlUpdate(); RenderMenu(); }
//Output void cGame::Render() { glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); if (level == MENU) { RenderMenu(IMG_MENU); }else if (level == ABOUT) { RenderMenu(IMG_ABOUT); }else if (level == CONTROLS) { RenderMenu(IMG_CONTROLS); }else { Scene.Draw(Data.GetID(IMG_TILESET)); for (int i = 0; i < allDogs.size(); ++i) allDogs[i].Draw(Data.GetID(IMG_DOG)); for (int i = 0; i < allOctopus.size(); ++i) { allOctopus[i].Draw(Data.GetID(IMG_OCTOPUS)); if (allOctopus[i].hasBall()) allOctopus[i].getBall()->Draw(Data.GetID(IMG_OCTOPUS)); } for (int i=0; i < Isaac.getAllTears()->size(); ++i) { Isaac.getTear(i)->Draw(Data.GetID(IMG_OCTOPUS)); } if (!Player.isDead()) Player.Draw(Data.GetID(IMG_PLAYER)); for (int i = 0; i < allSwords.size(); ++i) allSwords[i].Draw(Data.GetID(IMG_SWORD)); Isaac.Draw(Data.GetID(IMG_ISAAC)); DrawMenu(); } glutSwapBuffers(); }
void ClassDemoApp::Render() { program->setModelMatrix(modelMatrix); program->setProjectionMatrix(projectionMatrix); program->setViewMatrix(viewMatrix); glClear(GL_COLOR_BUFFER_BIT); switch (state) { case STATE_MENU: RenderMenu(); break; case STATE_GAME: RenderGame(); break; case STATE_END: if (amAlive){ win(); } else{ lose(); } break; } SDL_GL_SwapWindow(displayWindow); }
/* * Display Function. * (Global vailiables used are, MODEL, D_PARAM and PARTICLE.) */ void Display(void){ int width, height; // Load data of particles. loadresult(&model, Ar, DLC, &disp); loadmeshdata("meshdata.txt", &model, mesh2, &disp); // Render starts here. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); width = glutGet(GLUT_WINDOW_WIDTH); height = glutGet(GLUT_WINDOW_HEIGHT); glViewport(0, 0, width, height); // アニメーションの描画 ------------------------------ glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)width / (double)height, 2.9, 10000.0); glMatrixMode(GL_MODELVIEW); glPushMatrix(); Polarview(&disp); // ポーラービュー設定 glTranslatef(-0.5*(float)model.sizey, -0.5*(float)model.sizez, -0.5*(float)model.sizex); //RenderSolidCarbon(&model); // カーボン描画 RenderBasis(&model); // 基盤の描画 RenderFlame(&model); // フレーム描画 RenderParticles(&model, Ar, DLC, &disp); // 粒子の描画 glPopMatrix(); //----------------------------------------------------------- // ステップ数などの描画-------------------------------------- glViewport(0, height - 80, 200, 80); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 2.5, 0.0, 1.0, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); glDisable(GL_LIGHTING); glPushMatrix(); RenderText(&disp, &model); glPopMatrix(); glEnable(GL_LIGHTING); //----------------------------------------------------------- // 操作盤の描画---------------------------------------------- glViewport(width - 280, 0, 280, 101); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 280, 0.0, 101, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); glDisable(GL_LIGHTING); glPushMatrix(); RenderMenu(&model, &disp); glPopMatrix(); glEnable(GL_LIGHTING); //----------------------------------------------------------- glutSwapBuffers(); };
/** * Handle Stereo Drawing. ***/ void* StereoPresenter::Provoke(void* pThis, int eD3D, int eD3DInterface, int eD3DMethod, DWORD dwNumberConnected, int& nProvokerIndex) { #ifdef _DEBUG_STP { wchar_t buf[128]; wsprintf(buf, L"[STP] ifc %u mtd %u", eD3DInterface, eD3DMethod); OutputDebugString(buf); } #endif // update our global time static float fGlobalTime = 0.0f; static DWORD dwTimeStart = 0; DWORD dwTimeCur = GetTickCount(); if (dwTimeStart == 0) dwTimeStart = dwTimeCur; fGlobalTime = (dwTimeCur - dwTimeStart) / 1000.0f; // only present accepted bool bValid = false; if (((eD3DInterface == INTERFACE_IDXGISWAPCHAIN) && (eD3DMethod == METHOD_IDXGISWAPCHAIN_PRESENT)) || ((eD3DInterface == INTERFACE_IDIRECT3DDEVICE9) && (eD3DMethod == METHOD_IDIRECT3DDEVICE9_PRESENT))) bValid = true; if (!bValid) return nullptr; // clear all previous menu events ZeroMemory(&m_abMenuEvents[0], sizeof(VireioMenuEvent)* (int)VireioMenuEvent::NumberOfEvents); // main menu update ? if ((m_sMainMenu.bOnChanged) && (!m_sMenuControl.eSelectionMovement)) { m_sMainMenu.bOnChanged = false; // loop through entries for (size_t nIx = 0; nIx < m_sMainMenu.asEntries.size(); nIx++) { // entry index changed ? if (m_sMainMenu.asEntries[nIx].bOnChanged) { m_sMainMenu.asEntries[nIx].bOnChanged = false; // set new menu index.. selection to zero m_sMenuControl.nMenuIx = (INT)nIx; m_sMenuControl.unSelectionFormer = m_sMenuControl.unSelection = 0; } } } // sub menu update ? if ((m_sSubMenu.bOnChanged) && (!m_sMenuControl.eSelectionMovement)) { m_sSubMenu.bOnChanged = false; // exit ? if (m_sSubMenu.bOnExit) m_sMenuControl.nMenuIx = -1; // loop through entries for (size_t nIx = 0; nIx < m_sSubMenu.asEntries.size(); nIx++) { // entry index changed ? if (m_sSubMenu.asEntries[nIx].bOnChanged) { m_sSubMenu.asEntries[nIx].bOnChanged = false; // font ? if (nIx == ENTRY_FONT) { // get device and context ID3D11Device* pcDevice = nullptr; ID3D11DeviceContext* pcContext = nullptr; HRESULT nHr = S_OK; if ((eD3DInterface == INTERFACE_IDXGISWAPCHAIN) && (eD3DMethod == METHOD_IDXGISWAPCHAIN_PRESENT)) nHr = GetDeviceAndContext((IDXGISwapChain*)pThis, &pcDevice, &pcContext); else { if (m_ppcTexView11[0]) { if (*(m_ppcTexView11[0])) (*(m_ppcTexView11[0]))->GetDevice(&pcDevice); if (pcDevice) pcDevice->GetImmediateContext(&pcContext); else nHr = E_FAIL; if (!pcContext) nHr = E_FAIL; } else nHr = E_FAIL; } if (SUCCEEDED(nHr)) { HRESULT nHr; // get base directory std::string strVireioPath = GetBaseDir(); // add file path strVireioPath += "font//"; strVireioPath += m_sSubMenu.asEntries[nIx].astrValueEnumeration[m_sSubMenu.asEntries[nIx].unValue]; strVireioPath += ".spritefont"; OutputDebugStringA(strVireioPath.c_str()); // create font, make backup VireioFont* pcOldFont = m_pcFontSegeo128; m_pcFontSegeo128 = new VireioFont(pcDevice, pcContext, strVireioPath.c_str(), 128.0f, 1.0f, nHr, 1); if (FAILED(nHr)) { delete m_pcFontSegeo128; m_pcFontSegeo128 = pcOldFont; } else { // set new font name m_strFontName = m_sSubMenu.asEntries[nIx].astrValueEnumeration[m_sSubMenu.asEntries[nIx].unValue]; // write to ini file char szFilePathINI[1024]; GetCurrentDirectoryA(1024, szFilePathINI); strcat_s(szFilePathINI, "\\VireioPerception.ini"); WritePrivateProfileStringA("Stereo Presenter", "strFontName", m_strFontName.c_str(), szFilePathINI); } } SAFE_RELEASE(pcDevice); SAFE_RELEASE(pcContext); } } } } // get xbox controller input XINPUT_STATE sControllerState; bool bControllerAttached = false; ZeroMemory(&sControllerState, sizeof(XINPUT_STATE)); if (XInputGetState(0, &sControllerState) == ERROR_SUCCESS) { bControllerAttached = true; } if (true) { #pragma region menu hotkeys static bool bReleased = true; static bool s_bOnMenu = false; // keyboard menu on/off event + get hand poses UINT uIxHandPoses = 0, uIxPoseRequest = 0; s_bOnMenu = GetAsyncKeyState(VK_LCONTROL) && GetAsyncKeyState(0x51); for (UINT unIx = 0; unIx < 32; unIx++) { // set menu bool event if (m_apsSubMenues[unIx]) { if (m_apsSubMenues[unIx]->bOnBack) { // main menu ? exit if ((m_sMenuControl.nMenuIx == -1) && (!m_sMenuControl.eSelectionMovement)) s_bOnMenu = true; else m_abMenuEvents[VireioMenuEvent::OnExit] = TRUE; m_apsSubMenues[unIx]->bOnBack = false; } // hand poses ? if (m_apsSubMenues[unIx]->bHandPosesPresent) uIxHandPoses = unIx; if (m_apsSubMenues[unIx]->bHandPosesRequest) uIxPoseRequest = unIx; } } if ((m_apsSubMenues[uIxHandPoses]) && (m_apsSubMenues[uIxPoseRequest])) { // copy the hand pose data to the request node m_apsSubMenues[uIxPoseRequest]->sPoseMatrix[0] = m_apsSubMenues[uIxHandPoses]->sPoseMatrix[0]; m_apsSubMenues[uIxPoseRequest]->sPoseMatrix[1] = m_apsSubMenues[uIxHandPoses]->sPoseMatrix[1]; m_apsSubMenues[uIxPoseRequest]->sPosition[0] = m_apsSubMenues[uIxHandPoses]->sPosition[0]; m_apsSubMenues[uIxPoseRequest]->sPosition[1] = m_apsSubMenues[uIxHandPoses]->sPosition[1]; } // static hotkeys : LCTRL+Q - toggle vireio menu // F12 - toggle stereo output if (GetAsyncKeyState(VK_F12)) { m_bHotkeySwitch = true; } else if (s_bOnMenu) { m_bMenuHotkeySwitch = true; } else if (m_bMenuHotkeySwitch) { m_bMenuHotkeySwitch = false; m_bMenu = !m_bMenu; for (UINT unIx = 0; unIx < 32; unIx++) { // set sub menu active if menu is active if (m_apsSubMenues[unIx]) m_apsSubMenues[unIx]->bIsActive = m_bMenu; } } else if (m_bHotkeySwitch) { if (m_eStereoMode) m_eStereoMode = VireioMonitorStereoModes::Vireio_Mono; else m_eStereoMode = VireioMonitorStereoModes::Vireio_SideBySide; m_bHotkeySwitch = false; } else bReleased = true; #pragma endregion #pragma region menu events // menu is shown ? if (m_bMenu) { // handle controller if (bControllerAttached) { if (sControllerState.Gamepad.wButtons & XINPUT_GAMEPAD_BACK) { m_abMenuEvents[VireioMenuEvent::OnExit] = TRUE; } if (sControllerState.Gamepad.wButtons & XINPUT_GAMEPAD_A) { m_abMenuEvents[VireioMenuEvent::OnAccept] = TRUE; } if (sControllerState.Gamepad.sThumbLY > 28000) m_abMenuEvents[VireioMenuEvent::OnUp] = TRUE; if (sControllerState.Gamepad.sThumbLY < -28000) m_abMenuEvents[VireioMenuEvent::OnDown] = TRUE; if (sControllerState.Gamepad.sThumbLX > 28000) m_abMenuEvents[VireioMenuEvent::OnRight] = TRUE; if (sControllerState.Gamepad.sThumbLX < -28000) m_abMenuEvents[VireioMenuEvent::OnLeft] = TRUE; } // loop through sub menues for (UINT unIx = 0; unIx < 32; unIx++) { // set bool events if (m_apsSubMenues[unIx]) { if (m_apsSubMenues[unIx]->bOnUp) m_abMenuEvents[VireioMenuEvent::OnUp] = TRUE; if (m_apsSubMenues[unIx]->bOnDown) m_abMenuEvents[VireioMenuEvent::OnDown] = TRUE; if (m_apsSubMenues[unIx]->bOnLeft) m_abMenuEvents[VireioMenuEvent::OnLeft] = TRUE; if (m_apsSubMenues[unIx]->bOnRight) m_abMenuEvents[VireioMenuEvent::OnRight] = TRUE; if (m_apsSubMenues[unIx]->bOnAccept) m_abMenuEvents[VireioMenuEvent::OnAccept] = TRUE; // clear events m_apsSubMenues[unIx]->bOnUp = false; m_apsSubMenues[unIx]->bOnDown = false; m_apsSubMenues[unIx]->bOnLeft = false; m_apsSubMenues[unIx]->bOnRight = false; m_apsSubMenues[unIx]->bOnAccept = false; m_apsSubMenues[unIx]->bOnBack = false; } } #pragma endregion #pragma region menu update/render // update UpdateMenu(fGlobalTime); // get device and context ID3D11Device* pcDevice = nullptr; ID3D11DeviceContext* pcContext = nullptr; HRESULT nHr = S_OK; if ((eD3DInterface == INTERFACE_IDXGISWAPCHAIN) && (eD3DMethod == METHOD_IDXGISWAPCHAIN_PRESENT)) nHr = GetDeviceAndContext((IDXGISwapChain*)pThis, &pcDevice, &pcContext); else { if (m_ppcTexView11[0]) { if (*(m_ppcTexView11[0])) (*(m_ppcTexView11[0]))->GetDevice(&pcDevice); if (pcDevice) pcDevice->GetImmediateContext(&pcContext); else nHr = E_FAIL; if (!pcContext) nHr = E_FAIL; } else nHr = E_FAIL; } if (FAILED(nHr)) { // release frame texture+view if (pcDevice) { pcDevice->Release(); pcDevice = nullptr; } if (pcContext) { pcContext->Release(); pcContext = nullptr; } return nullptr; } // create the depth stencil... if D3D11 if ((eD3DInterface == INTERFACE_IDXGISWAPCHAIN) && (eD3DMethod == METHOD_IDXGISWAPCHAIN_PRESENT) && (!m_pcDSGeometry11)) { ID3D11Texture2D* pcBackBuffer = nullptr; ((IDXGISwapChain*)pThis)->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pcBackBuffer); if (pcBackBuffer) { D3D11_TEXTURE2D_DESC sDesc; pcBackBuffer->GetDesc(&sDesc); pcBackBuffer->Release(); // Create depth stencil texture D3D11_TEXTURE2D_DESC descDepth; ZeroMemory(&descDepth, sizeof(descDepth)); descDepth.Width = sDesc.Width; descDepth.Height = sDesc.Height; descDepth.MipLevels = 1; descDepth.ArraySize = 1; descDepth.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; descDepth.SampleDesc.Count = 1; descDepth.SampleDesc.Quality = 0; descDepth.Usage = D3D11_USAGE_DEFAULT; descDepth.BindFlags = D3D11_BIND_DEPTH_STENCIL; descDepth.CPUAccessFlags = 0; descDepth.MiscFlags = 0; if (FAILED(pcDevice->CreateTexture2D(&descDepth, NULL, &m_pcDSGeometry11))) OutputDebugString(L"[STP] Failed to create depth stencil."); // Create the depth stencil view D3D11_DEPTH_STENCIL_VIEW_DESC descDSV; ZeroMemory(&descDSV, sizeof(descDSV)); descDSV.Format = descDepth.Format; descDSV.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; descDSV.Texture2D.MipSlice = 0; if (FAILED(pcDevice->CreateDepthStencilView(m_pcDSGeometry11, &descDSV, &m_pcDSVGeometry11))) OutputDebugString(L"[STP] Failed to create depth stencil view."); } } // get the viewport UINT dwNumViewports = 1; D3D11_VIEWPORT psViewport[16]; pcContext->RSGetViewports(&dwNumViewports, psViewport); // backup all states D3DX11_STATE_BLOCK sStateBlock; CreateStateblock(pcContext, &sStateBlock); // clear all states, set targets ClearContextState(pcContext); // set the menu texture (if present) if (m_ppcTexViewMenu) { if (*m_ppcTexViewMenu) { // set render target ID3D11RenderTargetView* pcRTView = *m_ppcTexViewMenu; pcContext->OMSetRenderTargets(1, &pcRTView, NULL); // set viewport D3D11_VIEWPORT sViewport = {}; sViewport.TopLeftX = 0; sViewport.TopLeftY = 0; sViewport.Width = 1024; sViewport.Height = 1024; sViewport.MinDepth = 0.0f; sViewport.MaxDepth = 1.0f; pcContext->RSSetViewports(1, &sViewport); // clear render target...zero alpha FLOAT afColorRgba[4] = { 0.5f, 0.4f, 0.2f, 0.4f }; pcContext->ClearRenderTargetView(*m_ppcTexViewMenu, afColorRgba); } } else if ((eD3DInterface == INTERFACE_IDXGISWAPCHAIN) && (eD3DMethod == METHOD_IDXGISWAPCHAIN_PRESENT)) { // set first active render target - the stored back buffer - get the stored private data view ID3D11Texture2D* pcBackBuffer = nullptr; ((IDXGISwapChain*)pThis)->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pcBackBuffer); ID3D11RenderTargetView* pcView = nullptr; UINT dwSize = sizeof(pcView); pcBackBuffer->GetPrivateData(PDIID_ID3D11TextureXD_RenderTargetView, &dwSize, (void*)&pcView); if (dwSize) { pcContext->OMSetRenderTargets(1, (ID3D11RenderTargetView**)&pcView, m_pcDSVGeometry11); pcView->Release(); } else { // create render target view for the back buffer ID3D11RenderTargetView* pcRTV = nullptr; pcDevice->CreateRenderTargetView(pcBackBuffer, NULL, &pcRTV); if (pcRTV) { pcBackBuffer->SetPrivateDataInterface(PDIID_ID3D11TextureXD_RenderTargetView, pcRTV); pcRTV->Release(); } } pcContext->RSSetViewports(dwNumViewports, psViewport); pcBackBuffer->Release(); // clear the depth stencil pcContext->ClearDepthStencilView(m_pcDSVGeometry11, D3D11_CLEAR_DEPTH, 1.0f, 0); } // create the font class if not present nHr = S_OK; if (!m_pcFontSegeo128) { // get base directory std::string strVireioPath = GetBaseDir(); // add file path strVireioPath += "font//"; strVireioPath += m_strFontName; strVireioPath += ".spritefont"; OutputDebugStringA(strVireioPath.c_str()); // create font m_pcFontSegeo128 = new VireioFont(pcDevice, pcContext, strVireioPath.c_str(), 128.0f, 1.0f, nHr, 1); } if (FAILED(nHr)) { delete m_pcFontSegeo128; m_pcFontSegeo128 = nullptr; } // render text (if font present) if (m_pcFontSegeo128) { m_pcFontSegeo128->SetTextAttributes(0.0f, 0.2f, 0.0001f); // set additional tremble for "accepted" event float fDepthTremble = 0.0f; if (m_sMenuControl.eSelectionMovement == MenuControl::SelectionMovement::Accepted) { float fActionTimeElapsed = (fGlobalTime - m_sMenuControl.fActionStartTime) / m_sMenuControl.fActionTime; fDepthTremble = sin(fActionTimeElapsed*PI_F) * -3.0f; } m_pcFontSegeo128->ToRender(pcContext, fGlobalTime, m_sMenuControl.fYOrigin, 30.0f, fDepthTremble); RenderMenu(pcDevice, pcContext); } else OutputDebugString(L"Failed to create font!"); // set back device ApplyStateblock(pcContext, &sStateBlock); if (pcDevice) { pcDevice->Release(); pcDevice = nullptr; } if (pcContext) { pcContext->Release(); pcContext = nullptr; } } #pragma endregion #pragma region draw stereo (optionally) // draw stereo target to screen (optionally) if ((m_eStereoMode) && (eD3DInterface == INTERFACE_IDXGISWAPCHAIN) && (eD3DMethod == METHOD_IDXGISWAPCHAIN_PRESENT)) { // DX 11 if ((m_ppcTexView11[0]) && (m_ppcTexView11[1])) { // get device and context ID3D11Device* pcDevice = nullptr; ID3D11DeviceContext* pcContext = nullptr; if (FAILED(GetDeviceAndContext((IDXGISwapChain*)pThis, &pcDevice, &pcContext))) { // release frame texture+view if (pcDevice) { pcDevice->Release(); pcDevice = nullptr; } if (pcContext) { pcContext->Release(); pcContext = nullptr; } return nullptr; } // get the viewport UINT dwNumViewports = 1; D3D11_VIEWPORT psViewport[16]; pcContext->RSGetViewports(&dwNumViewports, psViewport); // backup all states D3DX11_STATE_BLOCK sStateBlock; CreateStateblock(pcContext, &sStateBlock); // clear all states, set targets ClearContextState(pcContext); // set first active render target - the stored back buffer - get the stored private data view ID3D11Texture2D* pcBackBuffer = nullptr; ((IDXGISwapChain*)pThis)->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pcBackBuffer); ID3D11RenderTargetView* pcView = nullptr; UINT dwSize = sizeof(pcView); pcBackBuffer->GetPrivateData(PDIID_ID3D11TextureXD_RenderTargetView, &dwSize, (void*)&pcView); if (dwSize) { pcContext->OMSetRenderTargets(1, (ID3D11RenderTargetView**)&pcView, m_pcDSVGeometry11); pcView->Release(); } else { // create render target view for the back buffer ID3D11RenderTargetView* pcRTV = nullptr; pcDevice->CreateRenderTargetView(pcBackBuffer, NULL, &pcRTV); if (pcRTV) { pcBackBuffer->SetPrivateDataInterface(PDIID_ID3D11TextureXD_RenderTargetView, pcRTV); pcRTV->Release(); } } pcContext->RSSetViewports(dwNumViewports, psViewport); pcBackBuffer->Release(); // clear the depth stencil pcContext->ClearDepthStencilView(m_pcDSVGeometry11, D3D11_CLEAR_DEPTH, 1.0f, 0); // create all bool bool bAllCreated = true; // create vertex shader if (!m_pcVertexShader11) { if (FAILED(CreateVertexShaderTechnique(pcDevice, &m_pcVertexShader11, &m_pcVertexLayout11, VertexShaderTechnique::PosUV2D))) bAllCreated = false; } // create pixel shader... TODO !! add option to switch output if (!m_pcPixelShader11) { if (FAILED(CreatePixelShaderEffect(pcDevice, &m_pcPixelShader11, PixelShaderTechnique::FullscreenSimple))) bAllCreated = false; } // Create vertex buffer if (!m_pcVertexBuffer11) { if (FAILED(CreateFullScreenVertexBuffer(pcDevice, &m_pcVertexBuffer11))) bAllCreated = false; } // create constant buffer if (!m_pcConstantBufferDirect11) { if (FAILED(CreateGeometryConstantBuffer(pcDevice, &m_pcConstantBufferDirect11, (UINT)sizeof(GeometryConstantBuffer)))) bAllCreated = false; } if (bAllCreated) { // left/right eye for (int nEye = 0; nEye < 2; nEye++) { // Set the input layout pcContext->IASetInputLayout(m_pcVertexLayout11); // Set vertex buffer UINT stride = sizeof(TexturedVertex); UINT offset = 0; pcContext->IASetVertexBuffers(0, 1, &m_pcVertexBuffer11, &stride, &offset); // Set constant buffer, first update it... scale and translate the left and right image D3DXMATRIX sScale; D3DXMatrixScaling(&sScale, 0.5f, 1.0f, 1.0f); D3DXMATRIX sTrans; if (nEye == 0) D3DXMatrixTranslation(&sTrans, -0.5f, 0.0f, 0.0f); else D3DXMatrixTranslation(&sTrans, 0.5f, 0.0f, 0.0f); D3DXMatrixTranspose(&sTrans, &sTrans); D3DXMATRIX sProj; D3DXMatrixMultiply(&sProj, &sTrans, &sScale); pcContext->UpdateSubresource((ID3D11Resource*)m_pcConstantBufferDirect11, 0, NULL, &sProj, 0, 0); pcContext->VSSetConstantBuffers(0, 1, &m_pcConstantBufferDirect11); // Set primitive topology pcContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); // set texture pcContext->PSSetShaderResources(0, 1, m_ppcTexView11[nEye]); // set shaders pcContext->VSSetShader(m_pcVertexShader11, 0, 0); pcContext->PSSetShader(m_pcPixelShader11, 0, 0); // Render a triangle pcContext->Draw(6, 0); } } // set back device ApplyStateblock(pcContext, &sStateBlock); if (pcDevice) { pcDevice->Release(); pcDevice = nullptr; } if (pcContext) { pcContext->Release(); pcContext = nullptr; } } } #pragma endregion } return nullptr; }
void initvars(void){ int i; if(moviefiletype==WMV){ strcpy(movie_ext, ".wmv"); } else if(moviefiletype==MP4){ strcpy(movie_ext, ".mp4"); } else{ strcpy(movie_ext, ".avi"); } for(i=0;i<10;i++){ tetrabox_vis[i]=1; } for(i=0;i<200;i++){ face_id[i]=1; } for(i=0;i<10;i++){ face_vis[i]=1; face_vis_old[i]=1; } for(i=0;i<7;i++){ b_state[i]=-1; } #ifdef pp_DEG degC[0]=176; // deg symbol (small superscript 0) degC[1]='C'; degC[2]='\0'; #else strcpy(degC,"C"); #endif #ifdef pp_DEG degF[0]=176; // deg symbol (small superscript 0) degF[1]='F'; degF[2]='\0'; #else strcpy(degF,"F"); #endif strcpy(default_fed_colorbar,"FED"); label_first_ptr = &label_first; label_last_ptr = &label_last; label_first_ptr->prev = NULL; label_first_ptr->next = label_last_ptr; strcpy(label_first_ptr->name,"first"); label_last_ptr->prev = label_first_ptr; label_last_ptr->next = NULL; strcpy(label_last_ptr->name,"last"); { labeldata *gl; gl=&LABEL_default; gl->rgb[0]=0; gl->rgb[1]=0; gl->rgb[2]=0; gl->rgb[3]=255; gl->frgb[0]=0.0; gl->frgb[1]=0.0; gl->frgb[2]=0.0; gl->frgb[3]=1.0; gl->tstart_stop[0]=0.0; gl->tstart_stop[1]=1.0; gl->useforegroundcolor=1; gl->show_always=1; strcpy(gl->name,"new"); gl->xyz[0]=0.0; gl->xyz[1]=0.0; gl->xyz[2]=0.0; gl->labeltype=TYPE_INI; memcpy(&LABEL_local,&LABEL_default,sizeof(labeldata)); } #ifdef pp_LANG strcpy(startup_lang_code,"en"); #endif mat_specular_orig[0]=0.5f; mat_specular_orig[1]=0.5f; mat_specular_orig[2]=0.2f; mat_specular_orig[3]=1.0f; mat_specular2=getcolorptr(mat_specular_orig); mat_ambient_orig[0] = 0.5f; mat_ambient_orig[1] = 0.5f; mat_ambient_orig[2] = 0.2f; mat_ambient_orig[3] = 1.0f; mat_ambient2=getcolorptr(mat_ambient_orig); ventcolor_orig[0]=1.0; ventcolor_orig[1]=0.0; ventcolor_orig[2]=1.0; ventcolor_orig[3]=1.0; ventcolor=getcolorptr(ventcolor_orig); block_ambient_orig[0] = 1.0; block_ambient_orig[1] = 0.8; block_ambient_orig[2] = 0.4; block_ambient_orig[3] = 1.0; block_ambient2=getcolorptr(block_ambient_orig); for(i=0;i<256;i++){ boundarylevels256[i]=(float)i/255.0; } first_scriptfile.id=-1; first_scriptfile.prev=NULL; first_scriptfile.next=&last_scriptfile; last_scriptfile.id=-1; last_scriptfile.prev=&first_scriptfile; last_scriptfile.next=NULL; first_inifile.id=-1; first_inifile.prev=NULL; first_inifile.next=&last_inifile; last_inifile.id=-1; last_inifile.prev=&first_inifile; last_inifile.next=NULL; FontMenu(fontindex); treecharcolor[0]=0.3; treecharcolor[1]=0.3; treecharcolor[2]=0.3; treecharcolor[3]=1.0; trunccolor[0]=0.6; trunccolor[1]=0.2; trunccolor[2]=0.0; trunccolor[3]=1.0; direction_color[0]=39.0/255.0; direction_color[1]=64.0/255.0; direction_color[2]=139.0/255.0; direction_color[3]=1.0; direction_color_ptr=getcolorptr(direction_color); arg_iblank=0; show_slice_terrain=0; shooter_uvw[0]=0.0; shooter_uvw[1]=0.0; shooter_uvw[2]=0.0; vis_slice_contours=0; update_slicecontours=0; partfacedir[0]=0.0; partfacedir[1]=0.0; partfacedir[2]=1.0; sb_atstart=1; select_device=0; selected_device_tag=-1; navatar_types=0; select_avatar=0; selected_avatar_tag=-1; select_device_color_ptr=NULL; avatar_types=NULL; navatar_colors=0; avatar_colors=NULL; view_from_selected_avatar=0; revision_fds=-1; revision_smv=getmaxrevision(); force_isometric=0; cb_valmin=0.0; cb_valmax=100.0; cb_val=50.0; cb_colorindex=128; rgb_terrain[0][0]=1.0; rgb_terrain[0][1]=0.0; rgb_terrain[0][2]=0.0; rgb_terrain[0][3]=1.0; rgb_terrain[1][0]=0.5; rgb_terrain[1][1]=0.5; rgb_terrain[1][2]=0.0; rgb_terrain[1][3]=1.0; rgb_terrain[2][0]=0.0; rgb_terrain[2][1]=1.0; rgb_terrain[2][2]=0.0; rgb_terrain[2][3]=1.0; rgb_terrain[3][0]=0.0; rgb_terrain[3][1]=0.5; rgb_terrain[3][2]=0.0; rgb_terrain[3][3]=1.0; rgb_terrain[4][0]=0.0; rgb_terrain[4][1]=0.5; rgb_terrain[4][2]=0.5; rgb_terrain[4][3]=1.0; rgb_terrain[5][0]=0.0; rgb_terrain[5][1]=0.0; rgb_terrain[5][2]=1.0; rgb_terrain[5][3]=1.0; rgb_terrain[6][0]=0.5; rgb_terrain[6][1]=0.0; rgb_terrain[6][2]=0.5; rgb_terrain[6][3]=1.0; rgb_terrain[7][0]=1.0; rgb_terrain[7][1]=0.5; rgb_terrain[7][2]=0.0; rgb_terrain[7][3]=1.0; rgb_terrain[8][0]=1.0; rgb_terrain[8][1]=0.5; rgb_terrain[8][2]=0.5; rgb_terrain[8][3]=1.0; rgb_terrain[9][0]=1.0; rgb_terrain[9][1]=0.25; rgb_terrain[9][2]=0.5; rgb_terrain[9][3]=1.0; render_multi=0; render_multi_state=0; render_from_menu=0; percentile_level=0.01; strcpy(script_inifile_suffix,""); strcpy(script_renderdir,""); strcpy(script_renderfilesuffix,""); strcpy(script_renderfile,""); trainerview=1; show_bothsides_int=1; show_bothsides_ext=0; skip_slice_in_embedded_mesh=0; offset_slice=0; trainer_pause=0; trainee_location=0; trainer_inside=0; from_glui_trainer=0; trainer_path_old=-3; trainer_outline=1; trainer_viewpoints=-1; ntrainer_viewpoints=0; trainer_realtime=1; trainer_path=0; trainer_xzy[0]=0.0; trainer_xzy[1]=0.0; trainer_xzy[2]=0.0; trainer_ab[0]=0.0; trainer_ab[1]=0.0; motion_ab[0]=0.0; motion_ab[1]=0.0; motion_dir[0]=0.0; motion_dir[1]=0.0; fontsize_save=0; trainer_mode=0; trainer_active=0; show_slice_average=0; vis_slice_average=1; slice_average_interval=10.0; #ifdef pp_CULL cullsmoke=1; cullplaneinfo=NULL; ncullplaneinfo=0; have_setpixelcount=0; update_initcullplane=1; #endif show_transparent_vents=1; maxtourframes=500; blockageSelect=0; stretch_var_black=0; stretch_var_white=0; move_var=0; showhide_option=0; snifferrornumber=0; xyz_dir=0; which_face=2; showfontmenu=1; glui_active=0; drawColorLabel=0; olddrawColorLabel=0; staticframe0=0; visStaticSmoke=1; vis3DSmoke3D=1; smokeskip=1; smokeskipm1=0; nrooms=0; nzoneinfo=0; nfires=0; UpdateLIGHTS=1; windowsize_pointer=0; fontindex=0; xbar=1.0, ybar=1.0, zbar=1.0; xbar0=0.0, ybar0=0.0, zbar0=0.0; xbarORIG=1.0, ybarORIG=1.0, zbarORIG=1.0; xbar0ORIG=0.0, ybar0ORIG=0.0, zbar0ORIG=0.0; ReadPlot3dFile=0, ReadIsoFile=0; ReadVolSlice=0; Read3DSmoke3DFile=0; ReadZoneFile=0, ReadPartFile=0, ReadEvacFile=0;; editwindow_status=-1; startup_pass=1; ntargtimes=500; slicefilenumber=0; exportdata=0; nspr=0; smoke3dframestep=1; smoke3dframeskip=0; vectorskip=1; rotation_type=ROTATION_2AXIS; eyeview_level=1; rotation_type_old=ROTATION_2AXIS,eyeview_SAVE=0,eyeview_last=0; frameratevalue=1000; setpartmin=PERCENTILE_MIN, setpartmax=PERCENTILE_MAX; setpartmin_old=setpartmin; setpartmax_old=setpartmax; setpatchmin=GLOBAL_MIN, setpatchmax=GLOBAL_MAX, setzonemin=0, setzonemax=0; loadpatchbysteps=0; settargetmin=0, settargetmax=0; setpartchopmin=0, setpartchopmax=0; partchopmin=1.0, partchopmax=0.; slicechopmin=0, slicechopmax=0; temp_threshold=400.0; vis_onlythreshold=0, vis_threshold=0; activate_threshold=1; canshow_threshold=1; settmin_p=0, settmin_b=0, settmin_s=0, settmin_z=0, settmin_i=0; settmax_p=0, settmax_b=0, settmax_s=0, settmax_z=0, settmax_i=0; tmin_p=1., tmin_b=1., tmin_s=1., tmin_z=1., tmin_i=1.; tmax_p=0., tmax_b=0., tmax_s=0., tmax_z=0., tmax_i=0.; patchmin=1., patchmax=0.; targetmin=1.0, targetmax=0.0; partmin=1., partmax=0., slicemin=1., slicemax=0.; speedmax=0.0; hrrpuv_max_smv=1200.0; FlowDir=1,ClipDir=1; plotn=1; stept=0; plotstate=NO_PLOTS; visVector=0; visSmokePart=2, visSprinkPart=1, havesprinkpart=0; visaxislabels=0; numplot3dvars=0; p3dsurfacesmooth=1; p3dsurfacetype=1; parttype=0; allexterior=1,showexterior=1; allinterior=1; hrrpuv_iso_color[0]=1.0; hrrpuv_iso_color[1]=0.5; hrrpuv_iso_color[2]=0.0; hrrpuv_iso_color[3]=1.0; showterrain=0; showgluitrainer=0; colorbartype=0; colorbartype_ini=-1; current_colorbar=colorbarinfo; colorbartype_save=colorbartype; colorbartype_default=colorbartype; colorbarpoint=0; vectorspresent=0; smokediff=0; smoke3d_cvis=1.0; show_smokesensors=1; test_smokesensors=0; active_smokesensors=0; loadplot3dall=0; visTarg = 0; ReadTargFile=0; showtarget=0; visAIso=1; surfincrement=0,visiso=0; isotest=0; isolevelindex=0, isolevelindex2=0; pref=101325.,pamb=0.,tamb=293.15; ntc_total=0, nspr_total=0, nheat_total=0; n_devices=0; npartinfo=0, nsliceinfo=0, nvsliceinfo=0, nslice2=0, npatch2=0, nplot3dinfo=0, npatchinfo=0; nevac=0; current_particle_type=-1,last_particle_type=-2; nsmoke3dinfo=0; nisoinfo=0, niso_bounds=0; ntrnx=0, ntrny=0, ntrnz=0,npdim=0,nmeshes=0,clip_mesh=0; noffset=0; visLabels=0; ntarginfo=0; showallslicevectors=0; framerate=-1.0; itimes=0, itimeold=-999, seqnum=0,RenderTime=0; RenderTimeOld=0; itime_save=-1; nopart=1; uindex=-1, vindex=-1, windex=-1; cullfaces=1; showonly_hiddenfaces=0; windowresized=0; first_display=2; updatemenu=0; updatezoommenu=0; updatemenu_count=0; updatefaces=0,updatefacelists=0; updateOpenSMVFile=0; periodic_reloads=0; periodic_value=-2; slicefilenum=-1; partfilenum=-1,zonefilenum=-1; targfilenum=-1; setPDIM=0; menustatus=GLUT_MENU_NOT_IN_USE; vertical_factor=1.0; terrain_rgba_zmin[0]=90; terrain_rgba_zmin[1]=50; terrain_rgba_zmin[2]=50; terrain_rgba_zmax[0]=200; terrain_rgba_zmax[1]=200; terrain_rgba_zmax[2]=200; #ifdef pp_memstatus visAvailmemory=0; #endif visBlocks=visBLOCKAsInput; visSmoothAsNormal=1; visTransparentBlockage=0; visBlocksSave=visBLOCKAsInput; blocklocation=BLOCKlocation_grid; ncadgeom=0; visFloor=0, visFrame=1; visNormalEditColors=1; visWalls=0, visGrid=0, visCeiling=0, cursorPlot3D=0; visSensor=1, visSensorNorm=1, hasSensorNorm=0; partframestep=1, sliceframestep=1, boundframestep=1; partframeskip=0, sliceframeskip=0, boundframeskip=0; boundzipstep=1, boundzipskip=0; smoke3dzipstep=1, smoke3dzipskip=0; isozipstep=1, isozipskip=0; slicezipstep=1, slicezipskip=0; evacframeskip=0, evacframestep=1; partpointstep=1; partpointstep_old=0; partpointskip=0; render_option=RenderWindow; RenderMenu(render_option); viewoption=0; partpointsize=4.0,vectorpointsize=3.0,streaklinewidth=1.0; isopointsize=4.0; isolinewidth=2.0; plot3dpointsize=4.0; plot3dlinewidth=2.0; sprinklerabssize=0.076f, sensorabssize=0.038f, heatabssize=0.076f; linewidth=2.0, ventlinewidth=2.0, highlight_linewidth=4.0; solidlinewidth=linewidth; visBLOCKold=-1; nrgb=NRGB; nrgb_ini=0; nrgb2_ini=0; rgb_white=NRGB, rgb_yellow=NRGB+1, rgb_blue=NRGB+2, rgb_red=NRGB+3; rgb_green=NRGB+4, rgb_magenta=NRGB+5, rgb_cyan=NRGB+6, rgb_black=NRGB+7; numColorbars=0; setbw=0,colorbarflip=0; setbwSAVE=setbw; background_flip=1; antialiasflag=1; nrgb_full=256; nrgb_cad=256; eyexfactor=0.5f, eyeyfactor=-0.9f, eyezfactor=0.5f; frameinterval=1.0; use_tload_begin=0; use_tload_end=0; use_tload_skip=0; tload_begin=0.0; tload_end=1.0; tload_skip=0; defaulttour_loaded=0; blockages_dirty=0; usetextures=0; canrestorelastview=0; ntargets=0; endian_data=0, endian_native=0, setendian=0; mainwindow_id=0; rendertourcount=0; static_color[0]=0.0; static_color[1]=1.0; static_color[2]=0.0; static_color[3]=1.0; sensorcolor[0]=1.0; sensorcolor[1]=1.0; sensorcolor[2]=0.0; sensorcolor[3]=1.0; sensornormcolor[0]=1.0; sensornormcolor[1]=1.0; sensornormcolor[2]=0.0; sensornormcolor[3]=1.0; sprinkoncolor[0]=0.0; sprinkoncolor[1]=1.0; sprinkoncolor[2]=0.0; sprinkoncolor[3]=1.0; sprinkoffcolor[0]=1.0; //xxxx check sprinkoffcolor[1]=0.0; sprinkoffcolor[2]=0.0; sprinkoffcolor[3]=1.0; heatoncolor[0]=1.0; //xxx check heatoncolor[1]=0.0; heatoncolor[2]=0.0; heatoncolor[3]=1.0; heatoffcolor[0]=1.0; heatoffcolor[1]=0.0; heatoffcolor[2]=0.0; heatoffcolor[3]=1.0; backgroundbasecolor[0]=0.0; backgroundbasecolor[1]=0.0; backgroundbasecolor[2]=0.0; backgroundbasecolor[3]=1.0; backgroundcolor[0]=0.0; backgroundcolor[1]=0.0; backgroundcolor[2]=0.0; backgroundcolor[3]=1.0; foregroundbasecolor[0]=1.0; foregroundbasecolor[1]=1.0; foregroundbasecolor[2]=1.0; foregroundbasecolor[3]=1.0; foregroundcolor[0]=1.0; foregroundcolor[1]=1.0; foregroundcolor[2]=1.0; foregroundcolor[3]=1.0; boundcolor[0]=0.5; boundcolor[1]=0.5; boundcolor[2]=0.5; boundcolor[3]=1.0; timebarcolor[0]=0.6; timebarcolor[1]=0.6; timebarcolor[2]=0.6; timebarcolor[3]=1.0; redcolor[0]=1.0; redcolor[1]=0.0; redcolor[2]=0.0; redcolor[3]=1.0; loadfiles_at_startup=0; nmenus=0; showbuild=0; strcpy(TITLERELEASE,""); strcpy(TITLE,""); strcpy(FULLTITLE,""); strcpy(emptylabel,""); large_font=GLUT_BITMAP_HELVETICA_12; small_font=GLUT_BITMAP_HELVETICA_10; texture_origin[0]=0.0; texture_origin[1]=0.0; texture_origin[2]=0.0; isZoneFireModel=0; nunitclasses=0,nunitclasses_default=0,nunitclasses_ini=0; callfrom_tourglui=0; showtours_whenediting=0; right_green=0.0; right_blue=1.0; showstereo=STEREO_NONE; showstereoOLD=showstereo; showstereo_frame=2; show_parallax=0; stereoactive=0; apertureindex=2; zoomindex=2; projection_type=0; apertures[0]=30.; apertures[1]=45.; apertures[2]=60.; apertures[3]=75.; apertures[3]=90.; planar_terrain_slice=0; aperture=60.; aperture_glui=aperture; aperture_default=aperture; zooms[0]=0.25; zooms[1]=0.5; zooms[2]=1.0; zooms[3]=2.0; zooms[4]=4.0; zoom=1.0; { int ii; rgbmask[0]=1; for(ii=1;ii<16;ii++){ rgbmask[ii]=2*rgbmask[ii-1]+1; } } sv_age=0; titlesafe_offset=0; titlesafe_offsetBASE=45; reset_frame=0; reset_time=0.0,start_frametime=0.0,stop_frametime=0.0; reset_time_flag=0; RenderOnceNow=0, RenderOnceNowR=0, RenderOnceNowL=0; nsorted_surfidlist=0; overwrite_all=0,erase_all=0; compress_autoloaded=0; strcpy(ext_png,".png"); strcpy(ext_jpg,".jpg"); renderfiletype=0; strcpy(part_ext,".part"); strcpy(ini_ext,".ini"); start_xyz0[0]=0.0; start_xyz0[1]=0.0; start_xyz0[2]=0.0; glui_move_mode=-1; timeoffset=0.0; update_tourlist=0; desired_view_height=1.5; resetclock=1,initialtime=0; realtime_flag=0; islicetype=-1,islicetype_save=-1,ipatchtype=-1; iisotype=-1; cpuframe=0; adjustalphaflag=3; highlight_block=-1, highlight_mesh=0, highlight_flag=2; updatesmoothblocks=1; menusmooth=0; use_menusmooth=0; smoothing_blocks=0; blocksneedsmoothing=0; visUSERticks=0; user_tick_show_x=1; user_tick_show_y=1; user_tick_show_z=1; auto_user_tick_placement=1; pixel_skip=0; smoke_extinct=7.600,smoke_dens=.50,smoke_pathlength=1.0; smoketest=0,show_smoketest=0; showall_textures=0; do_threshold=0; updateindexcolors=0; show_path_knots=0; keyframe_snap=0; tourviewtype=0; tourlocus_type=0; tourrad_avatar=0.1; dirtycircletour=0; view_tstart=0.0, view_tstop=100.0; tour_constant_vel=0; tour_bias=0.0,tour_continuity=0.0; view_ntimes=1000; ntours=0,selectedtour_index=-1,selectedtour_index_old=-1,selectedtour_index_ini=-1; glui_avatar_index=0; iavatar_evac=0; update_selectedtour_index=0; viewtourfrompath=0,viewalltours=0,viewanytours=0,edittour=0; tour_usecurrent=0; visFDSticks=0; visCadTextures=1; visTerrainTexture=1; nselectblocks=0; surface_indices[0]=0; surface_indices[1]=0; surface_indices[2]=0; surface_indices[3]=0; surface_indices[4]=0; surface_indices[5]=0; wall_case=0; strcpy(surfacedefaultlabel,""); mscale[0]=1.0; mscale[1]=1.0; mscale[2]=1.0; nearclip=0.001,farclip=3.0; updateclipvals=0; updateUpdateFrameRateMenu=0; ntextures=0; nskyboxinfo=0; part5show=1; streak5show=0; update_streaks=0; streak_rvalue[0]=0.25; streak_rvalue[1]=0.5; streak_rvalue[2]=1.0; streak_rvalue[3]=2.0; streak_rvalue[4]=4.0; streak_rvalue[5]=8.0; streak_rvalue[6]=16.0; streak_rvalue[7]=32.0; nstreak_rvalue=8; streak_index=-1; float_streak5value=0.0; if(streak_index>=0)float_streak5value=streak_rvalue[streak_index]; streak5step=0; showstreakhead=1; npartclassinfo=0; prop_index=1; noutlineinfo=0; nmultisliceinfo=0; nmultivsliceinfo=0; svofile_exists=0; devicenorm_length = 0.1; ndeviceinfo=0; nobject_defs=0; strcpy(object_def_first.label,"first"); object_def_first.next=&object_def_last; object_def_first.prev=NULL; strcpy(object_def_last.label,"last"); object_def_last.next=NULL; object_def_last.prev=&object_def_first; object_defs=NULL; showfiles=0; fire_red=255, fire_green=128, fire_blue=0; fire_halfdepth=2.0; smokecullflag=1; smokedrawtest=0,smokedrawtest2=0; visMAINmenus=0; smoke3d_thick=0; #ifdef pp_GPU smoke3d_rthick=1.0; usegpu=0; #endif smokedrawtest_nummin=1; smokedrawtest_nummax=1; ijkbarmax=5; blockage_as_input=0; blockage_snapped=1; show_cad_and_grid=0; nplot3dtimelist=0; buffertype=DOUBLE_BUFFER; opengldefined=0; { char version[100]; char svn_version[100]; int svn_num; svn_num=getmaxrevision(); // get svn revision number sprintf(svn_version,"%i",svn_num); // convert svn revision number to a character string // construct string of the form: // 5.x.y_# getPROGversion(version); strcpy(TITLEBASE,"Smokeview "); strcat(TITLEBASE,version); #ifdef pp_BETA strcat(TITLEBASE," ("); strcat(TITLEBASE,svn_version); strcat(TITLEBASE,")"); #else #ifndef pp_OFFICIAL_RELEASE strcat(TITLEBASE," ("); strcat(TITLEBASE,svn_version); strcat(TITLEBASE,")"); #endif #endif strcat(TITLEBASE," - "); } #ifdef _DEBUG STRCPY(TITLE,TITLEBASE); STRCAT(TITLE,__DATE__); #else STRCPY(TITLE,TITLEBASE); STRCAT(TITLE,__DATE__); #endif #ifdef pp_BETA STRCAT(TITLE," - "); STRCAT(TITLE,__TIME__); #endif STRCPY(FULLTITLE,TITLE); STRCPY(TITLERELEASE,TITLE); strcpy(INIfile,"smokeview.ini"); strcpy(WRITEINIfile,"Write smokeview.ini"); tourcol_selectedpathline[0]=1.0; tourcol_selectedpathline[1]=0.0; tourcol_selectedpathline[2]=0.0; tourcol_selectedpathlineknots[0]=1.0; tourcol_selectedpathlineknots[1]=0.0; tourcol_selectedpathlineknots[2]=0.0; tourcol_selectedknot[0]=0.0; tourcol_selectedknot[1]=1.0; tourcol_selectedknot[2]=0.0; tourcol_selectedview[0]=1.0; tourcol_selectedview[1]=1.0; tourcol_selectedview[2]=0.0; tourcol_pathline[0]=-1.0; tourcol_pathline[1]=-1.0; tourcol_pathline[2]=-1.0; tourcol_pathknots[0]=-1.0; tourcol_pathknots[1]=-1.0; tourcol_pathknots[2]=-1.0; tourcol_text[0]=-1.0; tourcol_text[1]=-1.0; tourcol_text[2]=-1.0; tourcol_avatar[0]=1.0; tourcol_avatar[1]=0.0; tourcol_avatar[2]=0.0; iso_specular[0] = 0.7; iso_specular[1] = 0.7; iso_specular[2] = 0.7; iso_specular[3] = 1.0; iso_shininess = 10.0f; light_position0[0] = 1.0f; light_position0[1] = 1.0f; light_position0[2] = 1.0f; light_position0[3] = 0.0f; light_position1[0] = -1.0f; light_position1[1] = -1.0f; light_position1[2] = 1.0f; light_position1[3] = 0.0f; ambientlight[0] = 0.6f; ambientlight[1] = 0.6f; ambientlight[2] = 0.6f; ambientlight[3] = 1.0f; diffuselight[0] = 0.50f; diffuselight[1] = 0.50f; diffuselight[2] = 0.50f; diffuselight[3] = 1.00f; list_p3_index_old=0, list_slice_index_old=0, list_patch_index_old=0; videoSTEREO=0; fzero=0.25; strcpy(blank_global,""); demo_mode=0; update_demo=1; mxplot3dvars=MAXPLOT3DVARS; valindex=0; #define NDEFAULT_ISO_COLORS 3 iso_colors[0] = 0.96; iso_colors[1] = 0.00; iso_colors[2] = 0.96; iso_colors[3] = 1.00; iso_colors[4] = 0.75; iso_colors[5] = 0.80; iso_colors[6] = 0.80; iso_colors[7] = 1.00; iso_colors[8] = 0.00; iso_colors[9] = 0.96; iso_colors[10] = 0.28; iso_colors[11] = 1.0; for(i = NDEFAULT_ISO_COLORS; i<MAX_ISO_COLORS; i++){ int grey; grey = 1.0 - (float)(i - NDEFAULT_ISO_COLORS) / (float)(MAX_ISO_COLORS - NDEFAULT_ISO_COLORS-1); iso_colors[4*i+0]=grey; iso_colors[4*i+1]=grey; iso_colors[4*i+2]=grey; iso_colors[4*i+3]=1.0; } for(i = 0; i < MAX_ISO_COLORS; i++){ float graylevel; graylevel = color2bw(iso_colors+4*i); iso_colorsbw[4*i+0] = graylevel; iso_colorsbw[4*i+1] = graylevel; iso_colorsbw[4*i+2] = graylevel; iso_colorsbw[4*i+3] = 1.0; iso_transparencies[i] = transparent_level; } glui_iso_colors[0] = CLAMP(255 * iso_colors[0]+0.1, 0, 255); glui_iso_colors[1] = CLAMP(255 * iso_colors[1]+0.1, 0, 255); glui_iso_colors[2] = CLAMP(255 * iso_colors[2]+0.1, 0, 255); glui_iso_colors[3] = CLAMP(255 * iso_colors[3]+0.1, 0, 255); glui_iso_transparency = CLAMP(255 * iso_transparencies[0]+0.1, 0, 255); CheckMemory; iso_transparency=0.8; mouse_deltax=0.0, mouse_deltay=0.0; char_color[0]=0.0; char_color[1]=0.0; char_color[2]=0.0; char_color[3]=0.0; movedir[0]=0.0; movedir[1]=1.0; movedir[2]=0.0; memcpy(rgb_base,rgb_baseBASE,MAXRGB*4*sizeof(float)); memcpy(bw_base,bw_baseBASE,MAXRGB*4*sizeof(float)); memcpy(rgb2,rgb2BASE,MAXRGB*3*sizeof(float)); memcpy(bw_base,bw_baseBASE,MAXRGB*4*sizeof(float)); nrgb2=8; ncamera_list=0,i_view_list=1,init_camera_list_flag=1; camera_max_id=2; startup=0,startup_view_ini=1,selected_view=-999; { int iii; for(iii=0;iii<7;iii++){ visPatchType[iii]=0; } visPatchType[0]=1; for(iii=0;iii<MAXPLOT3DVARS;iii++){ setp3min[iii]=PERCENTILE_MIN; p3min[iii]=1.0f; p3chopmin[iii]=1.0f; setp3max[iii]=PERCENTILE_MAX; p3max[iii]=1.0f; p3chopmax[iii]=0.0f; } } }