Convert the MovieDecoder used by the MovieTexture to a unique_ptr.
This commit is contained in:
@@ -653,7 +653,7 @@ RageSurface* MovieDecoder_FFMpeg::CreateCompatibleSurface(int iTextureWidth, int
|
|||||||
}
|
}
|
||||||
|
|
||||||
MovieTexture_FFMpeg::MovieTexture_FFMpeg(RageTextureID ID) :
|
MovieTexture_FFMpeg::MovieTexture_FFMpeg(RageTextureID ID) :
|
||||||
MovieTexture_Generic(ID, new MovieDecoder_FFMpeg)
|
MovieTexture_Generic(ID, std::make_unique<MovieDecoder_FFMpeg>())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,12 +21,12 @@
|
|||||||
|
|
||||||
static Preference<bool> g_bMovieTextureDirectUpdates("MovieTextureDirectUpdates", true);
|
static Preference<bool> g_bMovieTextureDirectUpdates("MovieTextureDirectUpdates", true);
|
||||||
|
|
||||||
MovieTexture_Generic::MovieTexture_Generic(RageTextureID ID, MovieDecoder* pDecoder) :
|
MovieTexture_Generic::MovieTexture_Generic(RageTextureID ID, std::unique_ptr<MovieDecoder> pDecoder) :
|
||||||
RageMovieTexture(ID)
|
RageMovieTexture(ID)
|
||||||
{
|
{
|
||||||
LOG->Trace("MovieTexture_Generic::MovieTexture_Generic(%s)", ID.filename.c_str());
|
LOG->Trace("MovieTexture_Generic::MovieTexture_Generic(%s)", ID.filename.c_str());
|
||||||
|
|
||||||
decoder_ = pDecoder;
|
decoder_ = std::move(pDecoder);
|
||||||
|
|
||||||
texture_handle_ = 0;
|
texture_handle_ = 0;
|
||||||
render_target_ = nullptr;
|
render_target_ = nullptr;
|
||||||
@@ -82,7 +82,6 @@ MovieTexture_Generic::~MovieTexture_Generic()
|
|||||||
|
|
||||||
/* sprite_ may reference the texture; delete it before DestroyTexture. */
|
/* sprite_ may reference the texture; delete it before DestroyTexture. */
|
||||||
delete sprite_;
|
delete sprite_;
|
||||||
delete decoder_;
|
|
||||||
|
|
||||||
DestroyTexture();
|
DestroyTexture();
|
||||||
|
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public:
|
|||||||
class MovieTexture_Generic: public RageMovieTexture
|
class MovieTexture_Generic: public RageMovieTexture
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MovieTexture_Generic( RageTextureID ID, MovieDecoder *pDecoder );
|
MovieTexture_Generic( RageTextureID ID, std::unique_ptr<MovieDecoder> pDecoder );
|
||||||
virtual ~MovieTexture_Generic();
|
virtual ~MovieTexture_Generic();
|
||||||
RString Init();
|
RString Init();
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ public:
|
|||||||
static EffectMode GetEffectMode( MovieDecoderPixelFormatYCbCr fmt );
|
static EffectMode GetEffectMode( MovieDecoderPixelFormatYCbCr fmt );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MovieDecoder* decoder_;
|
std::unique_ptr<MovieDecoder> decoder_;
|
||||||
|
|
||||||
std::unique_ptr<std::thread> decoding_thread_;
|
std::unique_ptr<std::thread> decoding_thread_;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user