From 6d5e1d53c118bea286f88e84d44bb992534275e3 Mon Sep 17 00:00:00 2001 From: Christophe Meneboeuf Date: Tue, 2 Feb 2021 00:35:49 +0100 Subject: [PATCH] Windows project generated by cmake --- .gitignore | 1 + Loader_Apple2/disk.dsk | Bin 143360 -> 143360 bytes Readme.md | 11 ++-- Rgb2Hires_PC/CMakeLists.txt | 45 ++++++++++++-- Rgb2Hires_PC/RgbToHiRes.sln | 57 ------------------ Rgb2Hires_PC/scripts/ImageMagick-config.cmake | 9 +++ Rgb2Hires_PC/scripts/copy_im_db_dlls.bat | 9 +++ Rgb2Hires_PC/scripts/copy_im_rl_dlls.bat | 9 +++ Rgb2Hires_PC/src/Picture.cpp | 10 +++ Rgb2Hires_PC/src/Picture.h | 10 +-- 10 files changed, 88 insertions(+), 73 deletions(-) delete mode 100644 Rgb2Hires_PC/RgbToHiRes.sln create mode 100644 Rgb2Hires_PC/scripts/ImageMagick-config.cmake create mode 100644 Rgb2Hires_PC/scripts/copy_im_db_dlls.bat create mode 100644 Rgb2Hires_PC/scripts/copy_im_rl_dlls.bat diff --git a/.gitignore b/.gitignore index c082964..b5cb8e9 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ **/Debug/ **/Release/ **/build/ +**/build_*/ *.user *.filters *.o diff --git a/Loader_Apple2/disk.dsk b/Loader_Apple2/disk.dsk index e47afcb2ada42413c2351866908aa59af5478d9d..fae47c31fbf128df60322b0de214471f6ad1fea3 100644 GIT binary patch delta 1106 zcmY+D%TE(g6vpp#`kYouOd60FI=C@b6HQr)%tRvFX#^4;CQOZ?tjx%x4ARaefsIRY zLU5xY_zxI{#Ep@Se*jRV)nEV%g1p_h;^Db7Qwq~$a_4mJ_ucdR&Wx`6N7wxyn}XLK z$EvOqQsn(?0f}HusX|0nF^7V0#-Y*`ht*ub-xjle6~MWwp(`)c%dAjA%2$S#*MuaZ zgvbUjN}@zGUzYM@zz1*hqT7{-J%P_TvGRc<8EXr(jb2o4hWPpq2(2~yG%9`7Xc%h| zc)6wuG-Zh!Gzx{aPUt)iLE~b?qw{)$KJ}`ayMqU-q*d=c1sYl0W3hhfH zUVJyKGsO-wo)bA{F@9mOtO}CBEM)e2VR^)(_b27#CFyTbk3p$S9O;!7x2?Q_%4}sR z!)iWYKFn9y>X}jl1#G~gqgm<&+(LTfB-_#j&$b2l@;$=T6{nZ!$@AHFZjNS0coE^e z9=hG_>t+yp`Q8>EA&+pBMeW=)o8I~I8J4|}@55r@_PHRO08V@k0 zutAJVEDx^6be!WEm;CXashj_}AOw$^1bdq3LK_#&Z@o25u3a`xW)-nN)*nXB02apq~W!V%9A!FoVssOBpU3Y*_}BmQIWY zTg)J=UKnhl0i($jYoPzP>eb~G*>nuHXCSm3fS=oGuQSITJA*E4abahyjLVtXKeZ@L zbeXWtNOV^zOW%OLT_nn@(-v=>+&z18t&gK)e=y(#sw2Mrd%&M1aC4G6{O8WF@la1D z#iZ>?WArXf8vDG>Q=4AM!WDtT(}?+g@|2r3gP6rhDGQBbAJR!0`!FXa?{j14^PkS= HIZpczc~xRQ delta 238 zcmZp8z|ru4V}mm{uZ+;3k#+oOo3W)VFi-O nP_YRW$YLERwz0Bo7T_so+_agS8)W sudo apt install libmagick++-6.q16-dev diff --git a/Rgb2Hires_PC/CMakeLists.txt b/Rgb2Hires_PC/CMakeLists.txt index 08a1a63..a6d838a 100644 --- a/Rgb2Hires_PC/CMakeLists.txt +++ b/Rgb2Hires_PC/CMakeLists.txt @@ -1,14 +1,34 @@ -cmake_minimum_required (VERSION 3.10) +cmake_minimum_required (VERSION 3.12) +cmake_policy(SET CMP0074 NEW) + project (Rgb2Hires) +# flags not compatibles with magick++ +if(WIN32) + string (REPLACE "/D_WINDOWS" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + string (REPLACE "/DWIN32" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) +endif(WIN32) + # The version number. set (Rgb2Hires_VERSION_MAJOR 1) set (Rgb2Hires_VERSION_MINOR 0) -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 14) set(CMAKE_VERBOSE_MAKEFILE ON) # dependencies -find_package(ImageMagick COMPONENTS Magick++ REQUIRED) +if(WIN32) + # imagemagik + if(NOT DEFINED ENV{MAGICK_HOME}) + message(FATAL_ERROR "Please set a MAGICK_HOME environment variable to the root directory of ImageMagick6") + endif() + find_package(ImageMagick HINTS $ENV{MAGICK_HOME} REQUIRED COMPONENTS Magick++) +else() + find_package(ImageMagick 6.9 EXACT REQUIRED COMPONENTS Magick++ ) +endif(WIN32) + +# directories +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/bin/debug) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/bin/release) # library add_library(${PROJECT_NAME} src/Common.h @@ -22,7 +42,7 @@ add_library(${PROJECT_NAME} src/Common.h src/Tile.cpp ) target_compile_definitions(${PROJECT_NAME} PRIVATE MAGICKCORE_QUANTUM_DEPTH=16 MAGICKCORE_HDRI_ENABLE=0) -target_include_directories(${PROJECT_NAME} PRIVATE ${ImageMagick_Magick++_INCLUDE_DIRS}) +target_include_directories(${PROJECT_NAME} PRIVATE ${ImageMagick_INCLUDE_DIRS}) # Application Picture @@ -30,9 +50,26 @@ add_executable(Picture src/App_Picture.cpp) target_compile_definitions(Picture PUBLIC MAGICKCORE_QUANTUM_DEPTH=16 MAGICKCORE_HDRI_ENABLE=0) target_include_directories(Picture PRIVATE src ${ImageMagick_INCLUDE_DIRS}) target_link_libraries(Picture ${ImageMagick_LIBRARIES} ${PROJECT_NAME}) +set_property(TARGET Picture PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}) # Application Tile add_executable(Tile src/App_Tile.cpp) target_compile_definitions(Tile PUBLIC MAGICKCORE_QUANTUM_DEPTH=16 MAGICKCORE_HDRI_ENABLE=0) target_include_directories(Tile PRIVATE src ${ImageMagick_INCLUDE_DIRS}) target_link_libraries(Tile ${ImageMagick_LIBRARIES} ${PROJECT_NAME}) +set_property(TARGET Tile PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}) + + +# Windows only: copy dlls +if(WIN32) + if(CMAKE_BUILD_TYPE MATCHES DEBUG) + string (REPLACE "/" "\\" WIN_BIN_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}) + add_custom_command(TARGET Picture POST_BUILD COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/copy_im_db_dlls.bat ${WIN_BIN_DIR}) + add_custom_command(TARGET Tile POST_BUILD COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/copy_im_db_dlls.bat ${WIN_BIN_DIR}) + else() + string (REPLACE "/" "\\" WIN_BIN_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE}) + add_custom_command(TARGET Picture POST_BUILD COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/copy_im_rl_dlls.bat ${WIN_BIN_DIR}) + add_custom_command(TARGET Tile POST_BUILD COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/copy_im_rl_dlls.bat ${WIN_BIN_DIR}) + endif() + +endif(WIN32) \ No newline at end of file diff --git a/Rgb2Hires_PC/RgbToHiRes.sln b/Rgb2Hires_PC/RgbToHiRes.sln deleted file mode 100644 index 2c35e07..0000000 --- a/Rgb2Hires_PC/RgbToHiRes.sln +++ /dev/null @@ -1,57 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30204.135 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libRgb2Hires", "projects\libRgb2Hires\libRgb2Hires.vcxproj", "{CA6F93C8-86B1-4F88-A1E8-8613ED5802AB}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Picture", "projects\picture\Picture.vcxproj", "{754364B2-84E3-40A5-B838-C153775D8F4C}" - ProjectSection(ProjectDependencies) = postProject - {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB} = {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tile", "projects\Tile\Tile.vcxproj", "{C0C03B35-A98E-4F57-9399-A07068B23AB2}" - ProjectSection(ProjectDependencies) = postProject - {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB} = {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB}.Debug|x64.ActiveCfg = Debug|x64 - {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB}.Debug|x64.Build.0 = Debug|x64 - {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB}.Debug|x86.ActiveCfg = Debug|Win32 - {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB}.Debug|x86.Build.0 = Debug|Win32 - {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB}.Release|x64.ActiveCfg = Release|x64 - {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB}.Release|x64.Build.0 = Release|x64 - {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB}.Release|x86.ActiveCfg = Release|Win32 - {CA6F93C8-86B1-4F88-A1E8-8613ED5802AB}.Release|x86.Build.0 = Release|Win32 - {754364B2-84E3-40A5-B838-C153775D8F4C}.Debug|x64.ActiveCfg = Debug|x64 - {754364B2-84E3-40A5-B838-C153775D8F4C}.Debug|x64.Build.0 = Debug|x64 - {754364B2-84E3-40A5-B838-C153775D8F4C}.Debug|x86.ActiveCfg = Debug|Win32 - {754364B2-84E3-40A5-B838-C153775D8F4C}.Debug|x86.Build.0 = Debug|Win32 - {754364B2-84E3-40A5-B838-C153775D8F4C}.Release|x64.ActiveCfg = Release|x64 - {754364B2-84E3-40A5-B838-C153775D8F4C}.Release|x64.Build.0 = Release|x64 - {754364B2-84E3-40A5-B838-C153775D8F4C}.Release|x86.ActiveCfg = Release|Win32 - {754364B2-84E3-40A5-B838-C153775D8F4C}.Release|x86.Build.0 = Release|Win32 - {C0C03B35-A98E-4F57-9399-A07068B23AB2}.Debug|x64.ActiveCfg = Debug|x64 - {C0C03B35-A98E-4F57-9399-A07068B23AB2}.Debug|x64.Build.0 = Debug|x64 - {C0C03B35-A98E-4F57-9399-A07068B23AB2}.Debug|x86.ActiveCfg = Debug|Win32 - {C0C03B35-A98E-4F57-9399-A07068B23AB2}.Debug|x86.Build.0 = Debug|Win32 - {C0C03B35-A98E-4F57-9399-A07068B23AB2}.Release|x64.ActiveCfg = Release|x64 - {C0C03B35-A98E-4F57-9399-A07068B23AB2}.Release|x64.Build.0 = Release|x64 - {C0C03B35-A98E-4F57-9399-A07068B23AB2}.Release|x86.ActiveCfg = Release|Win32 - {C0C03B35-A98E-4F57-9399-A07068B23AB2}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {EE267891-D9B2-4FE4-B329-44CB520456DE} - EndGlobalSection -EndGlobal diff --git a/Rgb2Hires_PC/scripts/ImageMagick-config.cmake b/Rgb2Hires_PC/scripts/ImageMagick-config.cmake new file mode 100644 index 0000000..34f9d40 --- /dev/null +++ b/Rgb2Hires_PC/scripts/ImageMagick-config.cmake @@ -0,0 +1,9 @@ +set(ImageMagick_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/ImageMagick ${CMAKE_CURRENT_LIST_DIR}/ImageMagick/Magick++/lib) + +set(ImageMagickLibDir ${CMAKE_CURRENT_LIST_DIR}/VisualMagick/lib) +if(CMAKE_BUILD_TYPE MATCHES DEBUG) + set(ImageMagick_LIBRARIES ${ImageMagickLibDir}/CORE_DB_Magick++_.lib ${ImageMagickLibDir}/CORE_DB_Magick_.lib ${ImageMagickLibDir}/CORE_DB_wand_.lib) +else() + set(ImageMagick_LIBRARIES ${ImageMagickLibDir}/CORE_RL_Magick++_.lib ${ImageMagickLibDir}/CORE_RL_Magick_.lib ${ImageMagickLibDir}/CORE_RL_wand_.lib) +endif() + diff --git a/Rgb2Hires_PC/scripts/copy_im_db_dlls.bat b/Rgb2Hires_PC/scripts/copy_im_db_dlls.bat new file mode 100644 index 0000000..2972b0e --- /dev/null +++ b/Rgb2Hires_PC/scripts/copy_im_db_dlls.bat @@ -0,0 +1,9 @@ +copy %MAGICK_HOME%\VisualMagick\bin\CORE_DB_magick_.dll %1 +copy "%MAGICK_HOME%\VisualMagick\bin\CORE_DB_Magick++_.dll" %1 +copy %MAGICK_HOME%\VisualMagick\bin\CORE_DB_png_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\CORE_DB_wand_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\IM_MOD_DB_bmp_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\IM_MOD_DB_jpeg_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\IM_MOD_DB_png_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\IM_MOD_DB_tiff_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\IM_MOD_DB_webp_.dll %1 diff --git a/Rgb2Hires_PC/scripts/copy_im_rl_dlls.bat b/Rgb2Hires_PC/scripts/copy_im_rl_dlls.bat new file mode 100644 index 0000000..44947ad --- /dev/null +++ b/Rgb2Hires_PC/scripts/copy_im_rl_dlls.bat @@ -0,0 +1,9 @@ +copy %MAGICK_HOME%\VisualMagick\bin\CORE_RL_magick_.dll %1 +copy "%MAGICK_HOME%\VisualMagick\bin\CORE_RL_Magick++_.dll" %1 +copy %MAGICK_HOME%\VisualMagick\bin\CORE_RL_png_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\CORE_RL_wand_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\IM_MOD_RL_bmp_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\IM_MOD_RL_jpeg_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\IM_MOD_RL_png_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\IM_MOD_RL_tiff_.dll %1 +copy %MAGICK_HOME%\VisualMagick\bin\IM_MOD_RL_webp_.dll %1 diff --git a/Rgb2Hires_PC/src/Picture.cpp b/Rgb2Hires_PC/src/Picture.cpp index 21e4ee5..ff82f26 100644 --- a/Rgb2Hires_PC/src/Picture.cpp +++ b/Rgb2Hires_PC/src/Picture.cpp @@ -6,6 +6,16 @@ using namespace std; namespace RgbToHires { + const std::array Picture::_lineAdresses = { + 0x2000, 0x2080, 0x2100, 0x2180, 0x2200, 0x2280, 0x2300, 0x2380, + 0x2028, 0x20a8, 0x2128, 0x21a8, 0x2228, 0x22a8, 0x2328, 0x23a8, + 0x2050, 0x20d0, 0x2150, 0x21d0, 0x2250, 0x22d0, 0x2350, 0x23d0 + }; + + const std::array Picture::_lineOffsets = { + 0x0, 0x400, 0x800, 0xc00, 0x1000, 0x1400, 0x1800, 0x1c00 + }; + Picture::Picture(const ImageQuantized& source) { auto pixel_src = source.getConstPixels(0u, 0u, WIDTH, HEIGHT); diff --git a/Rgb2Hires_PC/src/Picture.h b/Rgb2Hires_PC/src/Picture.h index d3b3036..80b8adf 100644 --- a/Rgb2Hires_PC/src/Picture.h +++ b/Rgb2Hires_PC/src/Picture.h @@ -47,14 +47,8 @@ namespace RgbToHires using Blob = std::array; Blob _blob; ///< A frame ordered buffer of hires data - static constexpr std::array _lineAdresses = { - 0x2000, 0x2080, 0x2100, 0x2180, 0x2200, 0x2280, 0x2300, 0x2380, - 0x2028, 0x20a8, 0x2128, 0x21a8, 0x2228, 0x22a8, 0x2328, 0x23a8, - 0x2050, 0x20d0, 0x2150, 0x21d0, 0x2250, 0x22d0, 0x2350, 0x23d0 - }; - static constexpr std::array _lineOffsets = { - 0x0, 0x400, 0x800, 0xc00, 0x1000, 0x1400, 0x1800, 0x1c00 - }; + static const std::array _lineAdresses; + static const std::array _lineOffsets; std::map _hrOrderedLines; ///< map };