mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2024-12-02 08:51:57 +00:00
Merged FFmpeg Bink video support from DOOM-3-BFG-VR fork
This commit is contained in:
parent
c9249bd05c
commit
730a1f2baa
6 changed files with 2266 additions and 41 deletions
|
@ -15,6 +15,9 @@ option(SDL2
|
||||||
option(OPENAL
|
option(OPENAL
|
||||||
"Use OpenAL soft instead of XAudio2" OFF)
|
"Use OpenAL soft instead of XAudio2" OFF)
|
||||||
|
|
||||||
|
option(FFMPEG
|
||||||
|
"Use FMPEG to render Bink videos" ON)
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
set(OPENAL TRUE)
|
set(OPENAL TRUE)
|
||||||
endif()
|
endif()
|
||||||
|
@ -132,6 +135,13 @@ elseif(MSVC)
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MP /Oi /Oy /MT")
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MP /Oi /Oy /MT")
|
||||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MP /MTd")
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MP /MTd")
|
||||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MP /Oi /Oy /MT")
|
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MP /Oi /Oy /MT")
|
||||||
|
|
||||||
|
# RB: without /SAFESEH:NO we can't link against ffmpeg libs and VS2013 or we have to build our own
|
||||||
|
# libs for newer compilers
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /SAFESEH:NO")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} /SAFESEH:NO")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SAFESEH:NO")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /SAFESEH:NO")
|
||||||
# endif()
|
# endif()
|
||||||
|
|
||||||
|
|
||||||
|
@ -1177,6 +1187,33 @@ if(MSVC)
|
||||||
${DOOMCLASSIC_XAUDIO2_SOURCES})
|
${DOOMCLASSIC_XAUDIO2_SOURCES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(FFMPEG)
|
||||||
|
if(CMAKE_CL_64)
|
||||||
|
include_directories(libs/ffmpeg-win64/include)
|
||||||
|
include_directories(libs/ffmpeg-win64/include/libswscale)
|
||||||
|
include_directories(libs/ffmpeg-win64/include/libavformat)
|
||||||
|
include_directories(libs/ffmpeg-win64/include/libavdevice)
|
||||||
|
include_directories(libs/ffmpeg-win64/include/libavcodec)
|
||||||
|
|
||||||
|
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/libs/ffmpeg-win64/lib)
|
||||||
|
else()
|
||||||
|
include_directories(libs/ffmpeg-win32/include)
|
||||||
|
include_directories(libs/ffmpeg-win32/include/libswscale)
|
||||||
|
include_directories(libs/ffmpeg-win32/include/libavformat)
|
||||||
|
include_directories(libs/ffmpeg-win32/include/libavdevice)
|
||||||
|
include_directories(libs/ffmpeg-win32/include/libavcodec)
|
||||||
|
|
||||||
|
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/libs/ffmpeg-win32/lib)
|
||||||
|
|
||||||
|
set(FFmpeg_LIBRARIES
|
||||||
|
avcodec
|
||||||
|
avformat
|
||||||
|
avutil
|
||||||
|
swscale)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
endif()
|
||||||
|
|
||||||
if(USE_MFC_TOOLS)
|
if(USE_MFC_TOOLS)
|
||||||
|
|
||||||
include_directories(libs/atlmfc/include)
|
include_directories(libs/atlmfc/include)
|
||||||
|
@ -1266,6 +1303,7 @@ if(MSVC)
|
||||||
winmm
|
winmm
|
||||||
wsock32.lib
|
wsock32.lib
|
||||||
${OpenAL_LIBRARIES}
|
${OpenAL_LIBRARIES}
|
||||||
|
${FFmpeg_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
#CMAKE_BINARY_DIR
|
#CMAKE_BINARY_DIR
|
||||||
|
@ -1282,16 +1320,12 @@ else()
|
||||||
list(APPEND RBDOOM3_SOURCES
|
list(APPEND RBDOOM3_SOURCES
|
||||||
${SYS_INCLUDES} ${SYS_SOURCES})
|
${SYS_INCLUDES} ${SYS_SOURCES})
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
list(APPEND RBDOOM3_SOURCES
|
|
||||||
${WIN32_INCLUDES} ${WIN32_SOURCES} ${WIN32_RESOURCES}
|
|
||||||
${DOOMCLASSIC_STUBAUDIO_SOURCES})
|
|
||||||
|
|
||||||
#list(REMOVE_ITEM WIN32_SOURCES sys/win32/win_cpu.cpp)
|
|
||||||
list(APPEND WIN32_SOURCES sys/sdl/sdl_cpu.cpp)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
|
if(FFMPEG)
|
||||||
|
find_package(FFMPEG)
|
||||||
|
include_directories(${FFMPEG_INCLUDE_DIR})
|
||||||
|
link_directories(${FFMPEG_LIBRARIES_DIRS})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(SDL2)
|
if(SDL2)
|
||||||
find_package(SDL2 REQUIRED)
|
find_package(SDL2 REQUIRED)
|
||||||
|
@ -1402,31 +1436,6 @@ else()
|
||||||
# make sure precompiled header is deleted after executable is compiled
|
# make sure precompiled header is deleted after executable is compiled
|
||||||
add_dependencies(rm_precomp_header RBDoom3BFG)
|
add_dependencies(rm_precomp_header RBDoom3BFG)
|
||||||
|
|
||||||
if(MINGW)
|
|
||||||
include_directories(libs/sdl2/include)
|
|
||||||
|
|
||||||
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/libs/sdl2/libmingw32)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
|
|
||||||
target_link_libraries(RBDoom3BFG
|
|
||||||
idlib
|
|
||||||
${DirectX_LIBRARIES}
|
|
||||||
#libcurl
|
|
||||||
#openal32
|
|
||||||
opengl32
|
|
||||||
glu32
|
|
||||||
dbghelp
|
|
||||||
#eaxguid
|
|
||||||
iphlpapi
|
|
||||||
winmm
|
|
||||||
wsock32.lib
|
|
||||||
SDL2
|
|
||||||
)
|
|
||||||
|
|
||||||
endif()
|
|
||||||
|
|
||||||
IF("${CMAKE_SYSTEM}" MATCHES "Linux")
|
IF("${CMAKE_SYSTEM}" MATCHES "Linux")
|
||||||
target_link_libraries(RBDoom3BFG
|
target_link_libraries(RBDoom3BFG
|
||||||
idlib
|
idlib
|
||||||
|
@ -1436,6 +1445,7 @@ else()
|
||||||
rt
|
rt
|
||||||
${SDLx_LIBRARY}
|
${SDLx_LIBRARY}
|
||||||
${OPENAL_LIBRARY}
|
${OPENAL_LIBRARY}
|
||||||
|
${FFMPEG_LIBRARIES}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -1447,6 +1457,7 @@ else()
|
||||||
rt
|
rt
|
||||||
${SDLx_LIBRARY}
|
${SDLx_LIBRARY}
|
||||||
${OPENAL_LIBRARY}
|
${OPENAL_LIBRARY}
|
||||||
|
${FFMPEG_LIBRARIES}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -74,6 +74,7 @@ void idMenuScreen_Shell_Credits::SetupCreditList()
|
||||||
creditList.Append( creditInfo_t( 0, "Daniel Gibson - Tons of code cleanups, netcode++" ) );
|
creditList.Append( creditInfo_t( 0, "Daniel Gibson - Tons of code cleanups, netcode++" ) );
|
||||||
creditList.Append( creditInfo_t( 0, "Jonathan Young - Bugfixes, misc improvements" ) );
|
creditList.Append( creditInfo_t( 0, "Jonathan Young - Bugfixes, misc improvements" ) );
|
||||||
creditList.Append( creditInfo_t( 0, "Felix Rueegg - Doomclassic Linux support" ) );
|
creditList.Append( creditInfo_t( 0, "Felix Rueegg - Doomclassic Linux support" ) );
|
||||||
|
creditList.Append( creditInfo_t( 0, "Carl Kenner - Bink video support" ) );
|
||||||
creditList.Append( creditInfo_t() );
|
creditList.Append( creditInfo_t() );
|
||||||
creditList.Append( creditInfo_t( 0, "For more see the GitHub stats ;)" ) );
|
creditList.Append( creditInfo_t( 0, "For more see the GitHub stats ;)" ) );
|
||||||
creditList.Append( creditInfo_t() );
|
creditList.Append( creditInfo_t() );
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
Doom 3 BFG Edition GPL Source Code
|
Doom 3 BFG Edition GPL Source Code
|
||||||
Copyright (C) 1993-2012 id Software LLC, a ZeniMax Media company.
|
Copyright (C) 1993-2012 id Software LLC, a ZeniMax Media company.
|
||||||
|
Copyright (C) 2014 Carl Kenner
|
||||||
|
|
||||||
This file is part of the Doom 3 BFG Edition GPL Source Code ("Doom 3 BFG Edition Source Code").
|
This file is part of the Doom 3 BFG Edition GPL Source Code ("Doom 3 BFG Edition Source Code").
|
||||||
|
|
||||||
|
@ -62,6 +63,7 @@ typedef struct
|
||||||
idImage* imageY;
|
idImage* imageY;
|
||||||
idImage* imageCr;
|
idImage* imageCr;
|
||||||
idImage* imageCb;
|
idImage* imageCb;
|
||||||
|
idImage* image;
|
||||||
int status;
|
int status;
|
||||||
} cinData_t;
|
} cinData_t;
|
||||||
|
|
||||||
|
|
|
@ -303,6 +303,14 @@ void idGuiModel::EmitFullScreen()
|
||||||
viewDef->drawSurfs = ( drawSurf_t** )R_FrameAlloc( viewDef->maxDrawSurfs * sizeof( viewDef->drawSurfs[0] ), FRAME_ALLOC_DRAW_SURFACE_POINTER );
|
viewDef->drawSurfs = ( drawSurf_t** )R_FrameAlloc( viewDef->maxDrawSurfs * sizeof( viewDef->drawSurfs[0] ), FRAME_ALLOC_DRAW_SURFACE_POINTER );
|
||||||
viewDef->numDrawSurfs = 0;
|
viewDef->numDrawSurfs = 0;
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
// RB: give renderView the current time to calculate 2D shader effects
|
||||||
|
int shaderTime = tr.frameShaderTime * 1000; //Sys_Milliseconds();
|
||||||
|
viewDef->renderView.time[0] = shaderTime;
|
||||||
|
viewDef->renderView.time[1] = shaderTime;
|
||||||
|
// RB end
|
||||||
|
#endif
|
||||||
|
|
||||||
viewDef_t* oldViewDef = tr.viewDef;
|
viewDef_t* oldViewDef = tr.viewDef;
|
||||||
tr.viewDef = viewDef;
|
tr.viewDef = viewDef;
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
Doom 3 BFG Edition GPL Source Code
|
Doom 3 BFG Edition GPL Source Code
|
||||||
Copyright (C) 1993-2012 id Software LLC, a ZeniMax Media company.
|
Copyright (C) 1993-2012 id Software LLC, a ZeniMax Media company.
|
||||||
Copyright (C) 2013 Robert Beckebans
|
Copyright (C) 2013 Robert Beckebans
|
||||||
|
Copyright (C) 2014 Carl Kenner
|
||||||
|
|
||||||
This file is part of the Doom 3 BFG Edition GPL Source Code ("Doom 3 BFG Edition Source Code").
|
This file is part of the Doom 3 BFG Edition GPL Source Code ("Doom 3 BFG Edition Source Code").
|
||||||
|
|
||||||
|
@ -407,6 +408,14 @@ static void RB_BindVariableStageImage( const textureStage_t* texture, const floa
|
||||||
cin.imageCr->Bind();
|
cin.imageCr->Bind();
|
||||||
GL_SelectTexture( 2 );
|
GL_SelectTexture( 2 );
|
||||||
cin.imageCb->Bind();
|
cin.imageCb->Bind();
|
||||||
|
|
||||||
|
}
|
||||||
|
else if( cin.image != NULL )
|
||||||
|
{
|
||||||
|
//Carl: A single RGB image works better with the FFMPEG BINK codec.
|
||||||
|
GL_SelectTexture( 0 );
|
||||||
|
cin.image->Bind();
|
||||||
|
renderProgManager.BindShader_TextureVertexColor();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue