mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-05 09:15:33 +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