Ignore:
Timestamp:
03/24/05 12:15:20 (19 years ago)
Author:
gametools
Message:
 
Location:
trunk/VUT/OcclusionCullingSceneManager/TestCulling
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/OcclusionCullingSceneManager/TestCulling/TestCulling.vcproj

    r23 r29  
    4141                                ProgramDatabaseFile="$(OutDir)/TestCulling.pdb" 
    4242                                SubSystem="2" 
     43                                ImportLibrary="" 
    4344                                TargetMachine="1"/> 
    4445                        <Tool 
  • 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 ) 
  • trunk/VUT/OcclusionCullingSceneManager/TestCulling/TestCullingApplication.h

    r28 r29  
    1717} 
    1818 
    19 String mAlgorithmTypeCaptions[OcclusionCullingSceneManager::NUM_RENDERMODES] =  
     19String mCurrentAlgorithmCaptions[OcclusionCullingSceneManager::NUM_RENDERMODES] =  
    2020{ 
    2121    "Cull Frustum",  
     
    2929 
    3030    MouseQueryListener(RenderWindow* win, Camera* cam, SceneManager *sceneManager, CEGUI::Renderer *renderer, 
    31                                            SceneNode* shipNode) 
    32         : ExampleFrameListener(win, cam, false, true), mGUIRenderer(renderer), mShipNode(shipNode)//,  mShutdownRequested(false) 
    33     { 
     31                                           SceneNode* shipNode); 
    3432 
    35                 // Setup default variables 
    36         mCurrentObject = NULL; 
    37         mLMouseDown = false; 
    38         mRMouseDown = false; 
    39         mSceneMgr = sceneManager; 
    40  
    41         // Reduce move speed 
    42         mMoveSpeed = 50; 
    43         mRotateSpeed *= 2; 
    44          
    45                 mAlgorithmType = OcclusionCullingSceneManager::RENDER_COHERENT; 
    46  
    47                 // Register this so that we get mouse events. 
    48         mEventProcessor->addMouseListener(this); 
    49         mEventProcessor->addMouseMotionListener(this); 
    50                 mEventProcessor->addKeyListener(this); 
    51  
    52                 // show overlay 
    53         Overlay* pOver = OverlayManager::getSingleton().getByName("Example/ShadowsOverlay");     
    54         mAlgorithmInfo = OverlayManager::getSingleton().getOverlayElement("Example/Shadows/ShadowTechniqueInfo"); 
    55         //mMaterialInfo = OverlayManager::getSingleton().getOverlayElement("Example/Shadows/MaterialInfo"); 
    56         //mInfo = OverlayManager::getSingleton().getOverlayElement("Example/Shadows/Info"); 
    57  
    58                 mAlgorithmInfo->setCaption("Algorithm: " + mAlgorithmTypeCaptions[mAlgorithmType]); 
    59         //mMaterialInfo->setCaption("Current: " + mAtheneMaterials[mCurrentAtheneMaterial]); 
    60         pOver->show(); 
    61     } // MouseQueryListener 
    6233 
    6334    ~MouseQueryListener( ) 
     
    6536    } 
    6637 
    67    bool frameEnded(const FrameEvent& evt) 
    68     { 
    69         if (timeDelay >= 0)  
    70             timeDelay -= evt.timeSinceLastFrame; 
    71  
    72         KEY_PRESSED(KC_O, 1, changeAlgorithm()); 
    73        
    74         return ExampleFrameListener::frameStarted(evt) && ExampleFrameListener::frameEnded(evt);         
    75     } 
    76  
     38        bool frameEnded(const FrameEvent& evt); 
    7739    /* MouseListener callbacks. */ 
    7840    virtual void mouseClicked(MouseEvent* e) { } 
     
    12587    } 
    12688*/ 
    127          void changeAlgorithm() 
    128     { 
    129         mAlgorithmType = ++mAlgorithmType % OcclusionCullingSceneManager::NUM_RENDERMODES; 
    130         mAlgorithmInfo->setCaption("Algorithm: " + mAlgorithmTypeCaptions[mAlgorithmType]); 
    131     } 
     89        void changeAlgorithm(); 
    13290 
    13391 
     
    13997        SceneNode* mShipNode; 
    14098//      bool mShutdownRequested; 
    141         int mAlgorithmType; 
     99        int mCurrentAlgorithm; 
    142100        OverlayElement *mAlgorithmInfo; 
    143101}; 
     
    154112protected: 
    155113        void createScene(void); 
    156  
    157         void createFrameListener(void) 
    158     { 
    159                 mFrameListener= new MouseQueryListener(mWindow, mCamera, mSceneMgr, mGUIRenderer, mShipNode); 
    160                 mFrameListener->showDebugOverlay(true); 
    161                 mRoot->addFrameListener(mFrameListener); 
    162     } 
     114        void createFrameListener(void); 
    163115 
    164116        CEGUI::OgreCEGUIRenderer *mGUIRenderer; 
     
    166118 
    167119private: 
     120        void chooseSceneManager(void); 
     121 
    168122        Entity* mShip; 
    169123        SceneNode* mShipNode; 
     
    189143    }*/ 
    190144    // Override scene manager (use indoor instead of generic) 
    191     void chooseSceneManager(void) 
    192     { 
    193         mSceneMgr = mRoot->getSceneManager(ST_GENERIC); 
    194     } 
     145     
     146 
    195147         
    196148}; 
Note: See TracChangeset for help on using the changeset viewer.