mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-30 02:56:44 +00:00 
			
		
		
		
	Merge remote-tracking branch 'scrawl/master'
This commit is contained in:
		
						commit
						3fbbbdc64b
					
				
					 3 changed files with 16 additions and 3 deletions
				
			
		|  | @ -170,7 +170,7 @@ RenderingManager::RenderingManager(OEngine::Render::OgreRenderer& _rend, const b | ||||||
| 
 | 
 | ||||||
|     mOcclusionQuery = new OcclusionQuery(&mRendering, mSkyManager->getSunNode()); |     mOcclusionQuery = new OcclusionQuery(&mRendering, mSkyManager->getSunNode()); | ||||||
| 
 | 
 | ||||||
|     mVideoPlayer = new VideoPlayer(mRendering.getScene ()); |     mVideoPlayer = new VideoPlayer(mRendering.getScene (), mRendering.getWindow()); | ||||||
|     mVideoPlayer->setResolution (Settings::Manager::getInt ("resolution x", "Video"), Settings::Manager::getInt ("resolution y", "Video")); |     mVideoPlayer->setResolution (Settings::Manager::getInt ("resolution x", "Video"), Settings::Manager::getInt ("resolution y", "Video")); | ||||||
| 
 | 
 | ||||||
|     mSun = 0; |     mSun = 0; | ||||||
|  |  | ||||||
|  | @ -8,6 +8,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <OgreRoot.h> | #include <OgreRoot.h> | ||||||
| #include <OgreHardwarePixelBuffer.h> | #include <OgreHardwarePixelBuffer.h> | ||||||
|  | #include <OgreRenderWindow.h> | ||||||
| 
 | 
 | ||||||
| #include <boost/thread.hpp> | #include <boost/thread.hpp> | ||||||
| 
 | 
 | ||||||
|  | @ -16,6 +17,7 @@ | ||||||
| #include "../mwbase/soundmanager.hpp" | #include "../mwbase/soundmanager.hpp" | ||||||
| #include "../mwsound/sound_decoder.hpp" | #include "../mwsound/sound_decoder.hpp" | ||||||
| #include "../mwsound/sound.hpp" | #include "../mwsound/sound.hpp" | ||||||
|  | #include "../mwbase/inputmanager.hpp" | ||||||
| 
 | 
 | ||||||
| #include "renderconst.hpp" | #include "renderconst.hpp" | ||||||
| 
 | 
 | ||||||
|  | @ -1032,13 +1034,14 @@ public: | ||||||
| #endif // defined OPENMW_USE_FFMPEG
 | #endif // defined OPENMW_USE_FFMPEG
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| VideoPlayer::VideoPlayer(Ogre::SceneManager* sceneMgr) | VideoPlayer::VideoPlayer(Ogre::SceneManager* sceneMgr, Ogre::RenderWindow* window) | ||||||
|     : mState(NULL) |     : mState(NULL) | ||||||
|     , mSceneMgr(sceneMgr) |     , mSceneMgr(sceneMgr) | ||||||
|     , mVideoMaterial(NULL) |     , mVideoMaterial(NULL) | ||||||
|     , mRectangle(NULL) |     , mRectangle(NULL) | ||||||
|     , mNode(NULL) |     , mNode(NULL) | ||||||
|     , mAllowSkipping(false) |     , mAllowSkipping(false) | ||||||
|  |     , mWindow(window) | ||||||
| { | { | ||||||
|     mVideoMaterial = Ogre::MaterialManager::getSingleton().getByName("VideoMaterial", "General"); |     mVideoMaterial = Ogre::MaterialManager::getSingleton().getByName("VideoMaterial", "General"); | ||||||
|     if (mVideoMaterial.isNull ()) |     if (mVideoMaterial.isNull ()) | ||||||
|  | @ -1129,6 +1132,14 @@ void VideoPlayer::playVideo(const std::string &resourceName, bool allowSkipping) | ||||||
|     try { |     try { | ||||||
|         mState = new VideoState; |         mState = new VideoState; | ||||||
|         mState->init(resourceName); |         mState->init(resourceName); | ||||||
|  | 
 | ||||||
|  |         while (isPlaying()) | ||||||
|  |         { | ||||||
|  |             MWBase::Environment::get().getInputManager()->update(0, false); | ||||||
|  |             update(); | ||||||
|  |             mWindow->update(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
|     catch(std::exception& e) { |     catch(std::exception& e) { | ||||||
|         std::cerr<< "Failed to play video: "<<e.what() <<std::endl; |         std::cerr<< "Failed to play video: "<<e.what() <<std::endl; | ||||||
|  |  | ||||||
|  | @ -8,6 +8,7 @@ namespace Ogre | ||||||
|     class SceneManager; |     class SceneManager; | ||||||
|     class SceneNode; |     class SceneNode; | ||||||
|     class Rectangle2D; |     class Rectangle2D; | ||||||
|  |     class RenderWindow; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| namespace MWRender | namespace MWRender | ||||||
|  | @ -17,7 +18,7 @@ namespace MWRender | ||||||
|     class VideoPlayer |     class VideoPlayer | ||||||
|     { |     { | ||||||
|     public: |     public: | ||||||
|         VideoPlayer(Ogre::SceneManager* sceneMgr); |         VideoPlayer(Ogre::SceneManager* sceneMgr, Ogre::RenderWindow* window); | ||||||
|         ~VideoPlayer(); |         ~VideoPlayer(); | ||||||
| 
 | 
 | ||||||
|         void playVideo (const std::string& resourceName, bool allowSkipping); |         void playVideo (const std::string& resourceName, bool allowSkipping); | ||||||
|  | @ -43,6 +44,7 @@ namespace MWRender | ||||||
|         Ogre::Rectangle2D* mBackgroundRectangle; |         Ogre::Rectangle2D* mBackgroundRectangle; | ||||||
|         Ogre::SceneNode* mNode; |         Ogre::SceneNode* mNode; | ||||||
|         Ogre::SceneNode* mBackgroundNode; |         Ogre::SceneNode* mBackgroundNode; | ||||||
|  |         Ogre::RenderWindow* mWindow; | ||||||
| 
 | 
 | ||||||
|         int mWidth; |         int mWidth; | ||||||
|         int mHeight; |         int mHeight; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue