Changeset 18 for trunk/VUT


Ignore:
Timestamp:
03/16/05 11:20:22 (19 years ago)
Author:
gametools
Message:

added mouse functionality

Location:
trunk/VUT/OcclusionCullingSceneManager
Files:
1 added
6 edited

Legend:

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

    r17 r18  
    2121                                Name="VCCLCompilerTool" 
    2222                                Optimization="0" 
    23                                 AdditionalIncludeDirectories="$(OGRE_PATH)\Samples\Common\Include, D:\ogrenew\OgreMain\include" 
     23                                AdditionalIncludeDirectories=""$(OGRE_PATH)\Dependencies\include";"$(OGRE_PATH)\OgreMain\include";"$(OGRE_PATH)\Samples\Common\include";"$(OGRE_PATH)\Dependencies\include\CEGUI";"$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include"" 
    2424                                PreprocessorDefinitions="_WINDOWS,_STLP_USE_DYNAMIC_LIB,OGRE_LIBRARY_IMPORTS,_DEBUG,WIN32,_STLP_DEBUG" 
    2525                                MinimalRebuild="TRUE" 
     
    3434                        <Tool 
    3535                                Name="VCLinkerTool" 
    36                                 AdditionalDependencies="OGREMain_d.LIB" 
     36                                AdditionalDependencies="OGREMain_d.LIB CEGUIBase_d.lib OgreGUIRenderer_d.lib" 
    3737                                OutputFile="$(OGRE_PATH)/Samples/Common/bin/Debug/TestCulling.exe" 
    3838                                LinkIncremental="2" 
    39                                 AdditionalLibraryDirectories="$(OGRE_PATH)\OgreMain\Lib\Debug" 
     39                                AdditionalLibraryDirectories="&quot;$(OGRE_PATH)\Dependencies\Lib\Debug&quot;;&quot;$(OGRE_PATH)\OgreMain\Lib\Debug&quot;;&quot;$(OGRE_PATH)\Samples\Common\CEGUIRenderer\lib&quot;" 
    4040                                GenerateDebugInformation="TRUE" 
    4141                                ProgramDatabaseFile="$(OutDir)/TestCulling.pdb" 
     
    128128                        Filter="h;hpp;hxx;hm;inl;inc;xsd" 
    129129                        UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> 
     130                        <File 
     131                                RelativePath=".\TestCullingApplication.h"> 
     132                        </File> 
    130133                </Filter> 
    131134                <Filter 
     
    133136                        Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" 
    134137                        UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> 
    135                         <File 
    136                                 RelativePath=".\TestCullingApplication.h"> 
    137                         </File> 
    138138                </Filter> 
    139139        </Files> 
  • trunk/VUT/OcclusionCullingSceneManager/TestCulling/TestCullingApplication.cpp

    r16 r18  
    66*/ 
    77 
     8#include <CEGUI/CEGUIImageset.h> 
     9#include <CEGUI/CEGUISystem.h> 
     10#include <CEGUI/CEGUISchemeManager.h> 
     11#include <CEGUI/CEGUIWindowManager.h> 
     12#include <CEGUI/CEGUIWindow.h> 
     13#include <CEGUI/CEGUILogger.h> 
     14#include <CEGUI/elements/CEGUICombobox.h> 
     15#include <CEGUI/elements/CEGUIListbox.h> 
     16#include <CEGUI/elements/CEGUIListboxTextItem.h> 
     17#include <CEGUI/elements/CEGUIPushButton.h> 
     18#include <CEGUI/elements/CEGUIScrollbar.h> 
     19#include <CEGUI/elements/CEGUIStaticImage.h> 
     20 
     21#include "OgreCEGUIRenderer.h" 
     22#include "OgreCEGUIResourceProvider.h" 
     23 
    824#include "Ogre.h" 
    925#include "TestCullingApplication.h" 
     
    1127#define WIN32_LEAN_AND_MEAN 
    1228#include "windows.h" 
    13  
    1429 
    1530void TestCullingApplication::createScene(void) 
     
    2237 
    2338         mSceneMgr->setAmbientLight(ColourValue(0.5, 0.5, 0.5)); 
     39 
     40         // CEGUI setup 
     41     mGUIRenderer = new CEGUI::OgreCEGUIRenderer(mWindow, Ogre::RENDER_QUEUE_OVERLAY, false, 3000, ST_GENERIC); 
     42     mGUISystem = new CEGUI::System(mGUIRenderer); 
     43 
     44         // Mouse 
     45     CEGUI::SchemeManager::getSingleton().loadScheme((CEGUI::utf8*)"TaharezLook.scheme"); 
     46     CEGUI::MouseCursor::getSingleton().setImage("TaharezLook", "MouseArrow"); 
     47         mGUISystem->setDefaultMouseCursor( 
     48                (CEGUI::utf8*)"TaharezLook", (CEGUI::utf8*)"MouseArrow"); 
     49 
     50         CEGUI::MouseCursor::getSingleton().show( ); 
     51      
     52        /* CEGUI::Window* sheet =  
     53            CEGUI::WindowManager::getSingleton().loadWindowLayout( 
     54                (CEGUI::utf8*)"ogregui.layout");  
     55 
     56     mGUISystem->setGUISheet(sheet);*/ 
    2457} 
     58 
     59 
     60/* MouseMotionListener callbacks */ 
     61void MouseQueryListener::mouseMoved (MouseEvent *e) 
     62{ 
     63        // Update CEGUI with the mouse motion 
     64    CEGUI::System::getSingleton().injectMouseMove(e->getRelX() * mGUIRenderer->getWidth(), e->getRelY() * mGUIRenderer->getHeight()); 
     65} 
     66 
     67 
     68void MouseQueryListener::mousePressed(MouseEvent* e) 
     69{ 
     70     // Left mouse button down 
     71     if (e->getButtonID() & InputEvent::BUTTON0_MASK) 
     72     { 
     73                 CEGUI::MouseCursor::getSingleton().hide( ); 
     74                 mLMouseDown = true; 
     75     } // if 
     76     // Right mouse button down 
     77     else if (e->getButtonID() & InputEvent::BUTTON1_MASK) 
     78     { 
     79         CEGUI::MouseCursor::getSingleton().hide( ); 
     80         mRMouseDown = true; 
     81     } // else if 
     82} // mousePressed 
     83 
     84  
     85void MouseQueryListener::mouseReleased(MouseEvent* e) 
     86{ 
     87    // Left mouse button up 
     88    if (e->getButtonID() & InputEvent::BUTTON0_MASK) 
     89    { 
     90                CEGUI::MouseCursor::getSingleton().show( ); 
     91        mLMouseDown = false; 
     92    } // if 
     93    // Right mouse button up 
     94    else if (e->getButtonID() & InputEvent::BUTTON1_MASK) 
     95    { 
     96        CEGUI::MouseCursor::getSingleton().show( ); 
     97        mRMouseDown = false; 
     98    } // else if 
     99} // mouseReleased 
     100 
     101 
     102 // This is when the mouse is clicked, held and dragged. 
     103void MouseQueryListener::mouseDragged (MouseEvent *e) 
     104 { 
     105     // If we are dragging the left mouse button. 
     106     if ( mLMouseDown ) 
     107     { 
     108                  mShipNode->translate(-e->getRelX() * 200, -e->getRelY() * 200, 0.0); 
     109     } // if 
     110 
     111    // If we are dragging the right mouse button. 
     112    else if ( mRMouseDown ) 
     113    { 
     114        mCamera->yaw( -e->getRelX() * mRotateSpeed ); 
     115        mCamera->pitch( -e->getRelY() * mRotateSpeed ); 
     116    } // else if 
     117} // mouseDragged 
    25118 
    26119 
     
    38131    return 0; 
    39132} 
    40  
    41  
  • trunk/VUT/OcclusionCullingSceneManager/TestCulling/TestCullingApplication.h

    r16 r18  
    33        TestCullingApplication.h 
    44*/ 
     5#include "CEGUIForwardRefs.h" 
     6#include "ExampleApplication.h" 
    57 
    6 #include "ExampleApplication.h" 
     8 
     9class MouseQueryListener : public ExampleFrameListener, public MouseListener, public MouseMotionListener 
     10{ 
     11public: 
     12 
     13    MouseQueryListener(RenderWindow* win, Camera* cam, SceneManager *sceneManager, CEGUI::Renderer *renderer, 
     14                                           SceneNode* shipNode) 
     15        : ExampleFrameListener(win, cam, false, true), mGUIRenderer(renderer), mShipNode(shipNode) 
     16    { 
     17                // Setup default variables 
     18        mCurrentObject = NULL; 
     19        mLMouseDown = false; 
     20        mRMouseDown = false; 
     21        mSceneMgr = sceneManager; 
     22 
     23        // Reduce move speed 
     24        mMoveSpeed = 50; 
     25        mRotateSpeed *= 2; 
     26 
     27                // Register this so that we get mouse events. 
     28        mEventProcessor->addMouseListener( this ); 
     29        mEventProcessor->addMouseMotionListener( this ); 
     30    } // MouseQueryListener 
     31 
     32    ~MouseQueryListener( ) 
     33    { 
     34    } 
     35 
     36    bool frameStarted(const FrameEvent &evt) 
     37    { 
     38        return ExampleFrameListener::frameStarted( evt ); 
     39    } 
     40 
     41   /* MouseListener callbacks. */ 
     42   virtual void mouseClicked(MouseEvent* e) { } 
     43   virtual void mouseEntered(MouseEvent* e) { } 
     44   virtual void mouseExited(MouseEvent* e)  { } 
     45 
     46   // This is when the mouse button goes DOWN. 
     47   virtual void mousePressed(MouseEvent* e); 
     48 
     49   // This is when the mouse button is let UP. 
     50   virtual void mouseReleased(MouseEvent* e); 
     51 
     52   /* MouseMotionListener callbacks */ 
     53   virtual void mouseMoved (MouseEvent *e); 
     54    
     55   // This is when the mouse is clicked, held and dragged. 
     56   virtual void mouseDragged (MouseEvent *e); 
     57 
     58protected: 
     59    bool mLMouseDown, mRMouseDown;     // True if the mouse buttons are down 
     60    SceneManager *mSceneMgr;           // A pointer to the scene manager 
     61    SceneNode *mCurrentObject;         // The newly created object 
     62    CEGUI::Renderer *mGUIRenderer;     // cegui renderer 
     63        SceneNode* mShipNode; 
     64}; 
     65 
    766 
    867class TestCullingFrameListener : public ExampleFrameListener 
     
    56115        void createFrameListener(void) 
    57116    { 
    58        mFrameListener= new TestCullingFrameListener(mWindow, mCamera, mShipNode); 
    59        mRoot->addFrameListener(mFrameListener); 
     117                mFrameListener= new MouseQueryListener(mWindow, mCamera, mSceneMgr, mGUIRenderer, mShipNode); 
     118                mFrameListener->showDebugOverlay(true); 
     119                mRoot->addFrameListener(mFrameListener); 
    60120    } 
     121 
     122        CEGUI::OgreCEGUIRenderer *mGUIRenderer; 
     123        CEGUI::System *mGUISystem; 
    61124 
    62125private: 
     
    86149    void chooseSceneManager(void) 
    87150    { 
    88     //    mSceneMgr = mRoot->getSceneManager(ST_GENERIC); 
    89                 mSceneMgr = mRoot->getSceneManager(ST_INTERIOR); 
     151        mSceneMgr = mRoot->getSceneManager(ST_GENERIC); 
     152                //mSceneMgr = mRoot->getSceneManager(ST_INTERIOR); 
    90153    } 
    91154        /* 
  • trunk/VUT/OcclusionCullingSceneManager/scripts/Plugin_OcclusionCullingSceneManager.vcproj

    r17 r18  
    2020                                Name="VCCLCompilerTool" 
    2121                                Optimization="0" 
    22                                 AdditionalIncludeDirectories="$(OGRE_PATH)\Samples\Common\include; ..\include; $(OGRE_PATH)\OgreMain\include" 
     22                                AdditionalIncludeDirectories="&quot;$(OGRE_PATH)\Samples\Common\include&quot;;&quot;$(OGRE_PATH)\Dependencies\include\CEGUI&quot;;&quot;$(OGRE_PATH)\Samples\Common\CEGUIRenderer\include&quot;;&quot;$(OGRE_PATH)\OgreMain\include&quot;;&quot;$(OGRE_PATH)\Dependencies\include&quot;;..\include" 
    2323                                PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PLUGIN_OCCLUSIONCULLINGSCENEMANAGER_EXPORTS" 
    2424                                MinimalRebuild="TRUE" 
     
    3535                                Name="VCLinkerTool" 
    3636                                IgnoreImportLibrary="TRUE" 
    37                                 AdditionalDependencies="OgreMain_d.lib" 
     37                                AdditionalDependencies="OgreMain_d.lib CEGUIBase_d.lib OgreGUIRenderer_d.lib" 
    3838                                OutputFile="$(OutDir)/Plugin_OcclusionCullingSceneManager.dll" 
    3939                                Version="0.99" 
    4040                                LinkIncremental="2" 
    4141                                SuppressStartupBanner="TRUE" 
    42                                 AdditionalLibraryDirectories="&quot;$(OGRE_PATH)\OgreMain\lib\$(ConfigurationName)&quot;;&quot;$(OGRE_PATH)\Dependencies\lib\$(ConfigurationName)&quot;" 
     42                                AdditionalLibraryDirectories="&quot;$(OGRE_PATH)\OgreMain\lib\$(ConfigurationName)&quot;;&quot;$(OGRE_PATH)\Dependencies\lib\$(ConfigurationName)&quot;;&quot;$(OGRE_PATH)\Samples\Common\CEGUIRenderer\lib&quot;" 
    4343                                ModuleDefinitionFile="..\misc\OgreOcclusionCullingSceneManager.def" 
    4444                                GenerateDebugInformation="TRUE" 
  • trunk/VUT/OcclusionCullingSceneManager/src/OgreOcclusionCullingSceneManager.cpp

    r16 r18  
    1515        void OcclusionCullingSceneManager::_renderVisibleObjects(void) 
    1616        { 
     17                //RenderZPass(); 
    1718                SceneManager::_renderVisibleObjects(); 
    18                 //mDistanceQueue.push(mSceneRoot); 
     19        //mDistanceQueue.push(mSceneRoot); 
    1920                //Preprocess(); 
    2021                //printf("registered my plugin!!\n"); 
  • trunk/VUT/OcclusionCullingSceneManager/src/OgreOcclusionCullingSceneManagerDll.cpp

    r16 r18  
    2626#include "OgreOcclusionCullingSceneManager.h" 
    2727#include "OgreRoot.h" 
    28 #include <windows.h> 
     28//#include <windows.h> 
    2929 
    3030namespace Ogre { 
     
    3838                 
    3939                // Register 
    40         Root::getSingleton().setSceneManager(ST_INTERIOR, occlusionPlugin); 
    41                 //Root::getSingleton().setSceneManager(ST_GENERIC, occlusionPlugin); 
    42  
    43                 MessageBox( NULL, "myplugin registered", "this is my plugin", MB_OK | MB_ICONERROR | MB_TASKMODAL); 
     40        Root::getSingleton().setSceneManager(ST_GENERIC, occlusionPlugin); 
     41                 
     42                //MessageBox( NULL, "myplugin registered", "this is my plugin", MB_OK | MB_ICONERROR | MB_TASKMODAL); 
    4443    } 
    4544    extern "C" void dllStopPlugin(void) 
Note: See TracChangeset for help on using the changeset viewer.