From 073d9e52903ae9936b9aff72a783e99f6943ec5f Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 21 Oct 2005 01:32:39 +0000 Subject: [PATCH] MovieDecoders shouldn't need TEXTUREMAN. --- .../src/arch/MovieTexture/MovieTexture_FFMpeg.cpp | 11 ++++------- stepmania/src/arch/MovieTexture/MovieTexture_FFMpeg.h | 2 +- .../src/arch/MovieTexture/MovieTexture_Generic.cpp | 2 +- .../src/arch/MovieTexture/MovieTexture_Generic.h | 2 +- .../src/arch/MovieTexture/MovieTexture_Theora.cpp | 7 +++---- 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/stepmania/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp b/stepmania/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp index aa8fe25944..14f7212afd 100644 --- a/stepmania/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp +++ b/stepmania/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp @@ -3,7 +3,6 @@ #include "RageDisplay.h" #include "RageLog.h" -#include "RageTextureManager.h" #include "RageUtil.h" #include "RageFile.h" #include "RageSurface.h" @@ -128,13 +127,11 @@ static int FindCompatibleAVFormat( bool bHighColor ) return -1; } -RageSurface *MovieTexture_FFMpeg::AVCodecCreateCompatibleSurface( int iTextureWidth, int iTextureHeight, int &iAVTexfmt ) +RageSurface *MovieTexture_FFMpeg::AVCodecCreateCompatibleSurface( int iTextureWidth, int iTextureHeight, bool bPreferHighColor, int &iAVTexfmt ) { FixLilEndian(); - bool bPreferHighColor = (TEXTUREMAN->GetPrefs().m_iMovieColorDepth == 32); int iAVTexfmtIndex = FindCompatibleAVFormat( bPreferHighColor ); - if( iAVTexfmtIndex == -1 ) iAVTexfmtIndex = FindCompatibleAVFormat( !bPreferHighColor ); @@ -174,7 +171,7 @@ public: int GetWidth() const { return m_pStream->codec.width; } int GetHeight() const { return m_pStream->codec.height; } - RageSurface *CreateCompatibleSurface( int iTextureWidth, int iTextureHeight ); + RageSurface *CreateCompatibleSurface( int iTextureWidth, int iTextureHeight, bool bPreferHighColor ); float GetTimestamp() const; float GetFrameDuration() const; @@ -579,9 +576,9 @@ void MovieDecoder_FFMpeg::Close() } -RageSurface *MovieDecoder_FFMpeg::CreateCompatibleSurface( int iTextureWidth, int iTextureHeight ) +RageSurface *MovieDecoder_FFMpeg::CreateCompatibleSurface( int iTextureWidth, int iTextureHeight, bool bPreferHighColor ) { - return MovieTexture_FFMpeg::AVCodecCreateCompatibleSurface( iTextureWidth, iTextureHeight, (int&) m_AVTexfmt ); + return MovieTexture_FFMpeg::AVCodecCreateCompatibleSurface( iTextureWidth, iTextureHeight, bPreferHighColor, (int&) m_AVTexfmt ); } MovieTexture_FFMpeg::MovieTexture_FFMpeg( RageTextureID ID ): diff --git a/stepmania/src/arch/MovieTexture/MovieTexture_FFMpeg.h b/stepmania/src/arch/MovieTexture/MovieTexture_FFMpeg.h index 9a2e600096..e3f3184061 100644 --- a/stepmania/src/arch/MovieTexture/MovieTexture_FFMpeg.h +++ b/stepmania/src/arch/MovieTexture/MovieTexture_FFMpeg.h @@ -13,7 +13,7 @@ class MovieTexture_FFMpeg: public MovieTexture_Generic public: MovieTexture_FFMpeg( RageTextureID ID ); - static RageSurface *AVCodecCreateCompatibleSurface( int iTextureWidth, int iTextureHeight, int &iAVTexfmt ); + static RageSurface *AVCodecCreateCompatibleSurface( int iTextureWidth, int iTextureHeight, bool bPreferHighColor, int &iAVTexfmt ); }; #define USE_MOVIE_TEXTURE_FFMPEG diff --git a/stepmania/src/arch/MovieTexture/MovieTexture_Generic.cpp b/stepmania/src/arch/MovieTexture/MovieTexture_Generic.cpp index f2557e3275..6c0f858f73 100644 --- a/stepmania/src/arch/MovieTexture/MovieTexture_Generic.cpp +++ b/stepmania/src/arch/MovieTexture/MovieTexture_Generic.cpp @@ -119,7 +119,7 @@ void MovieTexture_Generic::CreateTexture() m_iTextureHeight = power_of_two( m_iImageHeight ); if( m_pSurface == NULL ) - m_pSurface = m_pDecoder->CreateCompatibleSurface( m_iTextureWidth, m_iTextureHeight ); + m_pSurface = m_pDecoder->CreateCompatibleSurface( m_iTextureWidth, m_iTextureHeight, TEXTUREMAN->GetPrefs().m_iMovieColorDepth == 32 ); PixelFormat pixfmt = DISPLAY->FindPixelFormat( m_pSurface->format->BitsPerPixel, m_pSurface->format->Mask[0], diff --git a/stepmania/src/arch/MovieTexture/MovieTexture_Generic.h b/stepmania/src/arch/MovieTexture/MovieTexture_Generic.h index b9739664d1..ae3728a00d 100644 --- a/stepmania/src/arch/MovieTexture/MovieTexture_Generic.h +++ b/stepmania/src/arch/MovieTexture/MovieTexture_Generic.h @@ -36,7 +36,7 @@ public: * The given size will usually be the next power of two higher than * GetWidth/GetHeight, but on systems with limited texture resolution, * may be smaller. */ - virtual RageSurface *CreateCompatibleSurface( int iTextureWidth, int iTextureHeight ) = 0; + virtual RageSurface *CreateCompatibleSurface( int iTextureWidth, int iTextureHeight, bool bPreferHighColor ) = 0; /* The following functions return information about the current frame, * decoded by the last successful call to GetFrame, and will never be diff --git a/stepmania/src/arch/MovieTexture/MovieTexture_Theora.cpp b/stepmania/src/arch/MovieTexture/MovieTexture_Theora.cpp index 0083d7f282..5c39552e61 100644 --- a/stepmania/src/arch/MovieTexture/MovieTexture_Theora.cpp +++ b/stepmania/src/arch/MovieTexture/MovieTexture_Theora.cpp @@ -4,7 +4,6 @@ #include "RageFile.h" #include "RageLog.h" #include "RageSurface.h" -#include "RageTextureManager.h" #include "RageUtil.h" #include "MovieTexture_FFMpeg.h" /* for AVCodecCreateCompatibleSurface */ @@ -30,7 +29,7 @@ public: void Close(); int GetFrame(); - RageSurface *CreateCompatibleSurface( int iTextureWidth, int iTextureHeight ); + RageSurface *CreateCompatibleSurface( int iTextureWidth, int iTextureHeight, bool bPreferHighColor ); void ConvertToSurface( RageSurface *pSurface ) const; int GetWidth() const { return m_TheoraInfo.frame_width; } @@ -222,9 +221,9 @@ int MovieDecoder_Theora::GetFrame() } } -RageSurface *MovieDecoder_Theora::CreateCompatibleSurface( int iTextureWidth, int iTextureHeight ) +RageSurface *MovieDecoder_Theora::CreateCompatibleSurface( int iTextureWidth, int iTextureHeight, bool bPreferHighColor ) { - return MovieTexture_FFMpeg::AVCodecCreateCompatibleSurface( iTextureWidth, iTextureHeight, (int&) m_OutputPixFmt ); + return MovieTexture_FFMpeg::AVCodecCreateCompatibleSurface( iTextureWidth, iTextureHeight, bPreferHighColor, (int&) m_OutputPixFmt ); } void MovieDecoder_Theora::ConvertToSurface( RageSurface *pSurface ) const