diff --git a/src/arch/MovieTexture/MovieTexture_Generic.cpp b/src/arch/MovieTexture/MovieTexture_Generic.cpp index 8bae897cb6..c2c6c518ab 100644 --- a/src/arch/MovieTexture/MovieTexture_Generic.cpp +++ b/src/arch/MovieTexture/MovieTexture_Generic.cpp @@ -36,7 +36,7 @@ MovieTexture_Generic::MovieTexture_Generic(RageTextureID ID, std::unique_ptr(); } RString MovieTexture_Generic::Init() @@ -81,8 +81,7 @@ MovieTexture_Generic::~MovieTexture_Generic() } /* sprite_ may reference the texture; delete it before DestroyTexture. */ - delete sprite_; - + sprite_.reset(); DestroyTexture(); } @@ -103,9 +102,6 @@ void MovieTexture_Generic::DestroyTexture() texture_handle_ = 0; } - delete render_target_; - render_target_ = nullptr; - delete intermediate_texture_; intermediate_texture_ = nullptr; } @@ -259,7 +255,7 @@ void MovieTexture_Generic::CreateTexture() if (fmt != PixelFormatYCbCr_Invalid) { - RageUtil::SafeDelete(intermediate_texture_); + intermediate_texture_.reset(); sprite_->UnloadTexture(); /* Create the render target. This will receive the final, converted texture. */ @@ -269,13 +265,13 @@ void MovieTexture_Generic::CreateTexture() RageTextureID TargetID(GetID()); TargetID.filename += " target"; - render_target_ = new RageTextureRenderTarget(TargetID, param); + render_target_ = std::make_unique(TargetID, param); /* Create the intermediate texture. This receives the YUV image. */ RageTextureID IntermedID(GetID()); IntermedID.filename += " intermediate"; - intermediate_texture_ = new RageMovieTexture_Generic_Intermediate(IntermedID, + intermediate_texture_ = std::make_unique(IntermedID, decoder_->GetWidth(), decoder_->GetHeight(), surface_->w, surface_->h, power_of_two(surface_->w), power_of_two(surface_->h), @@ -289,7 +285,7 @@ void MovieTexture_Generic::CreateTexture() * when it unloads the texture. Normally we'd make a "copy", but we can't access * RageTextureManager from here. Just increment the refcount. */ ++intermediate_texture_->m_iRefCount; - sprite_->SetTexture(intermediate_texture_); + sprite_->SetTexture(intermediate_texture_.get()); sprite_->SetEffectMode(GetEffectMode(fmt)); return; diff --git a/src/arch/MovieTexture/MovieTexture_Generic.h b/src/arch/MovieTexture/MovieTexture_Generic.h index 14343d5156..77f13b54eb 100644 --- a/src/arch/MovieTexture/MovieTexture_Generic.h +++ b/src/arch/MovieTexture/MovieTexture_Generic.h @@ -120,13 +120,12 @@ private: bool failure_ = false; uintptr_t texture_handle_; - RageTextureRenderTarget *render_target_; - RageTexture * intermediate_texture_; - Sprite *sprite_; + std::unique_ptr render_target_; + std::unique_ptr intermediate_texture_; + std::unique_ptr sprite_; - RageSurface *surface_; - - RageTextureLock *texture_lock_; + RageSurface* surface_; + RageTextureLock* texture_lock_; /* The time the movie is actually at: */ float clock_;