Ignore:
Timestamp:
03/24/05 12:15:20 (19 years ago)
Author:
gametools
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/OcclusionCullingSceneManager/TestCulling/TestCullingApplication.cpp

    r28 r29  
    66*/ 
    77 
    8 #pragma warning (push) 
    9 #pragma warning( disable : 4267 ) 
     8//#pragma warning (push) 
     9//#pragma warning( disable : 4267 ) 
    1010 
    1111#include <OgreNoMemoryMacros.h> 
     
    1515#include <../CEGUIRenderer/include/OgreCEGUITexture.h> 
    1616#include <OgreMemoryMacros.h> 
    17 #pragma warning (pop) 
     17//#pragma warning (pop) 
    1818/* 
    1919#include <CEGUI/CEGUIImageset.h> 
     
    3939#include "windows.h" 
    4040 
     41/***********************************************/ 
     42/* TestCullingApplication implementation       */ 
     43/***********************************************/ 
     44 
     45 
     46//----------------------------------------------------------------------- 
    4147void TestCullingApplication::createScene(void) 
    4248{ 
     
    6773     mGUISystem->setGUISheet(sheet);*/ 
    6874} 
    69  
    70  
    71 /* MouseMotionListener callbacks */ 
     75//----------------------------------------------------------------------- 
     76void TestCullingApplication::createFrameListener(void) 
     77{ 
     78        mFrameListener= new MouseQueryListener(mWindow, mCamera, mSceneMgr, mGUIRenderer, mShipNode); 
     79        mFrameListener->showDebugOverlay(true); 
     80        mRoot->addFrameListener(mFrameListener); 
     81} 
     82//----------------------------------------------------------------------- 
     83void TestCullingApplication::chooseSceneManager(void) 
     84{ 
     85    mSceneMgr = mRoot->getSceneManager(ST_GENERIC); 
     86} 
     87 
     88/***********************************************/ 
     89/* MouseQueryListener implementation           */ 
     90/***********************************************/ 
     91 
     92//----------------------------------------------------------------------- 
     93MouseQueryListener::MouseQueryListener(RenderWindow* win, Camera* cam, SceneManager *sceneManager, CEGUI::Renderer *renderer, 
     94                                           SceneNode* shipNode) 
     95        : ExampleFrameListener(win, cam, false, true), mGUIRenderer(renderer), mShipNode(shipNode)//,  mShutdownRequested(false) 
     96{ 
     97 
     98                // Setup default variables 
     99        mCurrentObject = NULL; 
     100        mLMouseDown = false; 
     101        mRMouseDown = false; 
     102        mSceneMgr = sceneManager; 
     103 
     104        // Reduce move speed 
     105        mMoveSpeed = 50; 
     106        mRotateSpeed *= 2; 
     107         
     108                mCurrentAlgorithm = OcclusionCullingSceneManager::RENDER_COHERENT; 
     109 
     110                // Register this so that we get mouse events. 
     111        mEventProcessor->addMouseListener(this); 
     112        mEventProcessor->addMouseMotionListener(this); 
     113                mEventProcessor->addKeyListener(this); 
     114 
     115                // show overlay 
     116        Overlay* pOver = OverlayManager::getSingleton().getByName("Example/OcclusionDemoOverlay");     
     117        mAlgorithmInfo = OverlayManager::getSingleton().getOverlayElement("Example/Occlusion/OcclusionTechniqueInfo"); 
     118        //mMaterialInfo = OverlayManager::getSingleton().getOverlayElement("Example/Shadows/MaterialInfo"); 
     119        //mInfo = OverlayManager::getSingleton().getOverlayElement("Example/Shadows/Info"); 
     120 
     121                mAlgorithmInfo->setCaption(": " + mCurrentAlgorithmCaptions[mCurrentAlgorithm]); 
     122        //mMaterialInfo->setCaption(": " + mAtheneMaterials[mCurrentAtheneMaterial]); 
     123        pOver->show(); 
     124} // MouseQueryListener 
     125//----------------------------------------------------------------------- 
    72126void MouseQueryListener::mouseMoved (MouseEvent *e) 
    73127{ 
     
    75129    CEGUI::System::getSingleton().injectMouseMove(e->getRelX() * mGUIRenderer->getWidth(), e->getRelY() * mGUIRenderer->getHeight()); 
    76130} 
    77  
    78  
     131//----------------------------------------------------------------------- 
    79132void MouseQueryListener::mousePressed(MouseEvent* e) 
    80133{ 
     
    93146} // mousePressed 
    94147 
    95   
     148 //----------------------------------------------------------------------- 
    96149void MouseQueryListener::mouseReleased(MouseEvent* e) 
    97150{ 
     
    109162    } // else if 
    110163} // mouseReleased 
    111  
    112  
    113  // This is when the mouse is clicked, held and dragged. 
     164//----------------------------------------------------------------------- 
    114165void MouseQueryListener::mouseDragged (MouseEvent *e) 
    115166 { 
     
    127178    } // else if 
    128179} // mouseDragged 
    129  
     180//----------------------------------------------------------------------- 
     181bool MouseQueryListener::frameEnded(const FrameEvent& evt) 
     182{ 
     183    if (timeDelay >= 0)  
     184        timeDelay -= evt.timeSinceLastFrame; 
     185 
     186    KEY_PRESSED(KC_O, 1, changeAlgorithm()); 
     187       
     188    return ExampleFrameListener::frameStarted(evt) && ExampleFrameListener::frameEnded(evt);         
     189} 
     190//----------------------------------------------------------------------- 
     191void MouseQueryListener::changeAlgorithm() 
     192{ 
     193    mCurrentAlgorithm = ++mCurrentAlgorithm % OcclusionCullingSceneManager::NUM_RENDERMODES; 
     194    mAlgorithmInfo->setCaption(": " + mCurrentAlgorithmCaptions[mCurrentAlgorithm]); 
     195 
     196        mSceneMgr->setOption("Algorithm", &mCurrentAlgorithm); 
     197} 
    130198 
    131199INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT ) 
Note: See TracChangeset for help on using the changeset viewer.