# HG changeset patch # User unc0rr # Date 1544982025 -3600 # Node ID 9844450389a450fb9c689e2aa6546fd2934525c4 # Parent 3897da404301dd2ea7925c55bed5bb1d2c3a8680 Attempt to allow building video recording in pas2c mode, currently fails parsing diff -r 3897da404301 -r 9844450389a4 CMakeLists.txt --- a/CMakeLists.txt Sun Dec 16 10:42:50 2018 -0500 +++ b/CMakeLists.txt Sun Dec 16 18:40:25 2018 +0100 @@ -72,9 +72,6 @@ if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4" AND UNIX AND NOT APPLE) set(BUILD_ENGINE_C ON CACHE STRING "PAS2C force-enabled due to a freepascal 32 bit alignment bug" FORCE) endif() -if(BUILD_ENGINE_C) - set(NOVIDEOREC ON CACHE STRING "PAS2C does not support video recording at present" FORCE) -endif() #system paths for finding required fonts (see share/hedgewars/Data/fonts) #subdirectories will NOT be searched. diff -r 3897da404301 -r 9844450389a4 hedgewars/uVideoRec.pas --- a/hedgewars/uVideoRec.pas Sun Dec 16 10:42:50 2018 -0500 +++ b/hedgewars/uVideoRec.pas Sun Dec 16 18:40:25 2018 +0100 @@ -36,7 +36,7 @@ var flagPrerecording: boolean = false; function BeginVideoRecording: Boolean; -function LoadNextCameraPosition(out newRealTicks, newGameTicks: LongInt): Boolean; +function LoadNextCameraPosition(var newRealTicks, newGameTicks: LongInt): Boolean; procedure EncodeFrame; procedure StopVideoRecording; @@ -190,7 +190,7 @@ inc(numFrames); end; -function LoadNextCameraPosition(out newRealTicks, newGameTicks: LongInt): Boolean; +function LoadNextCameraPosition(var newRealTicks, newGameTicks: LongInt): Boolean; var frame: TFrame = (realTicks: 0; gameTicks: 0; CamX: 0; CamY: 0; zoom: 0); begin // we need to skip or duplicate frames to match target framerate diff -r 3897da404301 -r 9844450389a4 project_files/hwc/CMakeLists.txt --- a/project_files/hwc/CMakeLists.txt Sun Dec 16 10:42:50 2018 -0500 +++ b/project_files/hwc/CMakeLists.txt Sun Dec 16 18:40:25 2018 +0100 @@ -32,7 +32,6 @@ #get the list of pas files that are going to be converted and compiled file(GLOB engine_sources_pas "${CMAKE_SOURCE_DIR}/hedgewars/*.pas") -list(REMOVE_ITEM engine_sources_pas "${CMAKE_SOURCE_DIR}/hedgewars/uVideoRec.pas") list(REMOVE_ITEM engine_sources_pas "${CMAKE_SOURCE_DIR}/hedgewars/uTouch.pas") list(REMOVE_ITEM engine_sources_pas "${CMAKE_SOURCE_DIR}/hedgewars/PNGh.pas") list(REMOVE_ITEM engine_sources_pas "${CMAKE_SOURCE_DIR}/hedgewars/pas2cSystem.pas") @@ -73,6 +72,12 @@ set(pas2c_args ${pas2c_args} -d GL2) endif() +if(LIBAV_FOUND) + add_subdirectory(${CMAKE_SOURCE_DIR}/hedgewars/avwrapper ${CMAKE_CURRENT_BINARY_DIR}/avwrapper) + list(APPEND HW_LINK_LIBS avwrapper) + set(pas2c_args ${pas2c_args} -d USE_VIDEO_RECORDING) +endif() + #invoke pas2c on main module, it will call all the others add_custom_command(OUTPUT ${engine_sources} COMMAND "${EXECUTABLE_OUTPUT_PATH}/pas2c${CMAKE_EXECUTABLE_SUFFIX}" @@ -111,6 +116,7 @@ physfs physlayer m + ${HW_LINK_LIBS} #TODO: add other libraries ) install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hwengine${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_binary_install_dir})