From 52cba2298fda4ddb4a921c7715062816425e7b47 Mon Sep 17 00:00:00 2001 From: xezon <4720891+xezon@users.noreply.github.com> Date: Sat, 2 Aug 2025 19:59:48 +0200 Subject: [PATCH 1/2] unify(video): Merge Video code (#1410) --- Core/GameEngineDevice/CMakeLists.txt | 2 +- Generals/Code/GameEngineDevice/CMakeLists.txt | 2 +- .../W3DDevice/GameClient/W3DDisplay.cpp | 2 +- .../Source/W3DDevice/GameClient/W3DShroud.cpp | 3 +- .../W3DDevice/GameClient/W3DVideoBuffer.cpp | 5 +- .../Source/WWVegas/WW3D2/textureloader.cpp | 59 ++++++++++++------- .../Source/WWVegas/WW3D2/textureloader.h | 2 +- .../Source/WWVegas/WW3D2/texturethumbnail.cpp | 3 +- .../Code/GameEngineDevice/CMakeLists.txt | 2 +- .../VideoDevice/Bink/BinkVideoPlayer.cpp | 2 +- .../W3DDevice/GameClient/W3DDisplay.cpp | 2 +- .../W3DDevice/GameClient/W3DVideoBuffer.cpp | 2 +- 12 files changed, 52 insertions(+), 34 deletions(-) diff --git a/Core/GameEngineDevice/CMakeLists.txt b/Core/GameEngineDevice/CMakeLists.txt index 9996b8a8eac..da9169a8464 100644 --- a/Core/GameEngineDevice/CMakeLists.txt +++ b/Core/GameEngineDevice/CMakeLists.txt @@ -70,7 +70,7 @@ set(GAMEENGINEDEVICE_SRC # Include/W3DDevice/GameClient/W3DTerrainTracks.h # Include/W3DDevice/GameClient/W3DTerrainVisual.h # Include/W3DDevice/GameClient/W3DTreeBuffer.h -# Include/W3DDevice/GameClient/W3DVideobuffer.h +# Include/W3DDevice/GameClient/W3DVideoBuffer.h # Include/W3DDevice/GameClient/W3DView.h # Include/W3DDevice/GameClient/W3DVolumetricShadow.h # Include/W3DDevice/GameClient/W3DWater.h diff --git a/Generals/Code/GameEngineDevice/CMakeLists.txt b/Generals/Code/GameEngineDevice/CMakeLists.txt index bf2aef874bd..8cb339812c8 100644 --- a/Generals/Code/GameEngineDevice/CMakeLists.txt +++ b/Generals/Code/GameEngineDevice/CMakeLists.txt @@ -59,7 +59,7 @@ set(GAMEENGINEDEVICE_SRC Include/W3DDevice/GameClient/W3DTerrainTracks.h Include/W3DDevice/GameClient/W3DTerrainVisual.h Include/W3DDevice/GameClient/W3DTreeBuffer.h - Include/W3DDevice/GameClient/W3DVideobuffer.h + Include/W3DDevice/GameClient/W3DVideoBuffer.h Include/W3DDevice/GameClient/W3DView.h Include/W3DDevice/GameClient/W3DVolumetricShadow.h Include/W3DDevice/GameClient/W3DWater.h diff --git a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp index a03ed940b88..cf477abe061 100644 --- a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp +++ b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp @@ -74,7 +74,7 @@ static void drawFramerateBar(void); #include "W3DDevice/GameClient/W3DScene.h" #include "W3DDevice/GameClient/W3DTerrainTracks.h" #include "W3DDevice/GameClient/W3DWater.h" -#include "W3DDevice/GameClient/W3DVideobuffer.h" +#include "W3DDevice/GameClient/W3DVideoBuffer.h" #include "W3DDevice/GameClient/W3DShaderManager.h" #include "W3DDevice/GameClient/W3DDebugDisplay.h" #include "W3DDevice/GameClient/W3DProjectedShadow.h" diff --git a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp index be441cbf743..b70abf8fe0e 100644 --- a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp +++ b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp @@ -128,8 +128,9 @@ void W3DShroud::init(WorldHeightMap *pMap, Real worldCellSizeX, Real worldCellSi dstTextureWidth=m_numMaxVisibleCellsX=REAL_TO_INT_FLOOR((Real)(pMap->getDrawWidth()-1)*MAP_XY_FACTOR/m_cellWidth)+1; dstTextureHeight=m_numMaxVisibleCellsY=REAL_TO_INT_FLOOR((Real)(pMap->getDrawHeight()-1)*MAP_XY_FACTOR/m_cellHeight)+1; dstTextureWidth += 2; //enlarge by 2 pixels so we can have a border color all the way around. + unsigned int depth = 1; dstTextureHeight += 2; //enlarge by 2 pixels so we can have border color all the way around. - TextureLoader::Validate_Texture_Size((unsigned int &)dstTextureWidth,(unsigned int &)dstTextureHeight); + TextureLoader::Validate_Texture_Size((unsigned int &)dstTextureWidth,(unsigned int &)dstTextureHeight, depth); } UnsignedInt srcWidth,srcHeight; diff --git a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp index 4f7701d094c..0d17ff3b2d8 100644 --- a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp +++ b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp @@ -48,7 +48,7 @@ #include "Common/GameMemory.h" #include "WW3D2/texture.h" #include "WW3D2/textureloader.h" -#include "W3DDevice/GameClient/W3DVideobuffer.h" +#include "W3DDevice/GameClient/W3DVideoBuffer.h" //---------------------------------------------------------------------------- // Externals @@ -122,7 +122,8 @@ Bool W3DVideoBuffer::allocate( UnsignedInt width, UnsignedInt height ) m_height = height; m_textureWidth = width;; m_textureHeight = height;; - TextureLoader::Validate_Texture_Size( m_textureWidth, m_textureHeight); + unsigned int temp_depth=1; + TextureLoader::Validate_Texture_Size( m_textureWidth, m_textureHeight, temp_depth); WW3DFormat w3dFormat = TypeToW3DFormat( m_format ); diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.cpp b/Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.cpp index 341d8e4c450..c9554b12769 100644 --- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.cpp +++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.cpp @@ -125,51 +125,66 @@ void TextureLoader::Deinit() // // ---------------------------------------------------------------------------- -void TextureLoader::Validate_Texture_Size(unsigned& width, unsigned& height) +void TextureLoader::Validate_Texture_Size +( + unsigned& width, + unsigned& height, + unsigned& depth +) { const D3DCAPS8& dx8caps=DX8Wrapper::Get_Current_Caps()->Get_DX8_Caps(); unsigned poweroftwowidth = 1; - while (poweroftwowidth < width) { + while (poweroftwowidth < width) + { poweroftwowidth <<= 1; } unsigned poweroftwoheight = 1; - while (poweroftwoheight < height) { + while (poweroftwoheight < height) + { poweroftwoheight <<= 1; } -// unsigned size = MAX (width, height); -// unsigned poweroftwosize = 1; -// while (poweroftwosize < size) { -// poweroftwosize <<= 1; -// } + unsigned poweroftwodepth = 1; + while (poweroftwodepth< depth) + { + poweroftwodepth <<= 1; + } - if (poweroftwowidth>dx8caps.MaxTextureWidth) { + if (poweroftwowidth>dx8caps.MaxTextureWidth) + { poweroftwowidth=dx8caps.MaxTextureWidth; } - if (poweroftwoheight>dx8caps.MaxTextureHeight) { + if (poweroftwoheight>dx8caps.MaxTextureHeight) + { poweroftwoheight=dx8caps.MaxTextureHeight; } + if (poweroftwodepth>dx8caps.MaxVolumeExtent) + { + poweroftwodepth=dx8caps.MaxVolumeExtent; + } - if (poweroftwowidth>poweroftwoheight) { - while (poweroftwowidth/poweroftwoheight>8) { + if (poweroftwowidth>poweroftwoheight) + { + while (poweroftwowidth/poweroftwoheight>8) + { poweroftwoheight*=2; } } - else { - while (poweroftwoheight/poweroftwowidth>8) { + else + { + while (poweroftwoheight/poweroftwowidth>8) + { poweroftwowidth*=2; } } -// width = height = poweroftwosize; width=poweroftwowidth; height=poweroftwoheight; + depth=poweroftwodepth; } - - IDirect3DTexture8* TextureLoader::Load_Thumbnail(const StringClass& filename,WW3DFormat texture_format) { ThumbnailClass* thumb=ThumbnailClass::Peek_Instance(filename); @@ -1031,10 +1046,10 @@ void TextureLoadTaskClass::Begin_Texture_Load() DDSFileClass dds_file(Texture->Get_Full_Path(),Get_Reduction()); if (dds_file.Is_Available()) { // Destination size will be the next power of two square from the larger width and height... - unsigned width, height; + unsigned width, height, depth; width=dds_file.Get_Width(0); height=dds_file.Get_Height(0); - TextureLoader::Validate_Texture_Size(width,height); + TextureLoader::Validate_Texture_Size(width,height,depth); // If the size doesn't match, try and see if texture reduction would help... (mainly for // cases where loaded texture is larger than hardware limit) @@ -1042,7 +1057,7 @@ void TextureLoadTaskClass::Begin_Texture_Load() for (unsigned i=1;i>ReductionFactor; unsigned ow=width; unsigned oh=height; - TextureLoader::Validate_Texture_Size(width,height); + TextureLoader::Validate_Texture_Size(width,height,depth); if (width!=ow || height!=oh) { WWDEBUG_SAY(("Invalid texture size, scaling required. Texture: %s, size: %d x %d -> %d x %d",Texture->Get_Full_Path().str(),ow,oh,width,height)); } diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.h b/Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.h index 7fd9091edb1..5f02b36bfdd 100644 --- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.h +++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.h @@ -41,7 +41,7 @@ class TextureLoader static void Deinit(); // Modify given texture size to nearest valid size on current hardware. - static void Validate_Texture_Size(unsigned& width, unsigned& height); + static void Validate_Texture_Size(unsigned& width, unsigned& height, unsigned& depth); // Adds a loading task to the system. The task if processed in a separate // thread as soon as possible. The task will appear in finished tasks list diff --git a/Generals/Code/Libraries/Source/WWVegas/WW3D2/texturethumbnail.cpp b/Generals/Code/Libraries/Source/WWVegas/WW3D2/texturethumbnail.cpp index 4a9ebd2f2a0..c617becde4b 100644 --- a/Generals/Code/Libraries/Source/WWVegas/WW3D2/texturethumbnail.cpp +++ b/Generals/Code/Libraries/Source/WWVegas/WW3D2/texturethumbnail.cpp @@ -92,7 +92,8 @@ ThumbnailClass::ThumbnailClass(const StringClass& filename) // Destination size will be the next power of two square from the larger width and height... Width=targa.Header.Width>>reduction_factor; Height=targa.Header.Height>>reduction_factor; - TextureLoader::Validate_Texture_Size(Width,Height); + unsigned depth; + TextureLoader::Validate_Texture_Size(Width,Height,depth); unsigned src_width=targa.Header.Width; unsigned src_height=targa.Header.Height; diff --git a/GeneralsMD/Code/GameEngineDevice/CMakeLists.txt b/GeneralsMD/Code/GameEngineDevice/CMakeLists.txt index b352d5f4200..c9dc9f0c15d 100644 --- a/GeneralsMD/Code/GameEngineDevice/CMakeLists.txt +++ b/GeneralsMD/Code/GameEngineDevice/CMakeLists.txt @@ -70,7 +70,7 @@ set(GAMEENGINEDEVICE_SRC Include/W3DDevice/GameClient/W3DTerrainTracks.h Include/W3DDevice/GameClient/W3DTerrainVisual.h Include/W3DDevice/GameClient/W3DTreeBuffer.h - Include/W3DDevice/GameClient/W3DVideobuffer.h + Include/W3DDevice/GameClient/W3DVideoBuffer.h Include/W3DDevice/GameClient/W3DView.h Include/W3DDevice/GameClient/W3DVolumetricShadow.h Include/W3DDevice/GameClient/W3DWater.h diff --git a/GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp b/GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp index 9cd7f34dee7..819d1e1dbe4 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp @@ -225,7 +225,7 @@ VideoStreamInterface* BinkVideoPlayer::open( AsciiString movieTitle ) const Video* pVideo = getVideo(movieTitle); if (pVideo) { DEBUG_LOG(("BinkVideoPlayer::createStream() - About to open bink file")); - + if (TheGlobalData->m_modDir.isNotEmpty()) { char filePath[ _MAX_PATH ]; diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp index 679a9e29d0e..8ea6b951046 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp @@ -75,7 +75,7 @@ static void drawFramerateBar(void); #include "W3DDevice/GameClient/W3DScene.h" #include "W3DDevice/GameClient/W3DTerrainTracks.h" #include "W3DDevice/GameClient/W3DWater.h" -#include "W3DDevice/GameClient/W3DVideobuffer.h" +#include "W3DDevice/GameClient/W3DVideoBuffer.h" #include "W3DDevice/GameClient/W3DShaderManager.h" #include "W3DDevice/GameClient/W3DDebugDisplay.h" #include "W3DDevice/GameClient/W3DProjectedShadow.h" diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp index 8ff77192ef2..e71dbf9ef75 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp @@ -48,7 +48,7 @@ #include "Common/GameMemory.h" #include "WW3D2/texture.h" #include "WW3D2/textureloader.h" -#include "W3DDevice/GameClient/W3DVideobuffer.h" +#include "W3DDevice/GameClient/W3DVideoBuffer.h" //---------------------------------------------------------------------------- // Externals From da441912fbe6daa6ce9323ed7a063524b3ea4038 Mon Sep 17 00:00:00 2001 From: xezon <4720891+xezon@users.noreply.github.com> Date: Sat, 2 Aug 2025 23:42:18 +0200 Subject: [PATCH 2/2] unify(video): Move Video files to Core (#1410) --- Core/GameEngine/CMakeLists.txt | 12 +- .../Include/GameClient/VideoPlayer.h | 0 .../Include/GameClient/WindowVideoManager.h | 0 .../GameEngine/Source/Common/INI/INIVideo.cpp | 0 .../GameClient/GUI/WindowVideoManager.cpp | 0 .../Source/GameClient/VideoPlayer.cpp | 0 .../Source/GameClient/VideoStream.cpp | 0 Core/GameEngineDevice/CMakeLists.txt | 41 +- .../VideoDevice/Bink/BinkVideoPlayer.h | 0 .../Include/VideoDevice/FFmpeg/FFmpegFile.h | 0 .../VideoDevice/FFmpeg/FFmpegVideoPlayer.h | 0 .../W3DDevice/GameClient/W3DVideoBuffer.h | 0 .../VideoDevice/Bink/BinkVideoPlayer.cpp | 0 .../Source/VideoDevice/FFmpeg/FFmpegFile.cpp | 0 .../VideoDevice/FFmpeg/FFmpegVideoPlayer.cpp | 0 .../W3DDevice/GameClient/W3DVideoBuffer.cpp | 0 Generals/Code/GameEngine/CMakeLists.txt | 10 +- .../Include/GameClient/VideoPlayer.h | 317 ----------- .../Include/GameClient/WindowVideoManager.h | 187 ------- .../GameEngine/Source/Common/INI/INIVideo.cpp | 61 --- .../GameClient/GUI/WindowVideoManager.cpp | 420 -------------- .../Source/GameClient/VideoPlayer.cpp | 512 ------------------ .../Source/GameClient/VideoStream.cpp | 91 ---- Generals/Code/GameEngineDevice/CMakeLists.txt | 8 +- .../VideoDevice/Bink/BinkVideoPlayer.h | 143 ----- .../W3DDevice/GameClient/W3DVideobuffer.h | 105 ---- .../VideoDevice/Bink/BinkVideoPlayer.cpp | 448 --------------- .../W3DDevice/GameClient/W3DVideoBuffer.cpp | 282 ---------- GeneralsMD/Code/GameEngine/CMakeLists.txt | 12 +- .../Code/GameEngineDevice/CMakeLists.txt | 26 +- scripts/cpp/unify_move_files.py | 15 + 31 files changed, 60 insertions(+), 2630 deletions(-) rename {GeneralsMD/Code => Core}/GameEngine/Include/GameClient/VideoPlayer.h (100%) rename {GeneralsMD/Code => Core}/GameEngine/Include/GameClient/WindowVideoManager.h (100%) rename {GeneralsMD/Code => Core}/GameEngine/Source/Common/INI/INIVideo.cpp (100%) rename {GeneralsMD/Code => Core}/GameEngine/Source/GameClient/GUI/WindowVideoManager.cpp (100%) rename {GeneralsMD/Code => Core}/GameEngine/Source/GameClient/VideoPlayer.cpp (100%) rename {GeneralsMD/Code => Core}/GameEngine/Source/GameClient/VideoStream.cpp (100%) rename {GeneralsMD/Code => Core}/GameEngineDevice/Include/VideoDevice/Bink/BinkVideoPlayer.h (100%) rename {GeneralsMD/Code => Core}/GameEngineDevice/Include/VideoDevice/FFmpeg/FFmpegFile.h (100%) rename {GeneralsMD/Code => Core}/GameEngineDevice/Include/VideoDevice/FFmpeg/FFmpegVideoPlayer.h (100%) rename GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DVideobuffer.h => Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DVideoBuffer.h (100%) rename {GeneralsMD/Code => Core}/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp (100%) rename {GeneralsMD/Code => Core}/GameEngineDevice/Source/VideoDevice/FFmpeg/FFmpegFile.cpp (100%) rename {GeneralsMD/Code => Core}/GameEngineDevice/Source/VideoDevice/FFmpeg/FFmpegVideoPlayer.cpp (100%) rename {GeneralsMD/Code => Core}/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp (100%) delete mode 100644 Generals/Code/GameEngine/Include/GameClient/VideoPlayer.h delete mode 100644 Generals/Code/GameEngine/Include/GameClient/WindowVideoManager.h delete mode 100644 Generals/Code/GameEngine/Source/Common/INI/INIVideo.cpp delete mode 100644 Generals/Code/GameEngine/Source/GameClient/GUI/WindowVideoManager.cpp delete mode 100644 Generals/Code/GameEngine/Source/GameClient/VideoPlayer.cpp delete mode 100644 Generals/Code/GameEngine/Source/GameClient/VideoStream.cpp delete mode 100644 Generals/Code/GameEngineDevice/Include/VideoDevice/Bink/BinkVideoPlayer.h delete mode 100644 Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DVideobuffer.h delete mode 100644 Generals/Code/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp delete mode 100644 Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp diff --git a/Core/GameEngine/CMakeLists.txt b/Core/GameEngine/CMakeLists.txt index 689e0004307..0c91e47cc5d 100644 --- a/Core/GameEngine/CMakeLists.txt +++ b/Core/GameEngine/CMakeLists.txt @@ -224,11 +224,11 @@ set(GAMEENGINE_SRC # Include/GameClient/Statistics.h # Include/GameClient/TerrainRoads.h # Include/GameClient/TerrainVisual.h -# Include/GameClient/VideoPlayer.h + Include/GameClient/VideoPlayer.h # Include/GameClient/View.h # Include/GameClient/Water.h # Include/GameClient/WindowLayout.h -# Include/GameClient/WindowVideoManager.h + Include/GameClient/WindowVideoManager.h # Include/GameClient/WindowXlat.h # Include/GameClient/WinInstanceData.h # Include/GameLogic/AI.h @@ -597,7 +597,7 @@ set(GAMEENGINE_SRC # Source/Common/INI/INITerrainBridge.cpp # Source/Common/INI/INITerrainRoad.cpp # Source/Common/INI/INIUpgrade.cpp -# Source/Common/INI/INIVideo.cpp + Source/Common/INI/INIVideo.cpp # Source/Common/INI/INIWater.cpp # Source/Common/INI/INIWeapon.cpp # Source/Common/INI/INIWebpageURL.cpp @@ -791,7 +791,7 @@ set(GAMEENGINE_SRC # Source/GameClient/GUI/Shell/Shell.cpp # Source/GameClient/GUI/Shell/ShellMenuScheme.cpp # Source/GameClient/GUI/WindowLayout.cpp -# Source/GameClient/GUI/WindowVideoManager.cpp + Source/GameClient/GUI/WindowVideoManager.cpp # Source/GameClient/GUI/WinInstanceData.cpp # Source/GameClient/InGameUI.cpp # Source/GameClient/Input/Keyboard.cpp @@ -823,8 +823,8 @@ set(GAMEENGINE_SRC # Source/GameClient/System/Smudge.cpp # Source/GameClient/Terrain/TerrainRoads.cpp # Source/GameClient/Terrain/TerrainVisual.cpp -# Source/GameClient/VideoPlayer.cpp -# Source/GameClient/VideoStream.cpp + Source/GameClient/VideoPlayer.cpp + Source/GameClient/VideoStream.cpp # Source/GameClient/View.cpp # Source/GameClient/Water.cpp # Source/GameLogic/AI/AI.cpp diff --git a/GeneralsMD/Code/GameEngine/Include/GameClient/VideoPlayer.h b/Core/GameEngine/Include/GameClient/VideoPlayer.h similarity index 100% rename from GeneralsMD/Code/GameEngine/Include/GameClient/VideoPlayer.h rename to Core/GameEngine/Include/GameClient/VideoPlayer.h diff --git a/GeneralsMD/Code/GameEngine/Include/GameClient/WindowVideoManager.h b/Core/GameEngine/Include/GameClient/WindowVideoManager.h similarity index 100% rename from GeneralsMD/Code/GameEngine/Include/GameClient/WindowVideoManager.h rename to Core/GameEngine/Include/GameClient/WindowVideoManager.h diff --git a/GeneralsMD/Code/GameEngine/Source/Common/INI/INIVideo.cpp b/Core/GameEngine/Source/Common/INI/INIVideo.cpp similarity index 100% rename from GeneralsMD/Code/GameEngine/Source/Common/INI/INIVideo.cpp rename to Core/GameEngine/Source/Common/INI/INIVideo.cpp diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/WindowVideoManager.cpp b/Core/GameEngine/Source/GameClient/GUI/WindowVideoManager.cpp similarity index 100% rename from GeneralsMD/Code/GameEngine/Source/GameClient/GUI/WindowVideoManager.cpp rename to Core/GameEngine/Source/GameClient/GUI/WindowVideoManager.cpp diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/VideoPlayer.cpp b/Core/GameEngine/Source/GameClient/VideoPlayer.cpp similarity index 100% rename from GeneralsMD/Code/GameEngine/Source/GameClient/VideoPlayer.cpp rename to Core/GameEngine/Source/GameClient/VideoPlayer.cpp diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/VideoStream.cpp b/Core/GameEngine/Source/GameClient/VideoStream.cpp similarity index 100% rename from GeneralsMD/Code/GameEngine/Source/GameClient/VideoStream.cpp rename to Core/GameEngine/Source/GameClient/VideoStream.cpp diff --git a/Core/GameEngineDevice/CMakeLists.txt b/Core/GameEngineDevice/CMakeLists.txt index da9169a8464..404c1eb60ec 100644 --- a/Core/GameEngineDevice/CMakeLists.txt +++ b/Core/GameEngineDevice/CMakeLists.txt @@ -1,6 +1,6 @@ set(GAMEENGINEDEVICE_SRC Include/MilesAudioDevice/MilesAudioManager.h -# Include/VideoDevice/Bink/BinkVideoPlayer.h + Include/VideoDevice/Bink/BinkVideoPlayer.h # Include/W3DDevice/Common/W3DConvert.h # Include/W3DDevice/Common/W3DFunctionLexicon.h # Include/W3DDevice/Common/W3DModuleFactory.h @@ -70,7 +70,7 @@ set(GAMEENGINEDEVICE_SRC # Include/W3DDevice/GameClient/W3DTerrainTracks.h # Include/W3DDevice/GameClient/W3DTerrainVisual.h # Include/W3DDevice/GameClient/W3DTreeBuffer.h -# Include/W3DDevice/GameClient/W3DVideoBuffer.h + Include/W3DDevice/GameClient/W3DVideoBuffer.h # Include/W3DDevice/GameClient/W3DView.h # Include/W3DDevice/GameClient/W3DVolumetricShadow.h # Include/W3DDevice/GameClient/W3DWater.h @@ -91,7 +91,7 @@ set(GAMEENGINEDEVICE_SRC # Include/Win32Device/GameClient/Win32DIMouse.h # Include/Win32Device/GameClient/Win32Mouse.h Source/MilesAudioDevice/MilesAudioManager.cpp -# Source/VideoDevice/Bink/BinkVideoPlayer.cpp + Source/VideoDevice/Bink/BinkVideoPlayer.cpp # Source/W3DDevice/Common/System/W3DFunctionLexicon.cpp # Source/W3DDevice/Common/System/W3DRadar.cpp # Source/W3DDevice/Common/Thing/W3DModuleFactory.cpp @@ -172,7 +172,7 @@ set(GAMEENGINEDEVICE_SRC # Source/W3DDevice/GameClient/W3DTerrainTracks.cpp # Source/W3DDevice/GameClient/W3DTerrainVisual.cpp # Source/W3DDevice/GameClient/W3DTreeBuffer.cpp -# Source/W3DDevice/GameClient/W3DVideoBuffer.cpp + Source/W3DDevice/GameClient/W3DVideoBuffer.cpp # Source/W3DDevice/GameClient/W3DView.cpp # Source/W3DDevice/GameClient/W3dWaypointBuffer.cpp # Source/W3DDevice/GameClient/W3DWebBrowser.cpp @@ -229,20 +229,19 @@ target_link_libraries(corei_gameenginedevice_public INTERFACE milesstub ) -#if(RTS_BUILD_OPTION_FFMPEG) -# find_package(FFMPEG REQUIRED) -# -# if(FFMPEG_FOUND) -# target_sources(z_gameenginedevice PRIVATE -# Include/VideoDevice/FFmpeg/FFmpegFile.h -# Include/VideoDevice/FFmpeg/FFmpegVideoPlayer.h -# Source/VideoDevice/FFmpeg/FFmpegFile.cpp -# Source/VideoDevice/FFmpeg/FFmpegVideoPlayer.cpp -# ) -# -# target_include_directories(z_gameenginedevice PRIVATE ${FFMPEG_INCLUDE_DIRS}) -# target_link_directories(z_gameenginedevice PRIVATE ${FFMPEG_LIBRARY_DIRS}) -# target_link_libraries(z_gameenginedevice PRIVATE ${FFMPEG_LIBRARIES}) -# target_compile_definitions(z_gameenginedevice PUBLIC RTS_HAS_FFMPEG) -# endif() -#endif() +if(RTS_BUILD_OPTION_FFMPEG) + find_package(FFMPEG REQUIRED) + + if(FFMPEG_FOUND) + target_sources(corei_gameenginedevice_private INTERFACE + Include/VideoDevice/FFmpeg/FFmpegFile.h + Include/VideoDevice/FFmpeg/FFmpegVideoPlayer.h + Source/VideoDevice/FFmpeg/FFmpegFile.cpp + Source/VideoDevice/FFmpeg/FFmpegVideoPlayer.cpp + ) + target_include_directories(corei_gameenginedevice_private INTERFACE ${FFMPEG_INCLUDE_DIRS}) + target_link_directories(corei_gameenginedevice_private INTERFACE ${FFMPEG_LIBRARY_DIRS}) + target_link_libraries(corei_gameenginedevice_private INTERFACE ${FFMPEG_LIBRARIES}) + target_compile_definitions(corei_gameenginedevice_public INTERFACE RTS_HAS_FFMPEG) + endif() +endif() diff --git a/GeneralsMD/Code/GameEngineDevice/Include/VideoDevice/Bink/BinkVideoPlayer.h b/Core/GameEngineDevice/Include/VideoDevice/Bink/BinkVideoPlayer.h similarity index 100% rename from GeneralsMD/Code/GameEngineDevice/Include/VideoDevice/Bink/BinkVideoPlayer.h rename to Core/GameEngineDevice/Include/VideoDevice/Bink/BinkVideoPlayer.h diff --git a/GeneralsMD/Code/GameEngineDevice/Include/VideoDevice/FFmpeg/FFmpegFile.h b/Core/GameEngineDevice/Include/VideoDevice/FFmpeg/FFmpegFile.h similarity index 100% rename from GeneralsMD/Code/GameEngineDevice/Include/VideoDevice/FFmpeg/FFmpegFile.h rename to Core/GameEngineDevice/Include/VideoDevice/FFmpeg/FFmpegFile.h diff --git a/GeneralsMD/Code/GameEngineDevice/Include/VideoDevice/FFmpeg/FFmpegVideoPlayer.h b/Core/GameEngineDevice/Include/VideoDevice/FFmpeg/FFmpegVideoPlayer.h similarity index 100% rename from GeneralsMD/Code/GameEngineDevice/Include/VideoDevice/FFmpeg/FFmpegVideoPlayer.h rename to Core/GameEngineDevice/Include/VideoDevice/FFmpeg/FFmpegVideoPlayer.h diff --git a/GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DVideobuffer.h b/Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DVideoBuffer.h similarity index 100% rename from GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DVideobuffer.h rename to Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DVideoBuffer.h diff --git a/GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp b/Core/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp similarity index 100% rename from GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp rename to Core/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp diff --git a/GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/FFmpeg/FFmpegFile.cpp b/Core/GameEngineDevice/Source/VideoDevice/FFmpeg/FFmpegFile.cpp similarity index 100% rename from GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/FFmpeg/FFmpegFile.cpp rename to Core/GameEngineDevice/Source/VideoDevice/FFmpeg/FFmpegFile.cpp diff --git a/GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/FFmpeg/FFmpegVideoPlayer.cpp b/Core/GameEngineDevice/Source/VideoDevice/FFmpeg/FFmpegVideoPlayer.cpp similarity index 100% rename from GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/FFmpeg/FFmpegVideoPlayer.cpp rename to Core/GameEngineDevice/Source/VideoDevice/FFmpeg/FFmpegVideoPlayer.cpp diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp similarity index 100% rename from GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp rename to Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DVideoBuffer.cpp diff --git a/Generals/Code/GameEngine/CMakeLists.txt b/Generals/Code/GameEngine/CMakeLists.txt index 1bb7173ff51..41fd59b68b8 100644 --- a/Generals/Code/GameEngine/CMakeLists.txt +++ b/Generals/Code/GameEngine/CMakeLists.txt @@ -213,11 +213,11 @@ set(GAMEENGINE_SRC Include/GameClient/Statistics.h Include/GameClient/TerrainRoads.h Include/GameClient/TerrainVisual.h - Include/GameClient/VideoPlayer.h +# Include/GameClient/VideoPlayer.h Include/GameClient/View.h Include/GameClient/Water.h Include/GameClient/WindowLayout.h - Include/GameClient/WindowVideoManager.h +# Include/GameClient/WindowVideoManager.h Include/GameClient/WindowXlat.h Include/GameClient/WinInstanceData.h Include/GameLogic/AI.h @@ -556,7 +556,7 @@ set(GAMEENGINE_SRC Source/Common/INI/INITerrainBridge.cpp Source/Common/INI/INITerrainRoad.cpp Source/Common/INI/INIUpgrade.cpp - Source/Common/INI/INIVideo.cpp +# Source/Common/INI/INIVideo.cpp Source/Common/INI/INIWater.cpp Source/Common/INI/INIWeapon.cpp Source/Common/INI/INIWebpageURL.cpp @@ -746,7 +746,7 @@ set(GAMEENGINE_SRC Source/GameClient/GUI/Shell/Shell.cpp Source/GameClient/GUI/Shell/ShellMenuScheme.cpp Source/GameClient/GUI/WindowLayout.cpp - Source/GameClient/GUI/WindowVideoManager.cpp +# Source/GameClient/GUI/WindowVideoManager.cpp Source/GameClient/GUI/WinInstanceData.cpp Source/GameClient/InGameUI.cpp Source/GameClient/Input/Keyboard.cpp @@ -775,7 +775,7 @@ set(GAMEENGINE_SRC Source/GameClient/System/RayEffect.cpp Source/GameClient/Terrain/TerrainRoads.cpp Source/GameClient/Terrain/TerrainVisual.cpp - Source/GameClient/VideoPlayer.cpp +# Source/GameClient/VideoPlayer.cpp Source/GameClient/View.cpp Source/GameClient/Water.cpp Source/GameLogic/AI/AI.cpp diff --git a/Generals/Code/GameEngine/Include/GameClient/VideoPlayer.h b/Generals/Code/GameEngine/Include/GameClient/VideoPlayer.h deleted file mode 100644 index 1d9a365a133..00000000000 --- a/Generals/Code/GameEngine/Include/GameClient/VideoPlayer.h +++ /dev/null @@ -1,317 +0,0 @@ -/* -** Command & Conquer Generals(tm) -** Copyright 2025 Electronic Arts Inc. -** -** This program is free software: you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation, either version 3 of the License, or -** (at your option) any later version. -** -** This program is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with this program. If not, see . -*/ - -//////////////////////////////////////////////////////////////////////////////// -// // -// (c) 2001-2003 Electronic Arts Inc. // -// // -//////////////////////////////////////////////////////////////////////////////// - -//---------------------------------------------------------------------------- -// -// Westwood Studios Pacific. -// -// Confidential Information -// Copyright (C) 2001 - All Rights Reserved -// -//---------------------------------------------------------------------------- -// -// Project: Generals -// -// File name: GameClient/VideoPlayer.h -// -// Created: 10/22/01 -// -//---------------------------------------------------------------------------- - -#pragma once - -#ifndef __GAMECLIENT_VIDEOPLAYER_H_ -#define __GAMECLIENT_VIDEOPLAYER_H_ - - -//---------------------------------------------------------------------------- -// Includes -//---------------------------------------------------------------------------- - -#include -#include "WWMath/rect.h" -#include "Common/SubsystemInterface.h" -#include "Common/AsciiString.h" -#include "Common/INI.h" -#include "Common/STLTypedefs.h" - -//---------------------------------------------------------------------------- -// Forward References -//---------------------------------------------------------------------------- - -struct Video; -class VideoPlayer; - -//---------------------------------------------------------------------------- -// Type Defines -//---------------------------------------------------------------------------- -typedef std::vector