1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-05 11:15:34 +00:00

Merge remote-tracking branch 'scrawl/master'

This commit is contained in:
Marc Zinnschlag 2013-07-26 08:06:53 +02:00
commit 3fbbbdc64b
3 changed files with 16 additions and 3 deletions

View file

@ -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;

View file

@ -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;

View file

@ -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;