mirror of
https://github.com/Pixinn/Rgb2Hires.git
synced 2025-01-02 23:30:47 +00:00
Windows project generated by cmake
This commit is contained in:
parent
83656a797a
commit
6d5e1d53c1
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,6 +5,7 @@
|
||||
**/Debug/
|
||||
**/Release/
|
||||
**/build/
|
||||
**/build_*/
|
||||
*.user
|
||||
*.filters
|
||||
*.o
|
||||
|
Binary file not shown.
11
Readme.md
11
Readme.md
@ -10,15 +10,18 @@ This repository contains three "PC" projects:
|
||||
And one Apple II project:
|
||||
* **Loader**: a program that will load and display a picture generated by the *Picture* program. A bash scripts is provided as an exemple to load the picture and the loader on an image disk. [AppleCommander](https://applecommander.github.io/) is required to do so. Once in ProDOS, just type *-DISPLAY*.
|
||||
|
||||
For more information about the "Hires" format and its limitations, you can refer to my [website](https://www.xtof.info/hires-graphics-apple-ii.html).
|
||||
__Note:__ For more information about the "Hires" format and its limitations, you can refer to my [website](https://www.xtof.info/hires-graphics-apple-ii.html).
|
||||
|
||||
__Note:__
|
||||
|
||||
## Windows / Linux projects (libHires, Picture, Tile)
|
||||
### Dependencies
|
||||
|
||||
* Magick++
|
||||
* On Windows, you have provide an environment variable called *MAGICK_HOME* and pointing to the ImageMagick folder.
|
||||
* Magick++, from ImageMagick 6
|
||||
* On Windows
|
||||
* Download ImageMagick 6 from the [official website](https://legacy.imagemagick.org/script/install-source.php)
|
||||
* Compile it in *Dynamic Multithreaded*
|
||||
* Provide an environment variable called *MAGICK_HOME* and pointing to the root ImageMagick folder.
|
||||
* Copy *ImageMagick-config* from the *script/* folder to *MAGICK_HOME*
|
||||
* On Linux, install libmagick++-dev for version 6
|
||||
> sudo apt install libmagick++-6.q16-dev
|
||||
|
||||
|
@ -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)
|
@ -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
|
9
Rgb2Hires_PC/scripts/ImageMagick-config.cmake
Normal file
9
Rgb2Hires_PC/scripts/ImageMagick-config.cmake
Normal file
@ -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()
|
||||
|
9
Rgb2Hires_PC/scripts/copy_im_db_dlls.bat
Normal file
9
Rgb2Hires_PC/scripts/copy_im_db_dlls.bat
Normal file
@ -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
|
9
Rgb2Hires_PC/scripts/copy_im_rl_dlls.bat
Normal file
9
Rgb2Hires_PC/scripts/copy_im_rl_dlls.bat
Normal file
@ -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
|
@ -6,6 +6,16 @@ using namespace std;
|
||||
namespace RgbToHires
|
||||
{
|
||||
|
||||
const std::array<const uint16_t, 192 / 8> 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<const uint16_t, 8> Picture::_lineOffsets = {
|
||||
0x0, 0x400, 0x800, 0xc00, 0x1000, 0x1400, 0x1800, 0x1c00
|
||||
};
|
||||
|
||||
Picture::Picture(const ImageQuantized& source)
|
||||
{
|
||||
auto pixel_src = source.getConstPixels(0u, 0u, WIDTH, HEIGHT);
|
||||
|
@ -47,14 +47,8 @@ namespace RgbToHires
|
||||
using Blob = std::array<LineHr, NB_LINES_PER_SCREEN>;
|
||||
|
||||
Blob _blob; ///< A frame ordered buffer of hires data
|
||||
static constexpr std::array<const uint16_t, 192 / 8> _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<const uint16_t, 8> _lineOffsets = {
|
||||
0x0, 0x400, 0x800, 0xc00, 0x1000, 0x1400, 0x1800, 0x1c00
|
||||
};
|
||||
static const std::array<const uint16_t, 192 / 8> _lineAdresses;
|
||||
static const std::array<const uint16_t, 8> _lineOffsets;
|
||||
std::map<const uint16_t, const LineHr*> _hrOrderedLines; ///< map<adress,line's data>
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user