void My_TestGLDrawing::OffscreenTest() { DrawScene(); WriteToFile("color", "color1_unselected.png"); // select cube0 _picker.Pick(GfVec2i(319,221), GfVec2i(320,222)); DrawScene(); WriteToFile("color", "color2_cube0_pickable.png"); HdSelectionSharedPtr selection = _picker.GetSelection(); HdSelection::HighlightMode mode = HdSelection::HighlightModeSelect; TF_VERIFY(selection->GetSelectedPrimPaths(mode).size() == 1); TF_VERIFY(selection->GetSelectedPrimPaths(mode)[0] == SdfPath("/cube0")); // make cube0 unpickable; it should not let us pick cube1 since it occludes SdfPathVector excludePaths = {SdfPath("/cube0")}; _pickablesCol.SetExcludePaths(excludePaths); _picker.SetDoUnpickablesOcclude(true); _picker.Pick(GfVec2i(319,221), GfVec2i(320,222)); DrawScene(); WriteToFile("color", "color3_cube0_unpickable.png"); selection = _picker.GetSelection(); //TF_VERIFY(selection->GetSelectedPrimPaths(mode).size() == 0); }
static void EventLoop(WindowData *winData) { while (1) { static long mask = StructureNotifyMask | ExposureMask | KeyPressMask; XEvent event; while (XCheckWindowEvent(winData->display, winData->window, mask, &event)) { if (event.xany.window == winData->window) { switch (event.type) { case Expose: DrawScene(winData); break; case ConfigureNotify: glViewport(0, 0, event.xconfigure.width, event.xconfigure.height); break; case KeyPress: { char buffer[10]; int r; r = XLookupString(&event.xkey, buffer, sizeof(buffer), NULL, NULL); if (buffer[0] == 27) { /* escape */ return; } } } } } DrawScene(winData); } }
void GlutDisplay() { switch ( viewMode ) { case VIEWMODE_OPENGL: if ( dofImage ) { if ( dofDrawCount < MAX_DOF_DRAW ) { DrawScene(); glReadPixels( 0, 0, camera.imgWidth, camera.imgHeight, GL_RGB, GL_UNSIGNED_BYTE, dofBuffer ); for ( int i=0; i<camera.imgWidth*camera.imgHeight; i++ ) { dofImage[i] = (dofImage[i]*dofDrawCount + dofBuffer[i].ToColor())/(dofDrawCount+1); } dofDrawCount++; } glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT ); glDrawPixels( camera.imgWidth, camera.imgHeight, GL_RGB, GL_FLOAT, dofImage ); if ( dofDrawCount < MAX_DOF_DRAW ) { DrawProgressBar(float(dofDrawCount)/MAX_DOF_DRAW); glutPostRedisplay(); } } else { DrawScene(); } break; case VIEWMODE_IMAGE: glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT ); glDrawPixels( renderImage.GetWidth(), renderImage.GetHeight(), GL_RGB, GL_UNSIGNED_BYTE, renderImage.GetPixels() ); DrawRenderProgressBar(); break; case VIEWMODE_Z: glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT ); if ( ! renderImage.GetZBufferImage() ) renderImage.ComputeZBufferImage(); glDrawPixels( renderImage.GetWidth(), renderImage.GetHeight(), GL_LUMINANCE, GL_UNSIGNED_BYTE, renderImage.GetZBufferImage() ); break; case VIEWMODE_SAMPLECOUNT: glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT ); if ( ! renderImage.GetSampleCountImage() ) renderImage.ComputeSampleCountImage(); glDrawPixels( renderImage.GetWidth(), renderImage.GetHeight(), GL_LUMINANCE, GL_UNSIGNED_BYTE, renderImage.GetSampleCountImage() ); break; case VIEWMODE_IRRADCOMP: glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT ); if ( renderImage.GetIrradianceComputationImage() ) { glDrawPixels( renderImage.GetWidth(), renderImage.GetHeight(), GL_LUMINANCE, GL_UNSIGNED_BYTE, renderImage.GetIrradianceComputationImage() ); } break; } glutSwapBuffers(); }
void CMemoryCardView::CRender::ThreadProc() { unsigned int nPixelFormat = ChoosePixelFormat(m_deviceContext, &m_PFD); SetPixelFormat(m_deviceContext, nPixelFormat, &m_PFD); m_hRC = wglCreateContext(m_deviceContext); wglMakeCurrent(m_deviceContext, m_hRC); glEnable(GL_TEXTURE_2D); glClearColor(1.0, 1.0, 1.0, 1.0); while(!m_threadOver) { while(m_mailBox.IsPending()) { m_mailBox.ReceiveCall(); } Animate(); DrawScene(); Sleep(16); } m_icons.clear(); wglMakeCurrent(NULL, NULL); wglDeleteContext(m_hRC); }
void rwxGLView::DrawReconditeScene(){ PrepareToDraw(); DrawScene(); SwapBuffers(); }
void OVRScene::RenderForOneEye(const float* pMview, const float* pPersp) const { printf("Rendering in OVRScene!\n"); if (m_bDraw == false) return; if (pMview == false) return; if (pPersp == false) return; const glm::mat4 modelview = glm::make_mat4(pMview); const glm::mat4 projection = glm::make_mat4(pPersp); // Assemble modelview matrix to lock camera in with real world geometry: // We still have to use the assembled HMD stereo modelview matrices from OVRSDK05AppSkeleton, // but we undo the effects of chassis yaw and position so the frustum follows the viewer. if (m_pHmd != NULL) { const ovrTrackingState ts = ovrHmd_GetTrackingState(m_pHmd, ovr_GetTimeInSeconds()); const ovrPosef& cp = ts.CameraPose; OVR::Matrix4f camMtx = OVR::Matrix4f(); camMtx *= OVR::Matrix4f::Translation(cp.Position) * OVR::Matrix4f(OVR::Quatf(cp.Orientation)); glm::mat4 ogmat = glm::make_mat4(&camMtx.Transposed().M[0][0]); DrawScene(modelview * ogmat, projection); } }
int DemoBase::RunDemo() { MSG msg = { 0 }; mTimer.Reset(); while (msg.message != WM_QUIT) { if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } else { mTimer.Tick(); if (!mAppPaused) { CalculateFrameStats(); UpdateScene(mTimer.DeltaTime()); DrawScene(); } else { Sleep(100); } } } return (int)msg.wParam; }
void RENDERING_PASS () { glViewport(0, 0, windowWidth, windowHeight); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // textureMatrix=biasMatrix*lightProjectionMatrix*lightViewMatrix*cameraViewInverse // store the coordinate conversion matrix to texture matrix[3] // to be used in shader glActiveTexture (GL_TEXTURE3); // use the last texture unit glBindTexture (GL_TEXTURE_2D, depthTextureId); glMatrixMode (GL_TEXTURE); glLoadIdentity(); static float b[16] = {.5, 0,0,0, 0,.5,0,0, 0,0,.5,0, .5,.5,.5,1}; glMultMatrixf (b); // scale and bias MULT_LIGHT_PROJECTION(); MULT_LIGHT_MODELVIEW(); apply_modelview_inverse (); // camera view inverse glMatrixMode (GL_MODELVIEW); // three important settings to use depth texture (see notes) glUseProgram (program); DrawScene(); }
void ms_tick(void) { DrawScene(); draw_banner(); if (ms.state == MS_EXPANDING) { ms.expandframe++; if (ms.expandframe > EXPAND_LENGTH) ms.state = MS_DISPLAYED; else draw_expand(); } if (ms.state == MS_DISPLAYED) { // scan down effect if (ms.current_row < map.ysize) { draw_row(ms.current_row++); if (ms.current_row < map.ysize) draw_row(ms.current_row++); } // draw map DrawRect(ms.x - 1, ms.y - 1, ms.x + ms.w, ms.y + ms.h, DK_BLUE); DrawSurface(ms.sfc, ms.x, ms.y); // you-are-here dot if (++ms.timer & 8) draw_sprite(ms.px, ms.py, SPR_MAP_PIXELS, 4); // dismissal if (ms.lastbuttondown) { if (!buttondown()) ms.lastbuttondown = false; } else if (buttondown()) { ms.state = MS_CONTRACTING; } } else if (ms.state == MS_CONTRACTING) { ms.expandframe--; if (ms.expandframe <= 0) { int param = (ms.return_gm == GM_INVENTORY) ? 1 : 0; game.setmode(ms.return_gm, param); } else { draw_expand(); } } }
void SceneManager::Draw() { if (MainEngine::_enableShadows) { DrawShadowMapping(); } else { glUseProgram(MainEngine::shaders["MainShader"]); glUniform1i(glGetUniformLocation(MainEngine::shaders["MainShader"], "bEnableShadowMapping"), 0); DrawScene(); glUseProgram(0); } // ---- Debug Show Depth Texture //glPushMatrix(); //glOrtho(-int(MainEngine::_mainWindow->getSize().x) / 2, MainEngine::_mainWindow->getSize().x / 2, // -int(MainEngine::_mainWindow->getSize().y) / 2, MainEngine::_mainWindow->getSize().y / 2, 1, 2000); //glActiveTexture(GL_TEXTURE0); //glBindTexture(GL_TEXTURE_2D, MainEngine::m_shadowMapFBO.GetShadowMap()); //glEnable(GL_TEXTURE_2D); //glTranslated(0, 0, - 1); //glBegin(GL_QUADS); //glTexCoord2d(0, 0); glVertex3f(0, 0, 0); //glTexCoord2d(1, 0); glVertex3f(MainEngine::_mainWindow->getSize().x / 2, 0, 0); //glTexCoord2d(1, 1); glVertex3f(MainEngine::_mainWindow->getSize().x / 2, MainEngine::_mainWindow->getSize().y / 2, 0); //glTexCoord2d(0, 1); glVertex3f(0, MainEngine::_mainWindow->getSize().y / 2, 0); //glEnd(); //glDisable(GL_TEXTURE_2D); //glPopMatrix(); }
void SHADOW_MAP_PASS() // NON-FBO Version { glClear(GL_DEPTH_BUFFER_BIT); // no output to colorbuffer glViewport(0, 0, shadowMapSize, shadowMapSize); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity();// save current projection MULT_LIGHT_PROJECTION(); // light projection glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); // viewer: save current modelview (containing Viewing of camera) MULT_LIGHT_MODELVIEW(); // light view // disable texturing in the first pass (if any) // disable lighting too glPushAttrib (GL_ENABLE_BIT | GL_LIGHTING_BIT | GL_COLOR_BUFFER_BIT); //Disable color writes, and use flat shading for speed glColorMask(0, 0, 0, 0); // color buffer bit glShadeModel(GL_FLAT); // lighting bit glDisable (GL_LIGHTING); glDisable (GL_TEXTURE_2D); glPolygonOffset (8.0, 4.0); // IMPORTANT: to remove moire pattern (from z-fighting) glEnable (GL_POLYGON_OFFSET_FILL); glUseProgram(0); DrawScene(); // Draw the scene (fixed function) glPopAttrib(); glMatrixMode(GL_PROJECTION); glPopMatrix(); // restore current projection glMatrixMode(GL_MODELVIEW); glPopMatrix(); // restore Modelview to Vcamera //Read the depth buffer into the shadow map texture glActiveTexture (GL_TEXTURE3); glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, shadowMapSize, shadowMapSize); }
int messageloop(){ MSG msg; ZeroMemory(&msg, sizeof(MSG)); while(true) { BOOL PeekMessageL( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg ); if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { if (msg.message == WM_QUIT) break; TranslateMessage(&msg); DispatchMessage(&msg); } else{ // run game code UpdateScene(); DrawScene(); } } return msg.wParam; }
void CCg3DTransView::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default DrawScene(); CView::OnTimer(nIDEvent); }
void Test3() { LoadBCP("data.bcp"); ReadLanguageFile(); InitWindow(); //InitRectDrawing(); //IDirect3DTexture9 *mytex = GetTexture("Interface\\LOADING SCREEN 1.tga"); //IDirect3DPixelShader9 *psh = LoadPixelShader("test.psh"); InitScene(); LoadMap("testmap.bcm"); while(!appexit) { BeginDrawing(); //ddev->SetRenderState(D3DRS_ZENABLE, FALSE); //ddev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); //ddev->SetPixelShader(psh); //ddev->SetTexture(0, mytex); //DrawRect(0, 0, 640, 480, -1); DrawScene(); EndDrawing(); HandleWindow(); if(keyheld[VK_UP]) camerapos += Vector3(0.0f, 0.0f, walkstep); if(keyheld[VK_DOWN]) camerapos -= Vector3(0.0f, 0.0f, walkstep); if(keyheld[VK_LEFT]) camerapos -= Vector3(walkstep, 0.0f, 0.0f); if(keyheld[VK_RIGHT]) camerapos += Vector3(walkstep, 0.0f, 0.0f); if(keyheld['E']) camerapos += Vector3(0.0f, walkstep, 0.0f); if(keyheld['D']) camerapos -= Vector3(0.0f, walkstep, 0.0f); } }
void ViewWindow::draw () { //bool use_solid = false; // unused if(!valid ()) InitGL (); glClearColor(backgroundColor.x,backgroundColor.y,backgroundColor.z,0.0f); glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity (); SetupProjectionMatrix (); bSelecting=false; selector_count=0; DrawScene (); SetRasterMatrix (); Draw2D (); if (bBoxSelect) { fltk::glsetcolor(fltk::WHITE); fltk::glstrokerect(click.x,click.y,last.x-click.x, last.y-click.y); } }
int D3DApplication::Run() { MSG message = {0}; m_GameTimer.Reset(); while (message.message != WM_QUIT) { // If there are Window messages then process them. if (PeekMessage(&message, nullptr, 0, 0, PM_REMOVE)) { TranslateMessage(&message); DispatchMessage(&message); } // Otherwise, do animation/game stuff. else { m_GameTimer.Tick(); if(!m_IsPaused) { UpdateScene(m_GameTimer.GetDeltaTime()); } else { Sleep(50); } DrawScene(); } } return int(message.wParam); }
int main(int argc, char* argv[]) { //初始化NGE分为VIDEO,AUDIO,这里是只初始化VIDEO,如果初始化所有用INIT_VIDEO|INIT_AUDIO,或者INIT_ALL NGE_Init(INIT_VIDEO); //初始化按键处理btn_down是按下响应,后面是弹起时的响应,0是让nge处理home消息(直接退出),填1就是让PSP系统处理 //home消息,通常填1正常退出(1.50版的自制程序需要填0) InitInput(btn_down,NULL,1); //最后一个参数是psp swizzle优化,通常填1 p_bg = image_load("images/demo0.jpg",DISPLAY_PIXEL_FORMAT_8888,1); if(p_bg == NULL) { printf("can not open file\n"); } p_logo = image_load("images/nge2logo.png",DISPLAY_PIXEL_FORMAT_4444,1); if(p_logo == NULL) { printf("can not open file\n"); } //创建一个半透明的图片遮罩color logomask1 = CreateColor(255,255,255,128,p_logo->dtype); //随便创建一个图片遮罩color logomask2 = CreateColor(100,100,100,255,p_logo->dtype); while ( !game_quit ) { ShowFps(); InputProc(); DrawScene(); } image_free(p_bg); image_free(p_logo); NGE_Quit(); return 0; }
// рисуем сцену в соответствии со стерео-режимом void FullDraw() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); DrawScene(); }
void Renderer::RenderScene() { DrawScene(); DrawPostProcess(); PresentScene(); DrawDebugTexture(); SwapBuffers(); }
TesseractWidget::TesseractWidget(Socket *_TheSocket,int PlayerNum,QString PlayerName,QGLWidget *parent) : QGLWidget(parent), ui(new Ui::TesseractWidget) { ui->setupUi(this); TheSocket=_TheSocket; QThread *tt=new QThread(TheSocket); TheSocket->moveToThread(tt); tt->start(); connect(TheSocket,SIGNAL(readVariantMap(int,QString,quint16,const QVariantMap&)),this,SLOT(recvVariantMap(int,QString,quint16,const QVariantMap&))); connect(TheSocket,SIGNAL(sockDisconnect(int,QString,quint16)),this,SLOT(sockDisconnect(int,QString,quint16))); memset(KeyStatus,0,sizeof(KeyStatus)); creatingblock=0; mousetracked=1; TheWorld=new World; connect(TheWorld,SIGNAL(log(const QString&)),this,SLOT(Log(const QString&))); connect(TheWorld,SIGNAL(releaseMouse()),this,SLOT(releaseMouse())); connect(TheWorld,SIGNAL(trackMouse()),this,SLOT(trackMouse())); connect(TheWorld,SIGNAL(renderText2D(Coordinate,const QString&)),this,SLOT(renderText2D(Coordinate,const QString&))); connect(TheWorld,SIGNAL(renderText3D(Coordinate,const QString&,int)),this,SLOT(renderText3D(Coordinate,const QString&,int))); Player tp; tp.Name=PlayerName; TheWorld->Players.insert(PlayerNum,tp); TheWorld->Myself=TheWorld->Players.find(PlayerNum); PM=new PluginManager; PM->ClientLoadFolder("plugins",TheWorld,TheSocket); QApplication::setOverrideCursor(Qt::BlankCursor); gt=new GameThread(TheWorld,KeyStatus,TheSocket); gt->start(); GLTimer=new QTimer; GLTimer->start(16); connect(GLTimer,SIGNAL(timeout()),this,SLOT(DrawScene())); TheWorld->RegisterBlock(Block("Stone",Coordinate(.2,.2,.2),"")); currentblocktype="Stone"; QVariantMap qvm; qvm.insert("type","getbasic"); emit TheSocket->sendVariantMap(qvm,-1); }
int Draw(Screen *screen){// メイン描画処理 ClsDrawScreen(); //printfDx("テスト1\n"); DrawScene(screen);//ステージを描画させる ScreenFlip(); return DRAW_SUCCESS; }
// // Callbacks // void DisplayFunc () { glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); DrawScene(); glutSwapBuffers(); }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR pCmdLine, int nCmdShow) { g_hInstance = hInstance; InitializeContext(); InitializeWindow(); g_VkSwapchain.Initialize(); g_VkSwapchain.InitializeSwapchain(kScreenWidth, kScreenHeight, false); InitializeRenderSettings(); while (true) { PollEvents(); if (g_CloseRequest) { break; } DrawScene(); } DestroyRenderSettings(); g_VkSwapchain.Destroy(); DestroyWindow(); DestroyContext(); return 0; }
void QSceneDisplay::paintGL() { glEnable(GL_DEPTH_TEST); glClearColor(1,1,1,1); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); //glShadeModel(GL_FLAT); glShadeModel(GL_SMOOTH); GLfloat light_ambient[] = { 1.0, 1.0, 1.0, 1.0 };//环境光颜色 GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };//漫反射光颜色 GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };//镜面反思光颜色 GLfloat light_position[] = { 9999.0, 9999.0, 9999.0, 0.0 };//光源位置 glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);//设置环境光 glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);//设置漫反射光 glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);//设置镜面反射光 glLightfv(GL_LIGHT0, GL_POSITION, light_position);//设置光源位置 glEnable(GL_LIGHTING);//打开光线 glEnable(GL_LIGHT0);//打开0号光源 glEnable(GL_DEPTH_TEST);//打开深度测试 glDepthFunc(GL_LEQUAL); // 所作深度测试的类型 glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // 真正精细的透视修正 glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(plane[0],plane[1],plane[2],plane[3],-10000,10000); if(scene==NULL) return; gluLookAt(eye[0],eye[1],eye[2],scene->bsphere.center[0],scene->bsphere.center[1],scene->bsphere.center[2],up[0],up[1],up[2]); DrawScene(); }
void SHADOW_MAP_PASS() // FBO Version { // FBO glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fboId); ////////////////////////////////////////////// // First pass - from light's point of view glClear(GL_DEPTH_BUFFER_BIT); // no output to colorbuffer glViewport(0, 0, shadowMapSize, shadowMapSize); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity();// save current projection MULT_LIGHT_PROJECTION(); // light projection glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); // viewer: save current modelview (containing Viewing of camera) MULT_LIGHT_MODELVIEW(); // light view glPushAttrib (GL_ENABLE_BIT | GL_LIGHTING_BIT | GL_COLOR_BUFFER_BIT); //Disable color writes, and use flat shading for speed glColorMask(0, 0, 0, 0); // color buffer bit glShadeModel(GL_FLAT); // lighting bit glDisable (GL_LIGHTING); glDisable (GL_TEXTURE_2D); glPolygonOffset (8.0, 4.0); // IMPORTANT: to remove moire pattern (from z-fighting) glEnable (GL_POLYGON_OFFSET_FILL); glUseProgram(0); DrawScene(); // Draw the scene (fixed function) glPopAttrib(); glMatrixMode(GL_PROJECTION); glPopMatrix(); // restore current projection glMatrixMode(GL_MODELVIEW); glPopMatrix(); // restore Modelview to Vcamera glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); }
int D3DApp::Run() { MSG msg = {0}; mTimer.Reset(); while(msg.message != WM_QUIT) { // If there are Window messages then process them. if(PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) { TranslateMessage( &msg ); DispatchMessage( &msg ); } // Otherwise, do animation/game stuff. else { mTimer.Tick(); if( !mAppPaused ) { CalculateFrameStats(); UpdateScene(mTimer.DeltaTime()); DrawScene(); } else { Sleep(100); } } } return (int)msg.wParam; }
void D3DPBRApp::DrawScene() { //DrawEnvironment ID3D11RenderTargetView* rendertargets[1]; md3dImmediateContext->RSSetViewports(1, &mCubeMapViewport); for (int i = 0; i < 6;i++) { md3dImmediateContext->ClearRenderTargetView(mDynamicCubeMapRTV[i], reinterpret_cast<const float*>(&Colors::Black)); md3dImmediateContext->ClearDepthStencilView(mDynamicCubeMapDSV, D3D11_CLEAR_DEPTH|D3D11_CLEAR_STENCIL, 1.0f, 0); // Bind cube map face as render target. rendertargets[0] = mDynamicCubeMapRTV[i]; md3dImmediateContext->OMSetRenderTargets(1, rendertargets, mDynamicCubeMapDSV); DrawEnvironment(mCubeMapCamera[i]); } md3dImmediateContext->GenerateMips(mDynamicCubeMapSRV); md3dImmediateContext->ClearRenderTargetView(mRenderTargetView, reinterpret_cast<const float*>(&Colors::Black)); md3dImmediateContext->ClearDepthStencilView(mDepthStencilView, D3D11_CLEAR_DEPTH|D3D11_CLEAR_STENCIL, 1.0f, 0); md3dImmediateContext->OMSetRenderTargets(1, &mRenderTargetView, mDepthStencilView); mCam.UpdateViewMatrix(); DrawScene(mCam); DrawLUT(); HR(mSwapChain->Present(0, 0)); }
// D3D ½ÇÇà (¸Þ¼¼Áö ·çÇÁ) int cInitD3D::Run() { MSG msg = { 0 }; mTimer.Reset(); // ¸Þ¼¼Áö ·çÇÁ while (msg.message != WM_QUIT) { // À©µµ¿ì ¸Þ¼¼Áö°¡ µé¾î¿Ô´Â°¡? if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } // ¾Æ´Ï¶ó¸é, ·»´õ¸µ else { // ŸÀÌ¸Ó mTimer.Tick(); if (!mAppPaused) { CalculateFrameStats(); UpdateScene(mTimer.DeltaTime()); DrawScene(); } else { // ÇÁ·¹ÀÓ Àç°è»êÇÏ´Â ½Ã°£ Sleep(100); } } } return (int)msg.wParam; }
int messageloop(){ // Struktur um die message zu speichern MSG msg; ZeroMemory(&msg, sizeof(MSG)); while (true) { //Schau nach ob es eine Nachricht gibt if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { if (msg.message == WM_QUIT) break; // Bearbeite die message TranslateMessage(&msg); DispatchMessage(&msg); } // Wenn nicht : else { UpdateScene(); DrawScene(); } } return msg.wParam; }
void App_Render(void) { DrawScene(); DebugScreen(); sceDisplayWaitVblankStart(); fbp0 = sceGuSwapBuffers(); }