mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 01:26:39 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			98 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef OENGINE_OGRE_RENDERER_H
 | 
						|
#define OENGINE_OGRE_RENDERER_H
 | 
						|
 | 
						|
/*
 | 
						|
  Ogre renderer class
 | 
						|
 */
 | 
						|
 | 
						|
#include <string>
 | 
						|
 | 
						|
namespace Ogre
 | 
						|
{
 | 
						|
    class Root;
 | 
						|
    class RenderWindow;
 | 
						|
    class SceneManager;
 | 
						|
    class Camera;
 | 
						|
    class Viewport;
 | 
						|
}
 | 
						|
 | 
						|
namespace OEngine {
 | 
						|
namespace Render
 | 
						|
{
 | 
						|
  class Fader;
 | 
						|
  class OgreRenderer
 | 
						|
  {
 | 
						|
    Ogre::Root *mRoot;
 | 
						|
    Ogre::RenderWindow *mWindow;
 | 
						|
    Ogre::SceneManager *mScene;
 | 
						|
    Ogre::Camera *mCamera;
 | 
						|
    Ogre::Viewport *mView;
 | 
						|
    Fader* mFader;
 | 
						|
    bool logging;
 | 
						|
 | 
						|
  public:
 | 
						|
    OgreRenderer()
 | 
						|
      : mRoot(NULL), mWindow(NULL), mScene(NULL), mFader(NULL) {}
 | 
						|
    ~OgreRenderer() { cleanup(); }
 | 
						|
 | 
						|
    /** Configure the renderer. This will load configuration files and
 | 
						|
        set up the Root and logging classes. */
 | 
						|
    bool configure(bool showConfig,     // Show config dialog box?
 | 
						|
                   const std::string &cfgPath, // Path to directory where to store config files
 | 
						|
                   const std::string &logPath, // Path to directory where to store log files
 | 
						|
                   const std::string &pluginCfg, // plugin.cfg file
 | 
						|
                   bool _logging);      // Enable or disable logging
 | 
						|
 | 
						|
    bool configure(bool showConfig,     // Show config dialog box?
 | 
						|
                   const std::string &cfgPath, // Path to directory where to store config files
 | 
						|
                   const std::string &pluginCfg, // plugin.cfg file
 | 
						|
                   bool _logging);      // Enable or disable logging
 | 
						|
 | 
						|
    /** Configure the renderer. This will load configuration files and
 | 
						|
        set up the Root and logging classes. */
 | 
						|
    bool configure(bool showConfig,     // Show config dialog box?
 | 
						|
                   const std::string &pluginCfg, // plugin.cfg file
 | 
						|
                   bool _logging);      // Enable or disable logging
 | 
						|
 | 
						|
    /// Create a window with the given title
 | 
						|
    void createWindow(const std::string &title);
 | 
						|
 | 
						|
    /// Set up the scene manager, camera and viewport
 | 
						|
    void createScene(const std::string camName="Camera",// Camera name
 | 
						|
                     float fov=55,                      // Field of view angle
 | 
						|
                     float nearClip=5                   // Near clip distance
 | 
						|
                     );
 | 
						|
 | 
						|
    /// Kill the renderer.
 | 
						|
    void cleanup();
 | 
						|
 | 
						|
    /// Start the main rendering loop
 | 
						|
    void start();
 | 
						|
    
 | 
						|
    void update(float dt);
 | 
						|
 | 
						|
    /// Write a screenshot to file
 | 
						|
    void screenshot(const std::string &file);
 | 
						|
 | 
						|
    float getFPS();
 | 
						|
 | 
						|
    /// Get the Root
 | 
						|
    Ogre::Root *getRoot() { return mRoot; }
 | 
						|
 | 
						|
    /// Get the rendering window
 | 
						|
    Ogre::RenderWindow *getWindow() { return mWindow; }
 | 
						|
 | 
						|
    /// Get the scene manager
 | 
						|
    Ogre::SceneManager *getScene() { return mScene; }
 | 
						|
    
 | 
						|
    /// Get the screen colour fader
 | 
						|
    Fader *getFader() { return mFader; }
 | 
						|
 | 
						|
    /// Camera
 | 
						|
    Ogre::Camera *getCamera() { return mCamera; }
 | 
						|
 | 
						|
    /// Viewport
 | 
						|
    Ogre::Viewport *getViewport() { return mView; }
 | 
						|
  };
 | 
						|
}}
 | 
						|
#endif
 |