Ignore:
Timestamp:
03/24/05 08:18:59 (19 years ago)
Author:
gametools
Message:
 
Location:
trunk/VUT/OcclusionCullingSceneManager/TestCulling
Files:
2 edited

Legend:

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

    r18 r28  
    66*/ 
    77 
     8#pragma warning (push) 
     9#pragma warning( disable : 4267 ) 
     10 
     11#include <OgreNoMemoryMacros.h> 
     12#include <CEGUI/CEGUI.h> 
     13#include <../CEGUIRenderer/include/OgreCEGUIRenderer.h> 
     14#include <../CEGUIRenderer/include/OgreCEGUIResourceProvider.h> 
     15#include <../CEGUIRenderer/include/OgreCEGUITexture.h> 
     16#include <OgreMemoryMacros.h> 
     17#pragma warning (pop) 
     18/* 
    819#include <CEGUI/CEGUIImageset.h> 
    920#include <CEGUI/CEGUISystem.h> 
     
    2132#include "OgreCEGUIRenderer.h" 
    2233#include "OgreCEGUIResourceProvider.h" 
    23  
     34*/ 
    2435#include "Ogre.h" 
    2536#include "TestCullingApplication.h" 
  • trunk/VUT/OcclusionCullingSceneManager/TestCulling/TestCullingApplication.h

    r27 r28  
    77#include "OgreOcclusionCullingSceneManager.h" 
    88 
     9Real timeDelay = 0; 
     10#define KEY_PRESSED(_key,_timeDelay, _macro) \ 
     11{ \ 
     12    if (mInputDevice->isKeyDown(_key) && timeDelay <= 0) \ 
     13{ \ 
     14    timeDelay = _timeDelay; \ 
     15    _macro ; \ 
     16} \ 
     17} 
     18 
     19String mAlgorithmTypeCaptions[OcclusionCullingSceneManager::NUM_RENDERMODES] =  
     20{ 
     21    "Cull Frustum",  
     22        "Stop and Wait",  
     23        "Coherent Occlusion Culling" 
     24}; 
     25 
    926class MouseQueryListener : public ExampleFrameListener, public MouseListener, public MouseMotionListener 
    1027{ 
     
    1330    MouseQueryListener(RenderWindow* win, Camera* cam, SceneManager *sceneManager, CEGUI::Renderer *renderer, 
    1431                                           SceneNode* shipNode) 
    15         : ExampleFrameListener(win, cam, false, true), mGUIRenderer(renderer), mShipNode(shipNode),  mShutdownRequested(false) 
     32        : ExampleFrameListener(win, cam, false, true), mGUIRenderer(renderer), mShipNode(shipNode)//,  mShutdownRequested(false) 
    1633    { 
    1734 
     
    2845                mAlgorithmType = OcclusionCullingSceneManager::RENDER_COHERENT; 
    2946 
    30                 //mMyOverlay = OverlayManager::getSingleton().getByName("scripts/MyPanel"); 
    31                 mMyOverlay = OverlayManager::getSingleton().getByName("Core/MyPanel"); 
    32  
    33                 //mDebugOverlay->hide(); 
    34                 //mMyOverlay->show(); 
    3547                // Register this so that we get mouse events. 
    3648        mEventProcessor->addMouseListener(this); 
    3749        mEventProcessor->addMouseMotionListener(this); 
    3850                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(); 
    3961    } // MouseQueryListener 
    4062 
     
    4365    } 
    4466 
    45         void myShowOverlay(bool show) 
    46         { 
    47                 if (mDebugOverlay) 
    48         { 
    49             if (show) 
    50             { 
    51                 mDebugOverlay->show(); 
    52             } 
    53             else 
    54             { 
    55                 mDebugOverlay->hide(); 
    56             } 
    57         } 
    58                 if(mMyOverlay) 
    59                 { 
    60                         mMyOverlay->show(); 
    61                 } 
     67   bool frameEnded(const FrameEvent& evt) 
     68    { 
     69        if (timeDelay >= 0)  
     70            timeDelay -= evt.timeSinceLastFrame; 
    6271 
    63         } 
    64     bool frameStarted(const FrameEvent &evt) 
    65     { 
    66         /*    Real MoveFactor = 80.0 * evt.timeSinceLastFrame; 
    67   
    68                 mInputDevice->capture(); 
    69   
    70                 if(mInputDevice->isKeyDown(Ogre::KC_UP)) 
    71                 { 
    72                         mAlgorithmType = (mAlgorithmType + 1) % OcclusionCullingSceneManager::NUM_RENDERMODES; 
    73                         //mShipNode->translate(0.0, MoveFactor, 0.0); 
    74                 } 
    75   
    76                 if(mInputDevice->isKeyDown(Ogre::KC_DOWN)) 
    77                         mShipNode->translate(0.0, -MoveFactor, 0.0); 
    78   
    79                 if(mInputDevice->isKeyDown(Ogre::KC_LEFT)) 
    80                         mShipNode->translate(-MoveFactor, 0.0, 0.0); 
    81   
    82                 if(mInputDevice->isKeyDown(Ogre::KC_RIGHT)) 
    83                         mShipNode->translate(MoveFactor, 0.0, 0.0);              
    84   
    85                 if(mInputDevice->isKeyDown(Ogre::KC_ESCAPE)) 
    86                         return false;*/ 
    87  
    88                 if(mInputDevice->isKeyDown(Ogre::KC_L)) 
    89                         myShowOverlay(false); 
    90  
    91                 return ExampleFrameListener::frameStarted(evt); 
     72        KEY_PRESSED(KC_O, 1, changeAlgorithm()); 
     73       
     74        return ExampleFrameListener::frameStarted(evt) && ExampleFrameListener::frameEnded(evt);         
    9275    } 
    9376 
     
    10891    // This is when the mouse is clicked, held and dragged. 
    10992    virtual void mouseDragged (MouseEvent *e); 
    110  
     93/* 
    11194    void keyPressed(KeyEvent* e) 
    11295    { 
     
    134117        } 
    135118 
    136           bool frameEnded(const FrameEvent& evt) 
     119    bool frameEnded(const FrameEvent& evt) 
    137120    { 
    138121        if (mShutdownRequested) 
     
    141124            return ExampleFrameListener::frameEnded(evt); 
    142125    } 
     126*/ 
     127         void changeAlgorithm() 
     128    { 
     129        mAlgorithmType = ++mAlgorithmType % OcclusionCullingSceneManager::NUM_RENDERMODES; 
     130        mAlgorithmInfo->setCaption("Algorithm: " + mAlgorithmTypeCaptions[mAlgorithmType]); 
     131    } 
    143132 
    144         void setAlgorithmType(int type) { mAlgorithmType = type; } 
    145         int getAlgorithmType() { return mAlgorithmType; } 
    146133 
    147134protected: 
     
    151138    CEGUI::Renderer *mGUIRenderer;     // cegui renderer 
    152139        SceneNode* mShipNode; 
    153         bool mShutdownRequested; 
     140//      bool mShutdownRequested; 
    154141        int mAlgorithmType; 
    155         Overlay *mMyOverlay; 
     142        OverlayElement *mAlgorithmInfo; 
    156143}; 
    157144 
Note: See TracChangeset for help on using the changeset viewer.