virtual void PostRender() override { IRenderer* pRenderer = GLOBAL::Engine()->Renderer(); eTRANSFORM_MODE mode = GLOBAL::SelectionMgr()->GetTransformMode(); int FPS = GLOBAL::Engine()->GlobalTimer()->GetFPS(); RENDER_TEXT_QUAD textFPS; _itow_s(FPS, textFPS.strMsg, 5, 10); textFPS.rc.left = 0; textFPS.rc.top = 0; textFPS.rc.right = 100; textFPS.rc.bottom = 100; textFPS.clr = CColor( 1.0f, 1.0f, 1.0f, 1.0f ); pRenderer->RenderText(&textFPS); pRenderer->RenderWorldGrid( XMMatrixIdentity(), 5000, 100 ); TYPE_SELECTED_ENTITIES* selcetedEntities = GLOBAL::SelectionMgr()->List(); for( UINT i=0; i< selcetedEntities->size() ; ++i) { IEntity* pEntity = (*selcetedEntities)[i]; // Draw transform helper CQuat rot; XMMATRIX tm = XMMatrixIdentity(); tm.r[3] = pEntity->GetWorldTM().r[3]; if( mode == TRANSFORM_MOVE) { pRenderer->RenderMover( tm ); } else if( mode == TRANSFORM_ROTATE) { pRenderer->RenderRotator( tm); } else if( mode == TRANSFORM_SCALE) { pRenderer->RenderScaler( tm ); } pRenderer->RenderAxis( pEntity->GetWorldTM() ); const CAABB* pWorldAABB = pEntity->GetWorldAABB(); // Draw Bounding Box if( pWorldAABB->IsValid() ) { pRenderer->RenderBox( XMMatrixIdentity(), pWorldAABB->GetMin(), pWorldAABB->GetMax() ,COLOR_GRAY ); const CAABB* pLocalEntityAABB = pEntity->GetLocalEntityAABB(); if( pLocalEntityAABB->IsValid() ) pRenderer->RenderBox( pEntity->GetWorldTM(), pLocalEntityAABB->GetMin(), pLocalEntityAABB->GetMax() ,COLOR_WHITE ); } // Draw skeleton if it has a actor IEntityProxyActor* pActor = (IEntityProxyActor*)pEntity->GetProxy(ENTITY_PROXY_ACTOR); if( pActor != NULL) { JOINT_ENTITY_LIST* pJointEntitesList = pActor->GetJointEntities(); CVertexPC buff[512]; int vertIndex = 0; for( UINT i=1; i < pJointEntitesList->size(); ++i) { buff[vertIndex].vPos = (*pJointEntitesList)[i]->GetWorldPos(); buff[vertIndex].color = COLOR_RED; vertIndex++; buff[vertIndex].vPos = (*pJointEntitesList)[i]->GetParent()->GetWorldPos(); buff[vertIndex].color = COLOR_RED; vertIndex++; } pRenderer->RenderLine( buff, vertIndex ); } } { /* const LIGHT_LIST* pLightList = GLOBAL::Engine()->LightMgr()->GetVisibleLights(); for( UINT i =0; i < pLightList->size(); ++i ) { CLightDesc* pLightDesc = (*pLightList)[i]; pRenderer->RenderSphere( &pLightDesc->pos, pLightDesc->range ); }*/ } }