commit
c5f0d57a7d
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,41 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{7FD42DF7-442E-479A-BA76-D0022F99702A}|ofx_scanview.vcxproj|E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{7FD42DF7-442E-479A-BA76-D0022F99702A}|ofx_scanview.vcxproj|solutionrelative:src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 1,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{6324226f-61b6-4f28-92ee-18d4b5fe1e48}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "main.cpp",
|
||||
"DocumentMoniker": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp",
|
||||
"RelativeDocumentMoniker": "src\\main.cpp",
|
||||
"ToolTip": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp",
|
||||
"RelativeToolTip": "src\\main.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2026-03-06T01:04:05.856Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{7FD42DF7-442E-479A-BA76-D0022F99702A}|ofx_scanview.vcxproj|E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{7FD42DF7-442E-479A-BA76-D0022F99702A}|ofx_scanview.vcxproj|solutionrelative:src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 1,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{6324226f-61b6-4f28-92ee-18d4b5fe1e48}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "main.cpp",
|
||||
"DocumentMoniker": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp",
|
||||
"RelativeDocumentMoniker": "src\\main.cpp",
|
||||
"ToolTip": "E:\\Work\\OpenFrameWorks\\of_v0.12.0_vs_release\\apps\\myApps\\ofx_scanview\\src\\main.cpp",
|
||||
"RelativeToolTip": "src\\main.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2026-03-06T01:04:05.856Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
ofxJSON-master
|
||||
Binary file not shown.
@ -0,0 +1,8 @@
|
||||
{
|
||||
"scanDirPath": "C:/Users/Indigo/Documents/scan",
|
||||
"scanDirCheckDurationSecf": 1.0,
|
||||
"numScanFilesToKeep": 5,
|
||||
"numWarpFilesToKeep": 10,
|
||||
"fadeDurationSec": 5.0,
|
||||
"transitionDelaySec": 5.0
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,8 @@
|
||||
// Icon Resource Definition
|
||||
#define MAIN_ICON 102
|
||||
|
||||
#if defined(_DEBUG)
|
||||
MAIN_ICON ICON "icon_debug.ico"
|
||||
#else
|
||||
MAIN_ICON ICON "icon.ico"
|
||||
#endif
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,19 @@
|
||||
ofApp.cpp
|
||||
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\utils\ofUtils.h(1,1): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
|
||||
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofVec3f.h(1,1): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
|
||||
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofVec2f.h(1,1): warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오.
|
||||
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(326,1): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
|
||||
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(331,1): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
|
||||
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(912,12): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
|
||||
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(913,12): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
|
||||
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(914,12): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
|
||||
E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\openFrameworks\math\ofMatrix4x4.h(915,12): warning C4267: '인수': 'size_t'에서 'int'(으)로 변환하면서 데이터가 손실될 수 있습니다.
|
||||
LINK : warning LNK4075: '/INCREMENTAL'이(가) '/FORCE' 사양으로 인해 무시됩니다.
|
||||
ofx_scanview.vcxproj -> E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\bin\ofx_scanview_debug.exe
|
||||
|
||||
2 E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\fmod\lib\vs\x64\
|
||||
*추가 파일 6942208 E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\bin\FreeImage.dll
|
||||
|
||||
1 E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\libs\FreeImage\lib\vs\x64\
|
||||
*추가 파일 1826304 E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\bin\fmod.dll
|
||||
*추가 파일 2041856 E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\bin\fmodL.dll
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
PlatformToolSet=v142:VCToolArchitecture=Native64Bit:VCToolsVersion=14.29.30133:TargetPlatformVersion=10.0.26100.0:
|
||||
Debug|x64|E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\|
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project>
|
||||
<ProjectOutputs>
|
||||
<ProjectOutput>
|
||||
<FullPath>E:\Work\OpenFrameWorks\of_v0.12.0_vs_release\apps\myApps\ofx_scanview\bin\ofx_scanview_debug.exe</FullPath>
|
||||
</ProjectOutput>
|
||||
</ProjectOutputs>
|
||||
<ContentFiles />
|
||||
<SatelliteDlls />
|
||||
<NonRecipeFileRefs />
|
||||
</Project>
|
||||
Binary file not shown.
@ -0,0 +1,25 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ofx_scanview", "ofx_scanview.vcxproj", "{7FD42DF7-442E-479A-BA76-D0022F99702A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openframeworksLib", "..\..\..\libs\openFrameworksCompiled\project\vs\openframeworksLib.vcxproj", "{5837595D-ACA9-485C-8E76-729040CE4B0B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|x64.Build.0 = Debug|x64
|
||||
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|x64.ActiveCfg = Release|x64
|
||||
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|x64.Build.0 = Release|x64
|
||||
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|x64.Build.0 = Debug|x64
|
||||
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|x64.ActiveCfg = Release|x64
|
||||
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@ -0,0 +1,136 @@
|
||||
<?xml version="1.0"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'==''">
|
||||
<LatestTargetPlatformVersion>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))</LatestTargetPlatformVersion>
|
||||
<WindowsTargetPlatformVersion Condition="'$(WindowsTargetPlatformVersion)' == ''">$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
|
||||
<TargetPlatformVersion>$(WindowsTargetPlatformVersion)</TargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{7FD42DF7-442E-479A-BA76-D0022F99702A}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>ofx_scanview</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\..\libs\openFrameworksCompiled\project\vs\openFrameworksRelease.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\..\..\libs\openFrameworksCompiled\project\vs\openFrameworksDebug.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>bin\</OutDir>
|
||||
<IntDir>obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<TargetName>$(ProjectName)_debug</TargetName>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<GenerateManifest>true</GenerateManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>bin\</OutDir>
|
||||
<IntDir>obj\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);src;..\..\..\addons\ofxJSON-master\libs;..\..\..\addons\ofxJSON-master\libs\jsoncpp;..\..\..\addons\ofxJSON-master\libs\jsoncpp\include;..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json;..\..\..\addons\ofxJSON-master\libs\jsoncpp\src;..\..\..\addons\ofxJSON-master\src</AdditionalIncludeDirectories>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<ObjectFileName>$(IntDir)\Build\%(RelativeDir)\$(Configuration)\</ObjectFileName>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>
|
||||
</Link>
|
||||
<PostBuildEvent />
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);src;..\..\..\addons\ofxJSON-master\libs;..\..\..\addons\ofxJSON-master\libs\jsoncpp;..\..\..\addons\ofxJSON-master\libs\jsoncpp\include;..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json;..\..\..\addons\ofxJSON-master\libs\jsoncpp\src;..\..\..\addons\ofxJSON-master\src</AdditionalIncludeDirectories>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
<ObjectFileName>$(IntDir)\Build\%(RelativeDir)\$(Configuration)\</ObjectFileName>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>
|
||||
</Link>
|
||||
<PostBuildEvent />
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\main.cpp" />
|
||||
<ClCompile Include="src\ofApp.cpp" />
|
||||
<ClCompile Include="..\..\..\addons\ofxJSON-master\src\ofxJSONElement.cpp" />
|
||||
<ClCompile Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\src\jsoncpp.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\ofApp.h" />
|
||||
<ClInclude Include="..\..\..\addons\ofxJSON-master\src\ofxJSON.h" />
|
||||
<ClInclude Include="..\..\..\addons\ofxJSON-master\src\ofxJSONElement.h" />
|
||||
<ClInclude Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json\json-forwards.h" />
|
||||
<ClInclude Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json\json.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="$(OF_ROOT)\libs\openFrameworksCompiled\project\vs\openframeworksLib.vcxproj">
|
||||
<Project>{5837595d-aca9-485c-8e76-729040ce4b0b}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="icon.rc">
|
||||
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/D_DEBUG %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalIncludeDirectories>$(OF_ROOT)\libs\openFrameworksCompiled\project\vs</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<UserProperties RESOURCE_FILE="icon.rc" />
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
@ -0,0 +1,75 @@
|
||||
<?xml version="1.0"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\ofApp.cpp">
|
||||
<Filter>src</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\main.cpp">
|
||||
<Filter>src</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\main.cpp">
|
||||
<Filter>src</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\ofApp.cpp">
|
||||
<Filter>src</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\addons\ofxJSON-master\src\ofxJSONElement.cpp">
|
||||
<Filter>addons\ofxJSON-master\src</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\src\jsoncpp.cpp">
|
||||
<Filter>addons\ofxJSON-master\libs\jsoncpp\src</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="src">
|
||||
<UniqueIdentifier>{d8376475-7454-4a24-b08a-aac121d3ad6f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="addons">
|
||||
<UniqueIdentifier>{4EC14D22--CE7-E-49-27-B-932-B4FAB3FFF5E5}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="addons\ofxJSON-master">
|
||||
<UniqueIdentifier>{ADCCFEFE--0CF-E-4C-A3-8-2DB-A4931D49920D}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="addons\ofxJSON-master\src">
|
||||
<UniqueIdentifier>{2C274A7D--153-2-48-FD-8-3E0-F227E5A7C233}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="addons\ofxJSON-master\libs">
|
||||
<UniqueIdentifier>{E70EF5EC--3DE-8-44-9E-8-2AC-BE2A495023F9}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="addons\ofxJSON-master\libs\jsoncpp">
|
||||
<UniqueIdentifier>{9CDDD1CF--F49-F-40-7A-8-67A-DAC66879FD23}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="addons\ofxJSON-master\libs\jsoncpp\include">
|
||||
<UniqueIdentifier>{F11E7225--17F-5-4B-08-8-346-1A65CBCEB04A}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="addons\ofxJSON-master\libs\jsoncpp\include\json">
|
||||
<UniqueIdentifier>{41F436D1--33F-1-43-89-A-21C-175964D96835}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="addons\ofxJSON-master\libs\jsoncpp\src">
|
||||
<UniqueIdentifier>{5F0FCF9F--253-2-4B-2E-8-05A-9B9A82A90697}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\ofApp.h">
|
||||
<Filter>src</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\ofApp.h">
|
||||
<Filter>src</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\addons\ofxJSON-master\src\ofxJSON.h">
|
||||
<Filter>addons\ofxJSON-master\src</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\addons\ofxJSON-master\src\ofxJSONElement.h">
|
||||
<Filter>addons\ofxJSON-master\src</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json\json-forwards.h">
|
||||
<Filter>addons\ofxJSON-master\libs\jsoncpp\include\json</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\addons\ofxJSON-master\libs\jsoncpp\include\json\json.h">
|
||||
<Filter>addons\ofxJSON-master\libs\jsoncpp\include\json</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="icon.rc" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LocalDebuggerWorkingDirectory>$(ProjectDir)/bin</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LocalDebuggerWorkingDirectory>$(ProjectDir)/bin</LocalDebuggerWorkingDirectory>
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@ -0,0 +1,10 @@
|
||||
#include "ofMain.h"
|
||||
#include "ofApp.h"
|
||||
|
||||
int main(){
|
||||
ofGLWindowSettings settings;
|
||||
settings.setSize(1920, 1080);
|
||||
settings.windowMode = OF_FULLSCREEN;
|
||||
ofCreateWindow(settings);
|
||||
ofRunApp(new ofApp());
|
||||
}
|
||||
@ -0,0 +1,203 @@
|
||||
#include "ofApp.h"
|
||||
|
||||
//--------------------------------------------------------------
|
||||
void ofApp::setup(){
|
||||
ofSetFrameRate(60);
|
||||
ofSetBackgroundColor(0);
|
||||
ofHideCursor();
|
||||
|
||||
hasCurrentImage = false;
|
||||
isFading = false;
|
||||
isWaitingToFade = false;
|
||||
waitStartTime = 0.0;
|
||||
fadeAlpha = 255.0;
|
||||
nextFadeAlpha = 0.0;
|
||||
lastCheckTime = 0.0;
|
||||
|
||||
loadSettings();
|
||||
|
||||
// Startup: show the most recently created file
|
||||
vector<ofFile> files = getImageFiles();
|
||||
if (!files.empty()) {
|
||||
currentFilePath = files.back().getAbsolutePath();
|
||||
currentImage.load(currentFilePath);
|
||||
hasCurrentImage = true;
|
||||
fadeAlpha = 255.0;
|
||||
ofLogNotice("ofApp") << "Startup image: " << currentFilePath;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
void ofApp::loadSettings(){
|
||||
ofxJSONElement json;
|
||||
if (json.open("settings.json")) {
|
||||
scanDirPath = json["scanDirPath"].asString();
|
||||
scanDirCheckDurationSecf = json["scanDirCheckDurationSecf"].asFloat();
|
||||
numScanFilesToKeep = json["numScanFilesToKeep"].asInt();
|
||||
numWarpFilesToKeep = json["numWarpFilesToKeep"].asInt();
|
||||
fadeDurationSec = json["fadeDurationSec"].asFloat();
|
||||
transitionDelaySec = json["transitionDelaySec"].asFloat();
|
||||
ofLogNotice("ofApp") << "Settings loaded - scanDir: " << scanDirPath;
|
||||
} else {
|
||||
ofLogError("ofApp") << "Failed to load settings.json, using defaults";
|
||||
scanDirPath = "";
|
||||
scanDirCheckDurationSecf = 1.0;
|
||||
numScanFilesToKeep = 5;
|
||||
numWarpFilesToKeep = 10;
|
||||
fadeDurationSec = 2.0;
|
||||
transitionDelaySec = 2.0;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
vector<ofFile> ofApp::getImageFiles(){
|
||||
vector<ofFile> imageFiles;
|
||||
ofDirectory dir(scanDirPath);
|
||||
if (!dir.exists()) {
|
||||
ofLogWarning("ofApp") << "Scan directory does not exist: " << scanDirPath;
|
||||
return imageFiles;
|
||||
}
|
||||
|
||||
dir.allowExt("jpg");
|
||||
dir.allowExt("jpeg");
|
||||
dir.allowExt("png");
|
||||
dir.allowExt("bmp");
|
||||
dir.allowExt("tif");
|
||||
dir.allowExt("tiff");
|
||||
dir.allowExt("gif");
|
||||
dir.listDir();
|
||||
|
||||
// Sort by filename (yyyy-mm-dd-HH-mm-ss format, oldest first)
|
||||
for (int i = 0; i < dir.size(); i++) {
|
||||
imageFiles.push_back(dir.getFile(i));
|
||||
}
|
||||
std::sort(imageFiles.begin(), imageFiles.end(), [](const ofFile& a, const ofFile& b){
|
||||
return a.getBaseName() < b.getBaseName();
|
||||
});
|
||||
|
||||
return imageFiles;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
void ofApp::checkForNewImages(){
|
||||
vector<ofFile> files = getImageFiles();
|
||||
if (files.empty()) return;
|
||||
|
||||
string newestFile = files.back().getAbsolutePath();
|
||||
|
||||
// New image detected
|
||||
if (newestFile != currentFilePath && !isFading && !isWaitingToFade) {
|
||||
pendingFilePath = newestFile;
|
||||
isWaitingToFade = true;
|
||||
waitStartTime = ofGetElapsedTimef();
|
||||
ofLogNotice("ofApp") << "New image detected, waiting " << transitionDelaySec << "s: " << newestFile;
|
||||
}
|
||||
|
||||
cleanupOldFiles();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
void ofApp::cleanupOldFiles(){
|
||||
vector<ofFile> files = getImageFiles();
|
||||
int numToDelete = (int)files.size() - numScanFilesToKeep;
|
||||
|
||||
for (int i = 0; i < numToDelete; i++) {
|
||||
string path = files[i].getAbsolutePath();
|
||||
ofFile f(path);
|
||||
if (f.remove()) {
|
||||
ofLogNotice("ofApp") << "Deleted old file: " << path;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
void ofApp::update(){
|
||||
// Check folder at interval
|
||||
float now = ofGetElapsedTimef();
|
||||
if (now - lastCheckTime >= scanDirCheckDurationSecf) {
|
||||
lastCheckTime = now;
|
||||
checkForNewImages();
|
||||
}
|
||||
|
||||
// Transition delay
|
||||
if (isWaitingToFade) {
|
||||
float elapsed = ofGetElapsedTimef() - waitStartTime;
|
||||
if (elapsed >= transitionDelaySec) {
|
||||
if (nextImage.load(pendingFilePath)) {
|
||||
isFading = true;
|
||||
nextFadeAlpha = 0.0;
|
||||
}
|
||||
currentFilePath = pendingFilePath;
|
||||
isWaitingToFade = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Fade transition: fade out to black, then fade in
|
||||
if (isFading) {
|
||||
float halfDuration = (fadeDurationSec > 0.0f) ? fadeDurationSec * 0.5f : 0.001f;
|
||||
float fadeAmount = (255.0f / halfDuration) * ofGetLastFrameTime();
|
||||
|
||||
if (fadeAlpha > 0.0) {
|
||||
// Phase 1: Fade out current image to black
|
||||
fadeAlpha -= fadeAmount;
|
||||
if (fadeAlpha < 0.0) fadeAlpha = 0.0;
|
||||
} else {
|
||||
// Phase 2: Fade in next image from black
|
||||
nextFadeAlpha += fadeAmount;
|
||||
if (nextFadeAlpha > 255.0) nextFadeAlpha = 255.0;
|
||||
}
|
||||
|
||||
// Transition complete
|
||||
if (fadeAlpha <= 0.0 && nextFadeAlpha >= 255.0) {
|
||||
currentImage = nextImage;
|
||||
fadeAlpha = 255.0;
|
||||
nextFadeAlpha = 0.0;
|
||||
isFading = false;
|
||||
hasCurrentImage = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
void ofApp::fitImageToScreen(ofImage& img, float x, float y, float w, float h){
|
||||
if (!img.isAllocated()) return;
|
||||
|
||||
float imgW = img.getWidth();
|
||||
float imgH = img.getHeight();
|
||||
float scale = min(w / imgW, h / imgH);
|
||||
float drawW = imgW * scale;
|
||||
float drawH = imgH * scale;
|
||||
float drawX = x + (w - drawW) * 0.5;
|
||||
float drawY = y + (h - drawH) * 0.5;
|
||||
|
||||
img.draw(drawX, drawY, drawW, drawH);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
void ofApp::draw(){
|
||||
ofSetBackgroundColor(0);
|
||||
|
||||
float screenW = ofGetWidth();
|
||||
float screenH = ofGetHeight();
|
||||
|
||||
// Draw current image
|
||||
if (hasCurrentImage && currentImage.isAllocated()) {
|
||||
ofSetColor(255, 255, 255, (int)fadeAlpha);
|
||||
fitImageToScreen(currentImage, 0, 0, screenW, screenH);
|
||||
}
|
||||
|
||||
// Draw next image (during fade)
|
||||
if (isFading && nextImage.isAllocated()) {
|
||||
ofSetColor(255, 255, 255, (int)nextFadeAlpha);
|
||||
fitImageToScreen(nextImage, 0, 0, screenW, screenH);
|
||||
}
|
||||
|
||||
ofSetColor(255);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
void ofApp::keyPressed(int key){
|
||||
if (key == OF_KEY_ESC) {
|
||||
ofExit();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
#include "ofMain.h"
|
||||
#include "ofxJSON.h"
|
||||
|
||||
class ofApp : public ofBaseApp {
|
||||
public:
|
||||
void setup();
|
||||
void update();
|
||||
void draw();
|
||||
void keyPressed(int key);
|
||||
|
||||
private:
|
||||
// Settings
|
||||
string scanDirPath;
|
||||
float scanDirCheckDurationSecf;
|
||||
int numScanFilesToKeep;
|
||||
int numWarpFilesToKeep;
|
||||
float fadeDurationSec;
|
||||
float transitionDelaySec;
|
||||
|
||||
void loadSettings();
|
||||
|
||||
// Folder monitoring
|
||||
float lastCheckTime;
|
||||
vector<ofFile> getImageFiles();
|
||||
string currentFilePath;
|
||||
void checkForNewImages();
|
||||
|
||||
// Transition delay
|
||||
bool isWaitingToFade;
|
||||
float waitStartTime;
|
||||
string pendingFilePath;
|
||||
|
||||
// File management
|
||||
void cleanupOldFiles();
|
||||
|
||||
// Image display
|
||||
ofImage currentImage;
|
||||
ofImage nextImage;
|
||||
bool hasCurrentImage;
|
||||
bool isFading;
|
||||
float fadeAlpha; // 0.0 ~ 255.0, current image alpha
|
||||
float nextFadeAlpha; // 0.0 ~ 255.0, next image alpha
|
||||
|
||||
void fitImageToScreen(ofImage& img, float x, float y, float w, float h);
|
||||
};
|
||||
Loading…
Reference in New Issue