- Timestamp:
- Mar 15, 2011, 9:00:05 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/usability/src/modules/designtools/ScreenshotManager.h
r8076 r8077 20 20 { 21 21 22 23 /* Class encapsulates Screenshot functionality and provides a method for making multi grid screenshots. 24 * pRenderWindow: Pointer to the render window. This could be "mWindow" from the ExampleApplication, 25 * the window automatically created obtained when calling 26 * Ogre::Root::getSingletonPtr()->initialise(false) and retrieved by calling 27 * "Ogre::Root::getSingletonPtr()->getAutoCreatedWindow()", or the manually created 28 * window from calling "mRoot->createRenderWindow()". 29 * gridSize: The magnification factor. A 2 will create a 2x2 grid, doubling the size of the 30 screenshot. A 3 will create a 3x3 grid, tripling the size of the screenshot. 31 * fileExtension: The extension of the screenshot file name, hence the type of graphics file to generate. 32 * To generate "MyScreenshot.png" this parameter would contain ".png". 22 /** 23 @brief 24 Class encapsulates Screenshot functionality and provides a method for making multi grid screenshots. 33 25 */ 34 26 class ScreenshotManager : public OrxonoxClass, public Singleton<ScreenshotManager> … … 36 28 friend class Singleton<ScreenshotManager>; 37 29 38 public:39 ScreenshotManager();40 ~ScreenshotManager();30 public: 31 ScreenshotManager(); 32 virtual ~ScreenshotManager(); 41 33 42 /** 43 * @briefCreates a screenshot with the given camera. 44 * @param camera Pointer to the camera "looking at" the scene of interest 45 * @param fileName the filename of the screenshot file. 46 */ 47 void makeScreenshot() const; 34 void makeScreenshot() const; //!< Creates a screenshot with the given camera. 48 35 49 //static void makeScreenshot_s() 50 // { getInstance().makeScreenshot(); } 51 static void makeScreenshot_s(unsigned int size) 52 { getInstance().setGridSize(size); getInstance().makeScreenshot(); } 36 /** 37 @brief Creates a screenshot with a given size. 38 @param size Size is factor by which the current screen size is scaled. 39 */ 40 static void makeScreenshot_s(unsigned int size) 41 { getInstance().setGridSize(size); getInstance().makeScreenshot(); } 53 42 54 void setGridSize(unsigned int size) 55 { 56 this->mGridSize_ = size; 57 uint8_t* data_ = new uint8_t[(this->mWindowWidth_ * this->mGridSize_) * (this->mWindowHeight_ * this->mGridSize_) * 3]; 58 this->mFinalPicturePB_ = Ogre::PixelBox(this->mWindowWidth_ * this->mGridSize_, this->mWindowHeight_ * this->mGridSize_, 1, Ogre::PF_B8G8R8, data_); 59 } 43 void setGridSize(unsigned int size); //!< Set the size of the grid. 60 44 61 protected:62 static std::string getTimestamp();45 protected: 46 static std::string getTimestamp(); 63 47 64 std::string mFileExtension_; 65 unsigned int mGridSize_, mWindowWidth_, mWindowHeight_; 66 bool mDisableOverlays_; 67 //temp texture with current screensize 68 Ogre::TexturePtr mTempTex_; 69 Ogre::RenderTexture* mRT_; 70 Ogre::HardwarePixelBufferSharedPtr mBuffer_; 71 //PixelBox for a large Screenshot, if grid size is > 1 72 Ogre::PixelBox mFinalPicturePB_; 73 uint8_t* data_; 48 std::string mFileExtension_; 49 unsigned int mGridSize_; //!< The magnification factor. A 2 will create a 2x2 grid, doubling the size of the screenshot. A 3 will create a 3x3 grid, tripling the size of the screenshot. 50 unsigned int mWindowWidth_, mWindowHeight_; 51 bool mDisableOverlays_; 52 //! temp texture with current screensize 53 Ogre::TexturePtr mTempTex_; 54 Ogre::RenderTexture* mRT_; 55 Ogre::HardwarePixelBufferSharedPtr mBuffer_; 56 //! PixelBox for a large Screenshot, if grid size is > 1 57 Ogre::PixelBox mFinalPicturePB_; 58 uint8_t* data_; 74 59 75 static ScreenshotManager* singletonPtr_s;60 static ScreenshotManager* singletonPtr_s; 76 61 }; 77 62
Note: See TracChangeset
for help on using the changeset viewer.