void CWsTop::RedrawScreens() { // apply to all screens TInt screenNo; for(screenNo=0; screenNo<iNumberOfScreens; ++screenNo) { CScreen* screen = Screen(screenNo); TRegionFix<1> screenArea(TRect(screen->DrawableArea())); } }
CScreen* CClientApp::openClientScreen() { CScreen* screen = createScreen(); EVENTQUEUE->adoptHandler(IScreen::getErrorEvent(), screen->getEventTarget(), new TMethodEventJob<CClientApp>( this, &CClientApp::handleScreenError)); return screen; }
static CScreen* openServerScreen() { CScreen* screen = createScreen(); EVENTQUEUE->adoptHandler(IScreen::getErrorEvent(), screen->getEventTarget(), new CFunctionEventJob( &handleScreenError)); return screen; }
CScreen* CServerApp::openServerScreen() { CScreen* screen = createScreen(); EVENTQUEUE->adoptHandler(IScreen::getErrorEvent(), screen->getEventTarget(), new TMethodEventJob<CServerApp>( this, &CServerApp::handleScreenError)); EVENTQUEUE->adoptHandler(IScreen::getSuspendEvent(), screen->getEventTarget(), new TMethodEventJob<CServerApp>( this, &CServerApp::handleSuspend)); EVENTQUEUE->adoptHandler(IScreen::getResumeEvent(), screen->getEventTarget(), new TMethodEventJob<CServerApp>( this, &CServerApp::handleResume)); return screen; }
void CWsTop::InitScreenL( TInt aScreenNumber) // static { // create a new screen, read ini file for aScreenNumber (this happens in CScreen - just need to pass a screen number from here CScreen* screen = new (ELeave) CScreen() ; CleanupStack::PushL( screen ) ; TRect digitiserArea; if (aScreenNumber==0) { TMachineInfoV1Buf machineBuf; UserHal::MachineInfo(machineBuf); TMachineInfoV1& machineInfo=*(TMachineInfoV1*)machineBuf.Ptr(); digitiserArea = TRect(-machineInfo.iOffsetToDisplayInPixels,machineInfo.iXYInputSizeInPixels); } screen->ConstructL(digitiserArea, aScreenNumber); iScreens->AppendL( screen ) ; CleanupStack::Pop( screen ) ; }
CScreen* CServerApp::openServerScreen() { CScreen* screen = createScreen(); m_events->adoptHandler(m_events->forIScreen().error(), screen->getEventTarget(), new TMethodEventJob<CServerApp>( this, &CServerApp::handleScreenError)); m_events->adoptHandler(m_events->forIScreen().suspend(), screen->getEventTarget(), new TMethodEventJob<CServerApp>( this, &CServerApp::handleSuspend)); m_events->adoptHandler(m_events->forIScreen().resume(), screen->getEventTarget(), new TMethodEventJob<CServerApp>( this, &CServerApp::handleResume)); return screen; }
void CKeyboard::OnKeyDown(WPARAM wParam, LPARAM lParam) { BYTE key; BOOL ctrl = KEYDOWN( DIK_LCONTROL ) || KEYDOWN( DIK_RCONTROL ); BOOL alt = KEYDOWN( DIK_LMENU ) || KEYDOWN( DIK_RMENU ); BOOL shift = KEYDOWN( DIK_LSHIFT ) || KEYDOWN( DIK_RSHIFT ); if ( lParam == 0 ) // only for key down, not for repeat { switch( wParam ) { case DIK_CAPITAL: m_bCaps = !m_bCaps; return; case DIK_SCROLL: m_bScroll = !m_bScroll; break; case 0xC6: // control+pause : break g_pBoard->Reset(); return; case DIK_F8: if ( ctrl ) // Toggle Full Screen mode { ::PostMessage( g_pBoard->m_lpwndMainFrame->m_hWnd, WM_COMMAND, ID_FULL_SCREEN, 0 ); //CScreen* pScreen = g_pBoard->m_pScreen; //pScreen->SetFullScreenMode( pScreen->m_bWindowed ); // Toggle Full Screen mode return; } else if ( shift ) // Toggle Message View { CScreen* pScreen = g_pBoard->m_pScreen; pScreen->ToggleMessage(); // Toggle Message View return; } g_pBoard->m_pScreen->ChangeMonitorType(); return; case DIK_F9: if ( ctrl ) { if ( g_pBoard->m_cSlots.HasHardDiskInterface() ) { //g_cDIKeyboard.SetActive( FALSE, FALSE ); // don't wait for thread done //g_cDIMouse.SetActive( FALSE, FALSE ); // don't wait ::PostMessage( g_pBoard->m_lpwndMainFrame->m_hWnd, WM_COMMAND, ID_HARDDISK, 0 ); } } else { if ( g_pBoard->m_cSlots.HasDiskInterface() ) { //g_cDIKeyboard.SetActive( FALSE, FALSE ); // don't wait for thread done //g_cDIMouse.SetActive( FALSE, FALSE ); // don't wait ::PostMessage( g_pBoard->m_lpwndMainFrame->m_hWnd, WM_COMMAND, ID_DISKETTE, 0 ); } } return; case DIK_F10: //g_cDIKeyboard.SetActive( FALSE, FALSE ); // don't wait for thread done //g_cDIMouse.SetActive( FALSE, FALSE ); // don't wait ::PostMessage( g_pBoard->m_lpwndMainFrame->m_hWnd, WM_COMMAND, ID_CONFIGURE_SLOTS, 0 ); return; case DIK_F11: if ( ctrl ) { if ( shift ) g_pBoard->PowerOff(); else { if ( g_pBoard->GetIsActive() ) g_pBoard->PowerOff(); else g_pBoard->PowerOn(); } return; } break; default: break; } } switch (wParam) { case DIK_LEFT: case DIK_RIGHT: case DIK_DOWN: case DIK_UP: if (m_bScroll == TRUE && akm_shift[DIK_NUMPAD2] == 0) { return; } break; default: break; } if ( shift && !ctrl ) key = akm_shift[wParam]; else { key = akm_normal[wParam]; if ( ctrl ) key &= ~0x40; } if ( key != 0 ) { key |= 0x80; if ( m_bCaps ) { if ( key >= 0xC1 && key <= 0xDA ) { key |= 0x20; } else if ( key >= 0xE1 && key <= 0xFA ) { key &= ~0x20; } } m_lastKey = m_keyStrobe = key; } }
void CCanvas::SetCurrent (CCanvas *canvP) { m_current = canvP ? canvP : screen.Canvas (); fontManager.SetCurrent (m_current->Font ()); }
void CActorInstance::OnRender() { D3DMATERIAL8 kMtrl; STATEMANAGER.GetMaterial(&kMtrl); kMtrl.Diffuse=D3DXCOLOR(m_dwMtrlColor); STATEMANAGER.SetMaterial(&kMtrl); // 현재는 이렇게.. 최종적인 형태는 Diffuse와 Blend의 분리로.. // 아니면 이런 형태로 가되 Texture & State Sorting 지원으로.. - [levites] STATEMANAGER.SaveRenderState(D3DRS_CULLMODE, D3DCULL_NONE); switch(m_iRenderMode) { case RENDER_MODE_NORMAL: BeginDiffuseRender(); RenderWithOneTexture(); EndDiffuseRender(); BeginOpacityRender(); BlendRenderWithOneTexture(); EndOpacityRender(); break; case RENDER_MODE_BLEND: if (m_fAlphaValue == 1.0f) { BeginDiffuseRender(); RenderWithOneTexture(); EndDiffuseRender(); BeginOpacityRender(); BlendRenderWithOneTexture(); EndOpacityRender(); } else if (m_fAlphaValue > 0.0f) { BeginBlendRender(); RenderWithOneTexture(); BlendRenderWithOneTexture(); EndBlendRender(); } break; case RENDER_MODE_ADD: BeginAddRender(); RenderWithOneTexture(); BlendRenderWithOneTexture(); EndAddRender(); break; case RENDER_MODE_MODULATE: BeginModulateRender(); RenderWithOneTexture(); BlendRenderWithOneTexture(); EndModulateRender(); break; } STATEMANAGER.RestoreRenderState(D3DRS_CULLMODE); kMtrl.Diffuse=D3DXCOLOR(0xffffffff); STATEMANAGER.SetMaterial(&kMtrl); if (ms_isDirLine) { D3DXVECTOR3 kD3DVt3Cur(m_x, m_y, m_z); D3DXVECTOR3 kD3DVt3LookDir(0.0f, -1.0f, 0.0f); D3DXMATRIX kD3DMatLook; D3DXMatrixRotationZ(&kD3DMatLook, D3DXToRadian(GetRotation())); D3DXVec3TransformCoord(&kD3DVt3LookDir, &kD3DVt3LookDir, &kD3DMatLook); D3DXVec3Scale(&kD3DVt3LookDir, &kD3DVt3LookDir, 200.0f); D3DXVec3Add(&kD3DVt3LookDir, &kD3DVt3LookDir, &kD3DVt3Cur); D3DXVECTOR3 kD3DVt3AdvDir(0.0f, -1.0f, 0.0f); D3DXMATRIX kD3DMatAdv; D3DXMatrixRotationZ(&kD3DMatAdv, D3DXToRadian(GetAdvancingRotation())); D3DXVec3TransformCoord(&kD3DVt3AdvDir, &kD3DVt3AdvDir, &kD3DMatAdv); D3DXVec3Scale(&kD3DVt3AdvDir, &kD3DVt3AdvDir, 200.0f); D3DXVec3Add(&kD3DVt3AdvDir, &kD3DVt3AdvDir, &kD3DVt3Cur); static CScreen s_kScreen; STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLORARG1, D3DTA_DIFFUSE); STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1); STATEMANAGER.SaveTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_DISABLE); STATEMANAGER.SaveRenderState(D3DRS_ZENABLE, FALSE); STATEMANAGER.SetRenderState(D3DRS_LIGHTING, FALSE); s_kScreen.SetDiffuseColor(1.0f, 1.0f, 0.0f); s_kScreen.RenderLine3d(kD3DVt3Cur.x, kD3DVt3Cur.y, kD3DVt3Cur.z, kD3DVt3AdvDir.x, kD3DVt3AdvDir.y, kD3DVt3AdvDir.z); s_kScreen.SetDiffuseColor(0.0f, 1.0f, 1.0f); s_kScreen.RenderLine3d(kD3DVt3Cur.x, kD3DVt3Cur.y, kD3DVt3Cur.z, kD3DVt3LookDir.x, kD3DVt3LookDir.y, kD3DVt3LookDir.z); STATEMANAGER.SetRenderState(D3DRS_LIGHTING, TRUE); STATEMANAGER.RestoreRenderState(D3DRS_ZENABLE); STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLORARG1); STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLOROP); STATEMANAGER.RestoreTextureStageState(0, D3DTSS_ALPHAOP); STATEMANAGER.RestoreVertexShader(); } }
void CActorInstance::RenderCollisionData() { static CScreen s_Screen; STATEMANAGER.SetRenderState(D3DRS_LIGHTING, FALSE); STATEMANAGER.SaveRenderState(D3DRS_CULLMODE, D3DCULL_NONE); if (m_pAttributeInstance) { for (DWORD col=0; col < GetCollisionInstanceCount(); ++col) { CBaseCollisionInstance * pInstance = GetCollisionInstanceData(col); pInstance->Render(); } } STATEMANAGER.SetRenderState(D3DRS_ZENABLE, FALSE); s_Screen.SetColorOperation(); s_Screen.SetDiffuseColor(1.0f, 0.0f, 0.0f); TCollisionPointInstanceList::iterator itor; /*itor = m_AttackingPointInstanceList.begin(); for (; itor != m_AttackingPointInstanceList.end(); ++itor) { const TCollisionPointInstance & c_rInstance = *itor; for (DWORD i = 0; i < c_rInstance.SphereInstanceVector.size(); ++i) { const CDynamicSphereInstance & c_rSphereInstance = c_rInstance.SphereInstanceVector[i]; s_Screen.RenderCircle3d(c_rSphereInstance.v3Position.x, c_rSphereInstance.v3Position.y, c_rSphereInstance.v3Position.z, c_rSphereInstance.fRadius); } }*/ s_Screen.SetDiffuseColor(1.0f, (isShow())?1.0f:0.0f, 0.0f); D3DXVECTOR3 center; float r; GetBoundingSphere(center,r); s_Screen.RenderCircle3d(center.x,center.y,center.z,r); s_Screen.SetDiffuseColor(0.0f, 0.0f, 1.0f); itor = m_DefendingPointInstanceList.begin(); for (; itor != m_DefendingPointInstanceList.end(); ++itor) { const TCollisionPointInstance & c_rInstance = *itor; for (DWORD i = 0; i < c_rInstance.SphereInstanceVector.size(); ++i) { const CDynamicSphereInstance & c_rSphereInstance = c_rInstance.SphereInstanceVector[i]; s_Screen.RenderCircle3d(c_rSphereInstance.v3Position.x, c_rSphereInstance.v3Position.y, c_rSphereInstance.v3Position.z, c_rSphereInstance.fRadius); } } s_Screen.SetDiffuseColor(0.0f, 1.0f, 0.0f); itor = m_BodyPointInstanceList.begin(); for (; itor != m_BodyPointInstanceList.end(); ++itor) { const TCollisionPointInstance & c_rInstance = *itor; for (DWORD i = 0; i < c_rInstance.SphereInstanceVector.size(); ++i) { const CDynamicSphereInstance & c_rSphereInstance = c_rInstance.SphereInstanceVector[i]; s_Screen.RenderCircle3d(c_rSphereInstance.v3Position.x, c_rSphereInstance.v3Position.y, c_rSphereInstance.v3Position.z, c_rSphereInstance.fRadius); } } s_Screen.SetDiffuseColor(1.0f, 0.0f, 0.0f); // if (m_SplashArea.fDisappearingTime > GetLocalTime()) { CDynamicSphereInstanceVector::iterator itor = m_kSplashArea.SphereInstanceVector.begin(); for (; itor != m_kSplashArea.SphereInstanceVector.end(); ++itor) { const CDynamicSphereInstance & c_rInstance = *itor; s_Screen.RenderCircle3d(c_rInstance.v3Position.x, c_rInstance.v3Position.y, c_rInstance.v3Position.z, c_rInstance.fRadius); } } STATEMANAGER.SetRenderState(D3DRS_ZENABLE, TRUE); STATEMANAGER.RestoreRenderState(D3DRS_CULLMODE); STATEMANAGER.SetRenderState(D3DRS_LIGHTING, TRUE); }