mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-05 03:45:35 +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());
|
||||
|
||||
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"));
|
||||
|
||||
mSun = 0;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include <OgreRoot.h>
|
||||
#include <OgreHardwarePixelBuffer.h>
|
||||
#include <OgreRenderWindow.h>
|
||||
|
||||
#include <boost/thread.hpp>
|
||||
|
||||
|
@ -16,6 +17,7 @@
|
|||
#include "../mwbase/soundmanager.hpp"
|
||||
#include "../mwsound/sound_decoder.hpp"
|
||||
#include "../mwsound/sound.hpp"
|
||||
#include "../mwbase/inputmanager.hpp"
|
||||
|
||||
#include "renderconst.hpp"
|
||||
|
||||
|
@ -1032,13 +1034,14 @@ public:
|
|||
#endif // defined OPENMW_USE_FFMPEG
|
||||
|
||||
|
||||
VideoPlayer::VideoPlayer(Ogre::SceneManager* sceneMgr)
|
||||
VideoPlayer::VideoPlayer(Ogre::SceneManager* sceneMgr, Ogre::RenderWindow* window)
|
||||
: mState(NULL)
|
||||
, mSceneMgr(sceneMgr)
|
||||
, mVideoMaterial(NULL)
|
||||
, mRectangle(NULL)
|
||||
, mNode(NULL)
|
||||
, mAllowSkipping(false)
|
||||
, mWindow(window)
|
||||
{
|
||||
mVideoMaterial = Ogre::MaterialManager::getSingleton().getByName("VideoMaterial", "General");
|
||||
if (mVideoMaterial.isNull ())
|
||||
|
@ -1129,6 +1132,14 @@ void VideoPlayer::playVideo(const std::string &resourceName, bool allowSkipping)
|
|||
try {
|
||||
mState = new VideoState;
|
||||
mState->init(resourceName);
|
||||
|
||||
while (isPlaying())
|
||||
{
|
||||
MWBase::Environment::get().getInputManager()->update(0, false);
|
||||
update();
|
||||
mWindow->update();
|
||||
}
|
||||
|
||||
}
|
||||
catch(std::exception& e) {
|
||||
std::cerr<< "Failed to play video: "<<e.what() <<std::endl;
|
||||
|
|
|
@ -8,6 +8,7 @@ namespace Ogre
|
|||
class SceneManager;
|
||||
class SceneNode;
|
||||
class Rectangle2D;
|
||||
class RenderWindow;
|
||||
}
|
||||
|
||||
namespace MWRender
|
||||
|
@ -17,7 +18,7 @@ namespace MWRender
|
|||
class VideoPlayer
|
||||
{
|
||||
public:
|
||||
VideoPlayer(Ogre::SceneManager* sceneMgr);
|
||||
VideoPlayer(Ogre::SceneManager* sceneMgr, Ogre::RenderWindow* window);
|
||||
~VideoPlayer();
|
||||
|
||||
void playVideo (const std::string& resourceName, bool allowSkipping);
|
||||
|
@ -43,6 +44,7 @@ namespace MWRender
|
|||
Ogre::Rectangle2D* mBackgroundRectangle;
|
||||
Ogre::SceneNode* mNode;
|
||||
Ogre::SceneNode* mBackgroundNode;
|
||||
Ogre::RenderWindow* mWindow;
|
||||
|
||||
int mWidth;
|
||||
int mHeight;
|
||||
|
|
Loading…
Reference in a new issue