diff options
Diffstat (limited to 'platform/winrt')
20 files changed, 860 insertions, 554 deletions
diff --git a/platform/winrt/generate.bat b/platform/winrt/generate.bat index 681eaf66..0615a5fb 100644 --- a/platform/winrt/generate.bat +++ b/platform/winrt/generate.bat @@ -14,7 +14,7 @@ if not exist cmapdump.exe goto usage if not exist cquote.exe goto usage if not exist bin2hex.exe goto usage -if not exist generated/gen_font_base14.h fontdump.exe generated/gen_font_base14.h resources/fonts/*.cff +if not exist generated/gen_font_base14.h fontdump.exe generated/gen_font_base14.h resources/fonts/urw/*.cff if not exist generated/gen_font_droid.h fontdump.exe generated/gen_font_droid.h resources/fonts/droid/DroidSans.ttf resources/fonts/droid/DroidSansMono.ttf if not exist generated/gen_font_cjk.h fontdump.exe generated/gen_font_cjk.h resources/fonts/droid/DroidSansFallback.ttf if not exist generated/gen_font_cjk_full.h fontdump.exe generated/gen_font_cjk_full.h resources/fonts/droid/DroidSansFallbackFull.ttf diff --git a/platform/winrt/generated.vcxproj.filters b/platform/winrt/generated.vcxproj.filters index 79c6c9d3..94e3a8e0 100644 --- a/platform/winrt/generated.vcxproj.filters +++ b/platform/winrt/generated.vcxproj.filters @@ -38,9 +38,6 @@ <ClInclude Include="..\..\generated\gen_cmap_korea.h"> <Filter>generated</Filter> </ClInclude> - <ClInclude Include="..\..\generated\gen_font_base14.h"> - <Filter>generated</Filter> - </ClInclude> <ClInclude Include="..\..\generated\gen_font_cjk.h"> <Filter>generated</Filter> </ClInclude> @@ -53,6 +50,9 @@ <ClInclude Include="..\..\generated\gen_js_util.h"> <Filter>generated</Filter> </ClInclude> + <ClInclude Include="..\..\generated\gen_font_base14.h"> + <Filter>generated</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <None Include="generate.bat" /> diff --git a/platform/winrt/libmupdf-nov8_winRT.vcxproj b/platform/winrt/libmupdf-nov8_winRT.vcxproj index 6cb6b4d6..373999a6 100644 --- a/platform/winrt/libmupdf-nov8_winRT.vcxproj +++ b/platform/winrt/libmupdf-nov8_winRT.vcxproj @@ -181,7 +181,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -194,7 +194,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -207,7 +207,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -220,7 +220,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -233,7 +233,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -246,7 +246,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -259,7 +259,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -272,7 +272,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -285,7 +285,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\include;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> diff --git a/platform/winrt/libmupdf_winRT.vcxproj b/platform/winrt/libmupdf_winRT.vcxproj index 76fa65a7..78fae974 100644 --- a/platform/winrt/libmupdf_winRT.vcxproj +++ b/platform/winrt/libmupdf_winRT.vcxproj @@ -366,7 +366,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\src\lib\openjp2;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>DEBUG=1;_WINRT;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> @@ -380,7 +380,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\src\lib\openjp2;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>MEMENTO=1;DEBUG=1;_WINRT;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> @@ -394,7 +394,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\src\lib\openjp2;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>_WINRT;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> @@ -409,7 +409,7 @@ <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> <PreprocessorDefinitions>DEBUG=1;_WINRT;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <AdditionalIncludeDirectories>..\..\scripts;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\src\lib\openjp2;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -423,7 +423,7 @@ <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> <PreprocessorDefinitions>MEMENTO=1;DEBUG=1;_WINRT;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <AdditionalIncludeDirectories>..\..\scripts;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\src\lib\openjp2;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -436,7 +436,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\src\lib\openjp2;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>_WINRT;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> @@ -450,7 +450,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\src\lib\openjp2;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>DEBUG=1;_WINRT;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> @@ -464,7 +464,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\src\lib\openjp2;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>MEMENTO=1;DEBUG=1;_WINRT;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> @@ -478,7 +478,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\src\lib\openjp2;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\ucdn;..\..\include;..\..\generated;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>_WINRT;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> diff --git a/platform/winrt/libthirdparty_winRT.vcxproj b/platform/winrt/libthirdparty_winRT.vcxproj index 1def5f1b..9d3a762a 100644 --- a/platform/winrt/libthirdparty_winRT.vcxproj +++ b/platform/winrt/libthirdparty_winRT.vcxproj @@ -106,31 +106,31 @@ <ClCompile Include="..\..\thirdparty\jpeg\jquant1.c" /> <ClCompile Include="..\..\thirdparty\jpeg\jquant2.c" /> <ClCompile Include="..\..\thirdparty\jpeg\jutils.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\bio.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\cidx_manager.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\cio.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\dwt.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\event.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\function_list.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\image.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\invert.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\j2k.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\jp2.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\mct.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\mqc.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\openjpeg.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_clock.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\phix_manager.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\pi.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\ppix_manager.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\raw.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t1.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t1_generate_luts.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t2.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\tcd.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\tgt.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\thix_manager.c" /> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\tpix_manager.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\bio.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\cidx_manager.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\cio.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\dwt.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\event.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\function_list.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\image.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\invert.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\j2k.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\j2k_lib.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\jp2.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\mct.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\mqc.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\openjpeg.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\phix_manager.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\pi.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\ppix_manager.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\raw.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\t1.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\t1_generate_luts.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\t2.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\tcd.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\tgt.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\thix_manager.c" /> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\tpix_manager.c" /> <ClCompile Include="..\..\thirdparty\zlib\adler32.c" /> <ClCompile Include="..\..\thirdparty\zlib\compress.c" /> <ClCompile Include="..\..\thirdparty\zlib\crc32.c" /> @@ -229,33 +229,37 @@ <ClInclude Include="..\..\thirdparty\freetype\include\freetype\tttags.h" /> <ClInclude Include="..\..\thirdparty\freetype\include\freetype\ttunpat.h" /> <ClInclude Include="..\..\thirdparty\freetype\include\ft2build.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\bio.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\cidx_manager.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\cio.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\dwt.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\event.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\function_list.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\image.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\indexbox_manager.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\invert.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\j2k.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\jp2.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\mct.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\mqc.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\openjpeg.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_clock.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_includes.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_intmath.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_inttypes.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_malloc.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_stdint.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\pi.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\raw.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t1.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t1_luts.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t2.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\tcd.h" /> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\tgt.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\bio.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\cidx_manager.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\cio.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\dwt.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\event.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\fix.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\function_list.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\image.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\indexbox_manager.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\int.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\invert.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\j2k.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\j2k_lib.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\jp2.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\mct.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\mqc.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\openjpeg.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_config.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_config_private.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_includes.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_intmath.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_inttypes.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_malloc.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_stdint.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\pi.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\raw.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\t1.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\t1_luts.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\t2.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\tcd.h" /> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\tgt.h" /> </ItemGroup> <PropertyGroup Label="Globals"> <ProjectGuid>{c0d1c355-1bee-40e1-9ef4-fd9fffdbf396}</ProjectGuid> @@ -397,8 +401,8 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NO_GETENV;_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -411,7 +415,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> @@ -425,8 +429,8 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NO_GETENV;_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -441,8 +445,8 @@ <SDLCheck>false</SDLCheck> <PrecompiledHeaderFile> </PrecompiledHeaderFile> - <AdditionalIncludeDirectories>..\..\scripts;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NO_GETENV;_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -457,7 +461,7 @@ <SDLCheck>false</SDLCheck> <PrecompiledHeaderFile> </PrecompiledHeaderFile> - <AdditionalIncludeDirectories>..\..\scripts;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> @@ -471,8 +475,8 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NO_GETENV;_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -485,7 +489,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>NO_GETENV;_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> @@ -499,7 +503,7 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> @@ -513,8 +517,8 @@ <PrecompiledHeader>NotUsing</PrecompiledHeader> <CompileAsWinRT>false</CompileAsWinRT> <SDLCheck>false</SDLCheck> - <AdditionalIncludeDirectories>..\..\scripts;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\scripts\freetype;..\..\scripts\jpeg;..\..\scripts\openjpeg;..\..\thirdparty\jbig2dec;..\..\thirdparty\jpeg;..\..\thirdparty\openjpeg\libopenjpeg;..\..\thirdparty\zlib;..\..\thirdparty\freetype\include;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>NO_GETENV;_WINRT;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;OPJ_STATIC;FT_CONFIG_MODULES_H="slimftmodules.h";FT_CONFIG_OPTIONS_H="slimftoptions.h";DEBUG=1;verbose=-1;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <SubSystem>Console</SubSystem> diff --git a/platform/winrt/libthirdparty_winRT.vcxproj.filters b/platform/winrt/libthirdparty_winRT.vcxproj.filters index 77a768da..4817befe 100644 --- a/platform/winrt/libthirdparty_winRT.vcxproj.filters +++ b/platform/winrt/libthirdparty_winRT.vcxproj.filters @@ -25,9 +25,6 @@ <Filter Include="libz"> <UniqueIdentifier>{5e55ef18-6449-49c1-99aa-1cd88b6f4453}</UniqueIdentifier> </Filter> - <Filter Include="libopenjpeg\openjp2"> - <UniqueIdentifier>{3a31ee2f-bdac-4091-a83f-7a6236269aaf}</UniqueIdentifier> - </Filter> <Filter Include="libfreetype\include\freetype\config"> <UniqueIdentifier>{289ce62d-7110-4e8b-8045-72a557f8e6c0}</UniqueIdentifier> </Filter> @@ -39,81 +36,6 @@ </Filter> </ItemGroup> <ItemGroup> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\bio.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\cidx_manager.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\cio.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\dwt.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\event.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\function_list.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\image.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\invert.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\j2k.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\jp2.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\mct.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\mqc.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\openjpeg.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_clock.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\phix_manager.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\pi.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\ppix_manager.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\raw.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t1.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t1_generate_luts.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t2.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\tcd.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\tgt.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\thix_manager.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> - <ClCompile Include="..\..\thirdparty\openjpeg\src\lib\openjp2\tpix_manager.c"> - <Filter>libopenjpeg\openjp2</Filter> - </ClCompile> <ClCompile Include="..\..\thirdparty\freetype\src\base\ftstroke.c"> <Filter>libfreetype\base</Filter> </ClCompile> @@ -345,89 +267,83 @@ <ClCompile Include="..\..\thirdparty\zlib\uncompr.c"> <Filter>libz</Filter> </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\bio.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\cidx_manager.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\cio.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\dwt.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\event.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\function_list.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\image.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\invert.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\j2k.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\j2k_lib.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\jp2.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\mct.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\mqc.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\openjpeg.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\phix_manager.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\pi.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\ppix_manager.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\raw.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\t1.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\t1_generate_luts.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\t2.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\tcd.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\tgt.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\thix_manager.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> + <ClCompile Include="..\..\thirdparty\openjpeg\libopenjpeg\tpix_manager.c"> + <Filter>libopenjpeg</Filter> + </ClCompile> </ItemGroup> <ItemGroup> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\bio.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\cidx_manager.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\cio.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\dwt.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\event.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\function_list.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\image.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\indexbox_manager.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\invert.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\j2k.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\jp2.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\mct.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\mqc.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\openjpeg.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_clock.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_includes.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_intmath.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_inttypes.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_malloc.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\opj_stdint.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\pi.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\raw.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t1.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t1_luts.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\t2.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\tcd.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> - <ClInclude Include="..\..\thirdparty\openjpeg\src\lib\openjp2\tgt.h"> - <Filter>libopenjpeg\openjp2</Filter> - </ClInclude> <ClInclude Include="..\..\thirdparty\freetype\include\ft2build.h"> <Filter>libfreetype\include</Filter> </ClInclude> @@ -686,5 +602,98 @@ <ClInclude Include="..\..\thirdparty\freetype\include\freetype\internal\ftpic.h"> <Filter>libfreetype\include\freetype\internal</Filter> </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\bio.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\cidx_manager.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\cio.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\dwt.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\event.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\fix.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\function_list.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\image.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\indexbox_manager.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\int.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\invert.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\j2k.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\j2k_lib.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\jp2.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\mct.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\mqc.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\openjpeg.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_config.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_config_private.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_includes.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_intmath.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_inttypes.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_malloc.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\opj_stdint.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\pi.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\raw.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\t1.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\t1_luts.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\t2.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\tcd.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> + <ClInclude Include="..\..\thirdparty\openjpeg\libopenjpeg\tgt.h"> + <Filter>libopenjpeg</Filter> + </ClInclude> </ItemGroup> </Project>
\ No newline at end of file diff --git a/platform/winrt/mupdf_cpp/Common/StandardStyles.xaml b/platform/winrt/mupdf_cpp/Common/StandardStyles.xaml index 771d773c..ed4b0ec2 100644 --- a/platform/winrt/mupdf_cpp/Common/StandardStyles.xaml +++ b/platform/winrt/mupdf_cpp/Common/StandardStyles.xaml @@ -452,7 +452,7 @@ </Style> <Style x:Key="ReflowAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> <Setter Property="AutomationProperties.AutomationId" Value="ReflowAppBarButton"/> - <Setter Property="AutomationProperties.Name" Value="Reflow"/> + <Setter Property="AutomationProperties.Name" Value="TextExtract"/> <Setter Property="Content" Value=""/> </Style> <Style x:Key="ZoomInAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"> diff --git a/platform/winrt/mupdf_cpp/MainPage.xaml b/platform/winrt/mupdf_cpp/MainPage.xaml index 30403229..42296f6a 100644 --- a/platform/winrt/mupdf_cpp/MainPage.xaml +++ b/platform/winrt/mupdf_cpp/MainPage.xaml @@ -27,9 +27,9 @@ <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <StackPanel x:Name="LeftPanel" Orientation="Horizontal" HorizontalAlignment="Left" > - <TextBox x:Name="FindBox" Width="200" Height="20" Visibility="Collapsed"/> - <Button x:Name="PrevSearch" Style="{StaticResource PreviousAppBarButtonStyle}" Visibility="Collapsed" Click="SearchPrev"/> - <Button x:Name="NextSearch" Style="{StaticResource NextAppBarButtonStyle}" Visibility="Collapsed" Click="SearchNext"/> + <TextBox x:Name="FindBox" Width="200" Height="20" Margin="2"/> + <Button x:Name="PrevSearch" Style="{StaticResource PreviousAppBarButtonStyle}" Click="SearchPrev"/> + <Button x:Name="NextSearch" Style="{StaticResource NextAppBarButtonStyle}" Click="SearchNext"/> </StackPanel> <StackPanel x:Name="RightPanel" Orientation="Horizontal" HorizontalAlignment="Right"> @@ -184,7 +184,7 @@ </ItemsControl.ItemContainerStyle> <ItemsControl.ItemTemplate> <DataTemplate> - <Rectangle Width="{Binding Path=Width}" Height="{Binding Path=Height}" Fill="{Binding Path=Color}" IsTapEnabled="True" Tapped="LinkTapped"> + <Rectangle Tag="{Binding Path=Index}" Width="{Binding Path=Width}" Height="{Binding Path=Height}" Fill="{Binding Path=Color}" IsTapEnabled="True" Tapped="LinkTapped"> <Rectangle.RenderTransform> <TranslateTransform X="{Binding Path=X}" Y="{Binding Path=Y}"/> </Rectangle.RenderTransform> @@ -207,7 +207,7 @@ </ItemsControl.ItemContainerStyle> <ItemsControl.ItemTemplate> <DataTemplate> - <Rectangle Width="{Binding Path=Width}" Height="{Binding Path=Height}" Fill="{Binding Path=Color}"> + <Rectangle Tag="{Binding Path=Index}" Width="{Binding Path=Width}" Height="{Binding Path=Height}" Fill="{Binding Path=Color}" IsTapEnabled="True" Tapped="LinkTapped"> <Rectangle.RenderTransform> <TranslateTransform X="{Binding Path=X}" Y="{Binding Path=Y}"/> </Rectangle.RenderTransform> @@ -238,6 +238,15 @@ </ListView.Background> </ListView> </Grid> + + <!-- Note that windows webview does not reflow when we scale. It + will only do this with a size change. Unfortunately, the webview + object is special in that it intercepts all actions and passes + nothing to the application for these manipulations. I tried + various things including the use of a webview brush to + capture the current webview but that is a complex issue since + it is a static image in that case. The other option would + be to go to a Rich Text type of view. --> <WebView x:Name="xaml_WebView" HorizontalAlignment="Stretch" Width="Auto" Height="Auto" VerticalAlignment="Stretch" Visibility="Collapsed" ScrollViewer.HorizontalScrollBarVisibility="Visible" @@ -260,6 +269,20 @@ </Border> </StackPanel> + <StackPanel x:Name="xaml_PrintStack" Opacity="1" VerticalAlignment="Center" Margin="0,15" HorizontalAlignment="Center" Visibility="Collapsed"> + <Border BorderThickness="5" BorderBrush="Black" > + <StackPanel Background="LightGray" HorizontalAlignment="Left" Width="756" > + <TextBlock HorizontalAlignment="Center" Margin="10" + Text="Print Progress" FontSize="20"/> + <ProgressBar x:Name="xaml_PrintProgress" Margin="5" Height="15" + IsIndeterminate="False" Maximum="100" VerticalAlignment="Stretch" /> + <Button HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10" Click="HideProgress" Height="39"> + <TextBlock HorizontalAlignment="Center" Text="Hide"/> + </Button> + </StackPanel> + </Border> + </StackPanel> + <StackPanel x:Name="xaml_PasswordStack" Opacity="1" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="Collapsed"> <Border BorderThickness="5" BorderBrush="Black" > <StackPanel Background="LightGray" > diff --git a/platform/winrt/mupdf_cpp/MainPage.xaml.cpp b/platform/winrt/mupdf_cpp/MainPage.xaml.cpp index 3a2fbdc3..c3c8c576 100644 --- a/platform/winrt/mupdf_cpp/MainPage.xaml.cpp +++ b/platform/winrt/mupdf_cpp/MainPage.xaml.cpp @@ -27,7 +27,9 @@ #define ZOOM_IN 0 #define ZOOM_OUT 1 -#define PRINTPREVIEWDPI 96; +#define SEARCH_FIT 672 +#define VS_LARGE 1366 +#define VS_SMALL 500 static float screenScale = 1; @@ -41,6 +43,7 @@ using namespace Windows::UI::Xaml::Media; using namespace Windows::UI::Xaml::Navigation; using namespace Windows::Graphics::Display; using namespace Windows::Graphics::Printing; +using namespace Windows::UI::Core; //****************** Added ***************** using namespace Windows::Storage::Pickers; @@ -95,6 +98,10 @@ MainPage::MainPage() m_page_link_list = ref new Platform::Collections::Vector<IVector<RectList^>^>(); m_text_list = ref new Platform::Collections::Vector<RectList^>(); m_linkset = ref new Platform::Collections::Vector<int>(); + if (m_docPages == nullptr || m_thumbnails == nullptr || + m_page_link_list == nullptr || m_text_list == nullptr || + m_linkset == nullptr) + throw ref new FailureException("Document allocation failed!"); SetUpDirectX(); RegisterForPrinting(); @@ -174,9 +181,9 @@ void MainPage::ExceptionHandler(Object^ sender, UnhandledExceptionEventArgs^ e) if (!this->m_init_done) { /* Windows 8.1 has some weird issues that occur before we have even tried - to open a document. For example rolling the mouse wheel throws an - exception in 8.1 but not 8.0. This is clearly a windows issue. For - now mark as handled and move on which seems to be fine */ + to open a document. For example rolling the mouse wheel throws an + exception in 8.1 but not 8.0. This is clearly a windows issue. For + now mark as handled and move on which seems to be fine */ e->Handled = true; } else @@ -234,28 +241,11 @@ void MainPage::NotifyUser(String^ strMessage, int type) msg->ShowAsync(); } -bool MainPage::EnsureUnsnapped() -{ - // FilePicker APIs will not work if the application is in a snapped state. - // If an app wants to show a FilePicker while snapped, it must attempt to unsnap first - - bool unsnapped = (ApplicationView::Value != ApplicationViewState::Snapped || - ApplicationView::TryUnsnap()); - if (!unsnapped) - { - NotifyUser("Cannot unsnap the application", StatusMessage); - } - return unsnapped; -} - void MainPage::Picker(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) { - if (!EnsureUnsnapped()) - return; - /* If we are actively rendering a document to the print thread then notify the - user that they will need to wait */ - if (m_print_active) + user that they will need to wait */ + if (m_print_active == PRINT_ACTIVE) { int total_pages = GetPrintPageCount(); auto str1 = "Cannot open new file. Currently rendering page " + @@ -291,21 +281,35 @@ void MainPage::UpdatePage(int page_num, InMemoryRandomAccessStream^ ras, { assert(IsMainThread()); - WriteableBitmap ^bmp = ref new WriteableBitmap(ras_size.X, ras_size.Y); + WriteableBitmap ^bmp = ref new WriteableBitmap((int)ras_size.X, (int) ras_size.Y); + if (bmp == nullptr) + { +#ifdef _DEBUG + NotifyUser("BMP UpdatePage Failed Page " + page_num, ErrorMessage); +#endif + return; + } bmp->SetSource(ras); DocumentPage^ doc_page = ref new DocumentPage(); + if (doc_page == nullptr) + { +#ifdef _DEBUG + NotifyUser("doc_page UpdatePage Failed Page " + page_num, ErrorMessage); +#endif + return; + } doc_page->Image = bmp; if (content_type == THUMBNAIL) { - doc_page->Height = ras_size.Y / SCALE_THUMB; - doc_page->Width = ras_size.X / SCALE_THUMB; + doc_page->Height = (int) (ras_size.Y / SCALE_THUMB); + doc_page->Width = (int) (ras_size.X / SCALE_THUMB); } else { - doc_page->Height = ras_size.Y; - doc_page->Width = ras_size.X; + doc_page->Height = (int) ras_size.Y; + doc_page->Width = (int) ras_size.X; } doc_page->Content = content_type; doc_page->PageZoom = zoom_in; @@ -322,22 +326,48 @@ void MainPage::ReplaceImage(int page_num, InMemoryRandomAccessStream^ ras, { assert(IsMainThread()); - WriteableBitmap ^bmp = ref new WriteableBitmap(ras_size.X, ras_size.Y); - bmp->SetSource(ras); + WriteableBitmap ^bmp = ref new WriteableBitmap((int) ras_size.X, (int) ras_size.Y); + if (bmp == nullptr) + { +#ifdef _DEBUG + NotifyUser("BMP ReplaceImage Failed Page " + page_num, ErrorMessage); +#endif + return; + } + bmp->SetSource(ras); DocumentPage^ doc_page = this->m_docPages->GetAt(page_num); + if (doc_page == nullptr) + { +#ifdef _DEBUG + NotifyUser("doc_page ReplaceImage Failed Page " + page_num, ErrorMessage); +#endif + return; + } doc_page->Image = bmp; - - doc_page->Height = ras_size.Y; - doc_page->Width = ras_size.X; + doc_page->Height = (int) ras_size.Y; + doc_page->Width = (int) ras_size.X; doc_page->PageZoom = page_zoom; } -Point MainPage::ComputePageSize(spatial_info_t spatial_info, int page_num) +int MainPage::ComputePageSize(spatial_info_t spatial_info, int page_num, + Point *point) { Point screenSize; Point pageSize; - Point size = mu_doc->GetPageSize(page_num); + Point size; + + try + { + size = mu_doc->GetPageSize(page_num); + } + catch (Exception ^except) + { +#ifdef _DEBUG + NotifyUser(except->Message, ErrorMessage); +#endif + return E_FAILURE; + } screenSize = spatial_info.size; screenSize.Y *= screenScale; @@ -346,10 +376,11 @@ Point MainPage::ComputePageSize(spatial_info_t spatial_info, int page_num) float hscale = screenSize.X / size.X; float vscale = screenSize.Y / size.Y; float scale = min(hscale, vscale); - pageSize.X = size.X * scale * spatial_info.scale_factor; - pageSize.Y = size.Y * scale * spatial_info.scale_factor; + pageSize.X = (float) (size.X * scale * spatial_info.scale_factor); + pageSize.Y = (float) (size.Y * scale * spatial_info.scale_factor); - return pageSize; + *point = pageSize; + return S_ISOK; } static Point fitPageToScreen(Point page, Point screen) @@ -369,8 +400,8 @@ spatial_info_t MainPage::InitSpatial(double scale) { spatial_info_t value; - value.size.Y = this->ActualHeight; - value.size.X = this->ActualWidth; + value.size.Y = (float) (this->ActualHeight); + value.size.X = (float) (this->ActualWidth); value.scale_factor = scale; return value; @@ -411,7 +442,7 @@ void MainPage::ReleasePages(int old_page, int new_page) { if (k >= 0 && k < this->m_num_pages) { - SetThumb(k, true); + SetThumb(k); } } } @@ -419,34 +450,75 @@ void MainPage::ReleasePages(int old_page, int new_page) /* Return this page from a full res image to the thumb image or only set to thumb if it has not already been set */ -void MainPage::SetThumb(int page_num, bool replace) +void MainPage::SetThumb(unsigned int page_num) { /* See what is there now */ auto doc = this->m_docPages->GetAt(page_num); - if (doc->Content == THUMBNAIL) return; - if (doc->Content == FULL_RESOLUTION && replace == false) return; + if (doc->Content == THUMBNAIL && doc->PageZoom == m_doczoom) return; if (this->m_thumbnails->Size > page_num) { m_page_update = true; auto thumb_page = this->m_thumbnails->GetAt(page_num); - thumb_page->Height = thumb_page->NativeHeight * m_doczoom; - thumb_page->Width = thumb_page->NativeWidth * m_doczoom; + thumb_page->Height = (int)(thumb_page->NativeHeight * m_doczoom); + thumb_page->Width = (int)(thumb_page->NativeWidth * m_doczoom); + thumb_page->PageZoom = 1.0; this->m_docPages->SetAt(page_num, thumb_page); m_page_update = false; } } +/* Initializes the flipview items with the thumb pages as they become + available */ +void MainPage::SetThumbInit(unsigned int page_num) +{ + /* See what is there now */ + auto doc = this->m_docPages->GetAt(page_num); + if (doc->Content == THUMBNAIL || doc->Content == FULL_RESOLUTION) return; + + if (this->m_thumbnails->Size > page_num) + { + doc->Content = THUMBNAIL; + auto thumb_page = this->m_thumbnails->GetAt(page_num); + thumb_page->Height = (int)(thumb_page->NativeHeight); + thumb_page->Width = (int)(thumb_page->NativeWidth); + doc->Image = thumb_page->Image; + doc->Height = thumb_page->Height; + doc->Width = thumb_page->Width; + doc->PageZoom = 1.0; + } +} + /* Create white image for us to use as place holder in large document for flip - view filling instead of the thumbnail image */ + view filling instead of the thumbnail image */ void MainPage::CreateBlank(int width, int height) { Array<unsigned char>^ bmp_data = ref new Array<unsigned char>(height * 4 * width); + if (bmp_data == nullptr) + { +#ifdef _DEBUG + NotifyUser("CreateBlank failed", ErrorMessage); +#endif + return; + } /* Set up the memory stream */ WriteableBitmap ^bmp = ref new WriteableBitmap(width, height); InMemoryRandomAccessStream ^ras = ref new InMemoryRandomAccessStream(); + if (bmp == nullptr || ras == nullptr) + { +#ifdef _DEBUG + NotifyUser("CreateBlank failed", ErrorMessage); +#endif + return; + } DataWriter ^dw = ref new DataWriter(ras->GetOutputStreamAt(0)); - /* Go ahead and write our header data into the memory stream */ + if (dw == nullptr) + { +#ifdef _DEBUG + NotifyUser("CreateBlank failed", ErrorMessage); +#endif + return; + } /* Go ahead and write our header data into the memory stream */ Prepare_bmp(width, height, dw); /* Set the data to all white */ @@ -466,8 +538,8 @@ void MainPage::CreateBlank(int width, int height) void MainPage::SetFlipView() { - int height = this->ActualHeight; - int width = this->ActualWidth; + int height = (int) (this->ActualHeight); + int width = (int) (this->ActualWidth); CreateBlank(BLANK_WIDTH, BLANK_HEIGHT); /* Set the current flip view mode */ @@ -478,7 +550,7 @@ void MainPage::SetFlipView() } /* Clean up everything as we are opening a new document after having another - one open */ + one open */ void MainPage::CleanUp() { m_init_done = false; @@ -521,7 +593,7 @@ void MainPage::CleanUp() m_rectlist_page = -1; m_Progress = 0.0; m_doczoom = 1.0; - m_print_active = false; + m_print_active = PRINT_INACTIVE; m_curr_print_count = 1; this->xaml_PageSlider->Minimum = m_slider_min; @@ -540,60 +612,61 @@ void MainPage::RenderThumbs() auto ui = task_continuation_context::use_current(); this->m_ren_status = REN_THUMBS; - Vector<DocumentPage^>^ thumbnails = m_thumbnails; - auto task_thumb = create_task([spatial_info, num_pages, thumbnails, this, ui, token]()-> int + auto task_thumb = create_task([spatial_info, num_pages, this, ui, token]()-> int { spatial_info_t spatial_info_local = spatial_info; + Point ras_size; + Array<unsigned char>^ bmp_data; + int code; + + /* The renderings run on a background thread */ + assert(IsBackgroundThread()); spatial_info_local.scale_factor = SCALE_THUMB; for (int k = 0; k < num_pages; k++) { - Point ras_size = ComputePageSize(spatial_info_local, k); - auto task2 = create_task(mu_doc->RenderPageAsync(k, ras_size.X, ras_size.Y, false)); - - task2.then([this, k, thumbnails, ras_size](InMemoryRandomAccessStream^ ras) + if (ComputePageSize(spatial_info_local, k, &ras_size) == S_ISOK) { - assert(IsMainThread()); - WriteableBitmap ^bmp = ref new WriteableBitmap(ras_size.X, ras_size.Y); - bmp->SetSource(ras); + code = mu_doc->RenderPageBitmapSync(k, (int)ras_size.X, + (int)ras_size.Y, false, true, &bmp_data); + DocumentPage^ doc_page = ref new DocumentPage(); - doc_page->Image = bmp; - doc_page->Height = ras_size.Y / SCALE_THUMB; - doc_page->Width = ras_size.X / SCALE_THUMB; - doc_page->NativeHeight = ras_size.Y / SCALE_THUMB; - doc_page->NativeWidth = ras_size.X / SCALE_THUMB; - doc_page->Content = THUMBNAIL; + doc_page->Height = (int)(ras_size.Y / SCALE_THUMB); + doc_page->Width = (int)(ras_size.X / SCALE_THUMB); + doc_page->NativeHeight = (int)(ras_size.Y / SCALE_THUMB); + doc_page->NativeWidth = (int)(ras_size.X / SCALE_THUMB); doc_page->TextBox = nullptr; doc_page->LinkBox = nullptr; - if (m_init_done) - { - m_thumbnails->SetAt(k, doc_page); /* This avoids out of order returns from task */ - if (k < THUMB_PREADD) /* Flip view gets overwhelmed if I don't do this */ - SetThumb(k, false); - } - }, ui).then([this] (task<void> t) - { - try - { - t.get(); - } - catch(Platform::InvalidArgumentException^ e) - { - //TODO handle error. - } - }, token); //end task chain */ + doc_page->Content = THUMBNAIL; - /* If cancelled then save the last one as the continuation will not - have occured. */ - if (is_task_cancellation_requested()) - { - cancel_current_task(); + InMemoryRandomAccessStream ^ras = ref new InMemoryRandomAccessStream(); + DataWriter ^dw = ref new DataWriter(ras->GetOutputStreamAt(0)); + Prepare_bmp((int)ras_size.X, (int)ras_size.Y, dw); + dw->WriteBytes(bmp_data); + auto t = create_task(dw->StoreAsync()); + t.wait(); + + /* The update with the WriteableBitmap has to take place in the + UI thread. The fact that you cannot create a WriteableBitmap + object execept in the UI thread is a poor design in WinRT. + We will do the callback but with a low priority */ + this->Dispatcher->RunAsync(CoreDispatcherPriority::Low, + ref new DispatchedHandler([this, ras_size, k, ras, doc_page]() + { + assert(IsMainThread()); + WriteableBitmap ^bmp = ref new WriteableBitmap((int)ras_size.X, (int)ras_size.Y); + bmp->SetSource(ras); + doc_page->Image = bmp; + m_thumbnails->SetAt(k, doc_page); + SetThumbInit((unsigned int) k); + })); } } return num_pages; /* all done with thumbnails! */ }, token).then([this](task<int> the_task) { /* Finish adding them, but not if we were cancelled. */ + this->m_ren_status = REN_AVAILABLE; bool is_cancelled = false; try { @@ -601,17 +674,10 @@ void MainPage::RenderThumbs() } catch (const task_canceled& e) { - (void) e; // Unused parameter + (void)e; // Unused parameter is_cancelled = true; } - if (!is_cancelled) - { - for (int k = THUMB_PREADD; k < m_num_pages; k++) - SetThumb(k, false); - } - this->m_ren_status = REN_AVAILABLE; }, task_continuation_context::use_current()); - } void MainPage::OpenDocumentPrep(StorageFile^ file) @@ -709,12 +775,14 @@ void MainPage::InitialRender() { m_currpage = 0; } - /* Initialize all the flipvew items with blanks and the thumbnails. */ for (int k = 0; k < m_num_pages; k++) { /* Blank pages */ DocumentPage^ doc_page = ref new DocumentPage(); + Vector<RectList^>^ temp_link = ref new Vector<RectList^>(); + if (doc_page == nullptr || temp_link == nullptr) + throw ref new FailureException("Document allocation failed!"); doc_page->Image = m_BlankBmp; doc_page->Height = BLANK_HEIGHT; doc_page->Width = BLANK_WIDTH; @@ -727,7 +795,6 @@ void MainPage::InitialRender() m_thumbnails->Append(doc_page); /* Create empty lists for our links and specify that they have not been computed for these pages */ - Vector<RectList^>^ temp_link = ref new Vector<RectList^>(); m_page_link_list->Append(temp_link); m_linkset->Append(false); } @@ -741,18 +808,18 @@ void MainPage::InitialRender() { if (m_num_pages > k ) { - Point ras_size = ComputePageSize(spatial_info, k); - - auto render_task = - create_task(mu_doc->RenderPageAsync(k, ras_size.X, ras_size.Y, true)); - - render_task.then([this, k, ras_size] (InMemoryRandomAccessStream^ ras) + Point ras_size; + if (ComputePageSize(spatial_info, k, &ras_size) == S_ISOK) { - UpdatePage(k, ras, ras_size, FULL_RESOLUTION, 1.0); - }, task_continuation_context::use_current()); + auto render_task = create_task(mu_doc->RenderPageAsync(k, (int) ras_size.X, (int) ras_size.Y, true)); + render_task.then([this, k, ras_size](InMemoryRandomAccessStream^ ras) + { + if (ras != nullptr) + UpdatePage(k, ras, ras_size, FULL_RESOLUTION, 1.0); + }, task_continuation_context::use_current()); + } } } - /* Update the slider settings, if more than one page */ if (m_num_pages > 1) { @@ -766,7 +833,6 @@ void MainPage::InitialRender() this->xaml_PageSlider->Minimum = 0; this->xaml_PageSlider->IsEnabled = false; } - /* All done with initial pages */ this->m_init_done = true; } @@ -790,39 +856,46 @@ void MainPage::RenderRange(int curr_page) if (doc->Content != FULL_RESOLUTION || doc->PageZoom != m_doczoom) { - Point ras_size = ComputePageSize(spatial_info, k); - double zoom = m_doczoom; - auto render_task = - create_task(mu_doc->RenderPageAsync(k, ras_size.X, ras_size.Y, true)); - - render_task.then([this, k, ras_size, zoom, curr_page](InMemoryRandomAccessStream^ ras) - { - Point new_ras_size = ras_size; - - /* This is so that the scroll update will apply the zoom keeping us in-sync. And - making sure that we can't exceed our limits with keyboard vs touch. I.e. any - resolution changes must go through the scroll viewer. It make the upcoming - page appear to come in at its zoom level of 1.0 but it is smoothly scaled to - the current scale resolution. */ - new_ras_size.X = new_ras_size.X / zoom; - new_ras_size.Y = new_ras_size.Y / zoom; - UpdatePage(k, ras, new_ras_size, FULL_RESOLUTION, zoom); - }, task_continuation_context::use_current()).then([this, k, curr_page]() + Point ras_size; + if (ComputePageSize(spatial_info, k, &ras_size) == S_ISOK) { - if (k == curr_page && this->m_links_on) - AddLinkCanvas(); - if (k == curr_page && this->m_text_list->Size > 0 && - m_flip_from_searchlink) + double zoom = m_doczoom; + auto render_task = create_task(mu_doc->RenderPageAsync(k, (int) ras_size.X, (int) ras_size.Y, true)); + render_task.then([this, k, ras_size, zoom, curr_page](InMemoryRandomAccessStream^ ras) { - AddTextCanvas(); - m_flip_from_searchlink = false; - } - if (k == curr_page) + if (ras != nullptr) + { + Point new_ras_size = ras_size; + + /* This is so that the scroll update will apply the zoom + keeping us in-sync. And making sure that we can't + exceed our limits with keyboard vs touch. I.e. any + resolution changes must go through the scrollviewer. + It makes the upcoming page appear to come in at its + zoom level of 1.0 but it is smoothly scaled to the + current scale resolution. */ + new_ras_size.X = (float) (new_ras_size.X / zoom); + new_ras_size.Y = (float)(new_ras_size.Y / zoom); + UpdatePage(k, ras, new_ras_size, FULL_RESOLUTION, zoom); + } + }, task_continuation_context::use_current()).then([this, k, curr_page]() { - m_curr_flipView->UpdateLayout(); - UpdateZoom(); - } - },task_continuation_context::use_current()); + if (k == curr_page && this->m_links_on) + AddLinkCanvas(); + if (k == curr_page && this->m_text_list->Size > 0 && + m_flip_from_searchlink) + { + AddTextCanvas(); + m_flip_from_searchlink = false; + } + if (k == curr_page) + { + m_curr_flipView->UpdateLayout(); + UpdateZoom(); + } + }, task_continuation_context::use_current()); + + } } else { @@ -900,7 +973,7 @@ void MainPage::Slider_Common() if (m_init_done && this->xaml_PageSlider->IsEnabled) { - this->m_curr_flipView->SelectedIndex = this->xaml_PageSlider->Value - 1; + this->m_curr_flipView->SelectedIndex = (int) (this->xaml_PageSlider->Value - 1); } return; } @@ -926,11 +999,12 @@ void MainPage::ShowSearchBox() } else if (leftPanel != nullptr && !m_insearch) { - /* Search is not going to work in snapped view for now to simplify UI - in this cramped case. So see if we can get out of snapped mode. */ - if (!EnsureUnsnapped()) + /* Search is not going to work in the squashed view */ + if (this->ActualWidth < SEARCH_FIT) + { + NotifyUser("Please enlarge application to use search", StatusMessage); return; - + } m_insearch = true; FindBox->Visibility = Windows::UI::Xaml::Visibility::Visible; PrevSearch->Visibility = Windows::UI::Xaml::Visibility::Visible; @@ -945,7 +1019,7 @@ void MainPage::ClearTextSearch() m_text_list->Clear(); } -void MainPage::ShowSearchResults(int page_num, int box_count) +void MainPage::ShowSearchResults(int page_num, unsigned int box_count) { int old_page = this->m_currpage; int new_page = page_num; @@ -957,27 +1031,42 @@ void MainPage::ShowSearchResults(int page_num, int box_count) Point pageSize; Point scale; - screenSize.Y = this->ActualHeight; - screenSize.X = this->ActualWidth; + screenSize.Y = (float) (this->ActualHeight); + screenSize.X = (float) (this->ActualWidth); screenSize.X *= screenScale; screenSize.Y *= screenScale; - pageSize = mu_doc->GetPageSize(m_currpage); + + try + { + pageSize = mu_doc->GetPageSize(m_currpage); + } + catch (Exception ^except) + { +#ifdef _DEBUG + NotifyUser(except->Message, ErrorMessage); +#endif + return; + } scale = fitPageToScreen(pageSize, screenSize); auto doc_page = this->m_docPages->GetAt(old_page); /* Construct our list of rectangles */ - for (int k = 0; k < box_count; k++) + for (unsigned int k = 0; k < box_count; k++) { RectList^ rect_item = ref new RectList(); + if (rect_item == nullptr) + { + break; + } auto curr_box = mu_doc->GetTextSearch(k); rect_item->Color = m_textcolor; - rect_item->Height = curr_box->LowerRight.Y - curr_box->UpperLeft.Y; - rect_item->Width = curr_box->LowerRight.X - curr_box->UpperLeft.X; - rect_item->X = curr_box->UpperLeft.X * scale.X; - rect_item->Y = curr_box->UpperLeft.Y * scale.Y; - rect_item->Width *= (scale.X); - rect_item->Height *= (scale.Y); + rect_item->Height = (int) (curr_box->LowerRight.Y - curr_box->UpperLeft.Y); + rect_item->Width = (int) (curr_box->LowerRight.X - curr_box->UpperLeft.X); + rect_item->X = (int) (curr_box->UpperLeft.X * scale.X); + rect_item->Y = (int) (curr_box->UpperLeft.Y * scale.Y); + rect_item->Width = (int)((double)rect_item->Width * scale.X); + rect_item->Height = (int)((double)rect_item->Height * scale.Y); rect_item->Index = k.ToString(); m_text_list->Append(rect_item); } @@ -1092,7 +1181,7 @@ void MainPage::SearchInDirection(int dir, String^ textToFind) if (box_count > 0) { - this->ShowSearchResults(page_num, box_count); + this->ShowSearchResults(page_num, (unsigned int) box_count); } } }, task_continuation_context::use_current()); @@ -1101,8 +1190,8 @@ void MainPage::SearchInDirection(int dir, String^ textToFind) /* This is here to handle when we rotate or go into the snapview mode */ void MainPage::GridSizeChanged() { - int height = this->ActualHeight; - int width = this->ActualWidth; + int height = (int) (this->ActualHeight); + int width = (int) (this->ActualWidth); FlipView^ old_flip = m_curr_flipView; if (TopAppBar1->IsOpen) @@ -1138,14 +1227,9 @@ void MainPage::GridSizeChanged() } if (xaml_WebView->Visibility == Windows::UI::Xaml::Visibility::Visible) - { - int height = xaml_OutsideGrid->ActualHeight; - int height_app = TopAppBar1->ActualHeight; + xaml_WebView->Height = xaml_OutsideGrid->ActualHeight; - xaml_WebView->Height = height - height_app; - } - - UpDateThumbSizes(); + UpdateThumbSizes(); if (m_num_pages > 0 && old_flip != m_curr_flipView && old_flip != nullptr) { @@ -1167,26 +1251,51 @@ void MainPage::GridSizeChanged() } } -void MainPage::UpDateThumbSizes() +void MainPage::UpdatePreRenderedPageSizes() { - /* Reset the thumb view scaling value */ if (m_num_pages > 0) { - int num_items = m_thumbnails->Size; + for (int k = m_currpage - LOOK_AHEAD; k <= m_currpage + LOOK_AHEAD; k++) + { + if (k >= 0 && k < m_num_pages && k != m_currpage) + { + DocumentPage ^doc = this->m_docPages->GetAt(k); + doc->Content = OLD_RESOLUTION; + int curr_height = doc->Height; + int curr_width = doc->Width; + + double scale_x = (double)curr_height / (double)(this->xaml_zoomCanvas->Height); + double scale_y = (double)curr_width / (double)(this->xaml_zoomCanvas->Width); + + double min_scale = max(scale_x, scale_y); + doc->Height = (int) (curr_height * m_doczoom / min_scale); + doc->Width = (int) (curr_width * m_doczoom / min_scale); + } + } + } +} + +void MainPage::UpdateThumbSizes() +{ + /* Reset the thumbview scaling values */ + if (m_num_pages > 0) + { + int num_items = m_docPages->Size; for (int i = 0; i < num_items; i++) { - DocumentPage ^thumb_page = m_thumbnails->GetAt(i); - if (thumb_page != nullptr && thumb_page->Image != nullptr) + DocumentPage ^thumb_page = m_docPages->GetAt(i); + if (thumb_page != nullptr && thumb_page->Image != nullptr + && thumb_page->Content == THUMBNAIL) { int curr_height = thumb_page->NativeHeight; int curr_width = thumb_page->NativeWidth; - double scale_x = (double) curr_height / (double) (this->xaml_zoomCanvas->Height); - double scale_y = (double) curr_width / (double) (this->xaml_zoomCanvas->Width); + double scale_x = (double)curr_height / (double)(this->xaml_zoomCanvas->Height); + double scale_y = (double)curr_width / (double)(this->xaml_zoomCanvas->Width); double min_scale = max(scale_x, scale_y); - thumb_page->Height = curr_height * m_doczoom / min_scale; - thumb_page->Width = curr_width * m_doczoom / min_scale; + thumb_page->Height = (int)(curr_height / min_scale); + thumb_page->Width = (int)(curr_width / min_scale); } } } @@ -1237,37 +1346,52 @@ void MainPage::AddLinkCanvas() if (!link_page) { m_linkset->SetAt(m_currpage, true); - int num_links = mu_doc->ComputeLinks(m_currpage); + unsigned int num_links = mu_doc->ComputeLinks(m_currpage); if (num_links == 0) return; Point screenSize; Point pageSize; Point scale; - screenSize.Y = this->ActualHeight; - screenSize.X = this->ActualWidth; + screenSize.Y = (float) (this->ActualHeight); + screenSize.X = (float)(this->ActualWidth); screenSize.X *= screenScale; screenSize.Y *= screenScale; - pageSize = mu_doc->GetPageSize(m_currpage); + + try + { + pageSize = mu_doc->GetPageSize(m_currpage); + } + catch (Exception ^except) + { +#ifdef _DEBUG + NotifyUser(except->Message, ErrorMessage); +#endif + return; + } scale = fitPageToScreen(pageSize, screenSize); /* Create a new RectList collection */ auto link_list = ref new Platform::Collections::Vector<RectList^>(); + if (link_list == nullptr) + return; /* Now add the rects */ - for (int k = 0; k < num_links; k++) + for (unsigned int k = 0; k < num_links; k++) { auto curr_link = mu_doc->GetLink(k); if (curr_link->Type != NOT_SET) { RectList^ rect_item = ref new RectList(); + if (rect_item == nullptr) + break; rect_item->Color = m_linkcolor; - rect_item->Height = curr_link->LowerRight.Y - curr_link->UpperLeft.Y; - rect_item->Width = curr_link->LowerRight.X - curr_link->UpperLeft.X; - rect_item->X = curr_link->UpperLeft.X * scale.X; - rect_item->Y = curr_link->UpperLeft.Y * scale.Y; - rect_item->Width *= scale.X; - rect_item->Height *= scale.Y; + rect_item->Height = (int) (curr_link->LowerRight.Y - curr_link->UpperLeft.Y); + rect_item->Width = (int) (curr_link->LowerRight.X - curr_link->UpperLeft.X); + rect_item->X = (int) (curr_link->UpperLeft.X * scale.X); + rect_item->Y = (int) (curr_link->UpperLeft.Y * scale.Y); + rect_item->Width = (int)((double)rect_item->Width * scale.X); + rect_item->Height = (int)((double)rect_item->Height * scale.Y); rect_item->Type = curr_link->Type; rect_item->Urilink = curr_link->Uri; rect_item->PageNum = curr_link->PageNum; @@ -1293,7 +1417,7 @@ void MainPage::LinkTapped(Platform::Object^ sender, Windows::UI::Xaml::Input::Ta { Rectangle^ rect = safe_cast<Rectangle^>(e->OriginalSource); String^ str_index = safe_cast<String^>(rect->Tag); - int index = _wtof(str_index->Data()); + int index = (int) (_wtof(str_index->Data())); if (index >= 0 && index < m_num_pages) { @@ -1348,9 +1472,9 @@ void MainPage::ContentDisplay(Platform::Object^ sender, Windows::UI::Xaml::Route { if (xaml_ListView->Items->Size == 0) { - int size_content = mu_doc->ComputeContents(); + unsigned int size_content = mu_doc->ComputeContents(); /* Bring up the content now */ - for (int k = 0; k < size_content; k++) + for (unsigned int k = 0; k < size_content; k++) { ContentItem^ item = mu_doc->GetContent(k); this->xaml_ListView->Items->Append(item); @@ -1405,7 +1529,6 @@ void MainPage::Reflower(Platform::Object^ sender, Windows::UI::Xaml::RoutedEvent this->xaml_MainGrid->Opacity = 1.0; this->m_curr_flipView->IsEnabled = true; this->xaml_PageSlider->IsEnabled = true; - xaml_WebView->Visibility = Windows::UI::Xaml::Visibility::Collapsed; } else if (this->m_curr_flipView->IsEnabled) { @@ -1415,7 +1538,7 @@ void MainPage::Reflower(Platform::Object^ sender, Windows::UI::Xaml::RoutedEvent this->m_curr_flipView->IsEnabled = false; this->xaml_PageSlider->IsEnabled = false; this->xaml_WebView->NavigateToString(html_string); - this->xaml_WebView->Height = this->ActualHeight - 2 * this->BottomAppBar->ActualHeight; + this->xaml_WebView->Height = this->ActualHeight; } } @@ -1423,14 +1546,48 @@ void MainPage::Reflower(Platform::Object^ sender, Windows::UI::Xaml::RoutedEvent void MainPage::topAppBar_Loaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) { /* Remove search box in snapped view as we don't have the room for it */ - if (ApplicationView::Value == ApplicationViewState::Snapped && m_insearch) + int temp = (int) (this->ActualWidth); + if (this->ActualWidth < SEARCH_FIT && m_insearch) ShowSearchBox(); UpdateAppBarButtonViewState(); + /* This is needed to make sure we get the proper state during start-up. The + object has to be visible to set the state. So that is the way we start */ + if (!m_insearch && FindBox->Visibility == Windows::UI::Xaml::Visibility::Visible) + { + FindBox->Visibility = Windows::UI::Xaml::Visibility::Collapsed; + PrevSearch->Visibility = Windows::UI::Xaml::Visibility::Collapsed; + NextSearch->Visibility = Windows::UI::Xaml::Visibility::Collapsed; + } +} + +String^ MainPage::GetVisualState() +{ + String^ visualstate = "FullScreenLandscape"; + + int width = (int) (this->ActualWidth); + int height = (int) (this->ActualHeight); + + if (width < VS_SMALL) + { + visualstate = "Snapped"; + } + else if (width < VS_LARGE) + { + if (width < height) + { + visualstate = "FullScreenPortrait"; + } + else + { + visualstate = "Snapped"; + } + } + return visualstate; } void MainPage::UpdateAppBarButtonViewState() { - String ^viewState = Windows::UI::ViewManagement::ApplicationView::Value.ToString(); + String ^viewState = GetVisualState(); VisualStateManager::GoToState(Search, viewState, true); VisualStateManager::GoToState(Contents, viewState, true); VisualStateManager::GoToState(Links, viewState, true); @@ -1442,7 +1599,7 @@ void MainPage::UpdateAppBarButtonViewState() } /* Scroll viewer scale changes. If first time to this page, then we essentially - have our scroll setting set at 1.0. */ + have our scroll setting set at 1.0. */ void MainPage::ScrollChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs^ e) { @@ -1469,16 +1626,17 @@ void MainPage::ScrollChanged(Platform::Object^ sender, } /* Render at new resolution. */ spatial_info_t spatial_info = InitSpatial(m_doczoom); - Point ras_size = ComputePageSize(spatial_info, page); - doc_page->PageZoom = m_doczoom; - - auto render_task = - create_task(mu_doc->RenderPageAsync(page, ras_size.X, ras_size.Y, true)); - render_task.then([this, page, ras_size, scrollviewer](InMemoryRandomAccessStream^ ras) - { - ReplaceImage(page, ras, ras_size, m_doczoom); - }, task_continuation_context::use_current()); - UpDateThumbSizes(); + Point ras_size; + if (ComputePageSize(spatial_info, page, &ras_size) == S_ISOK) + { + doc_page->PageZoom = m_doczoom; + auto render_task = create_task(mu_doc->RenderPageAsync(page, (int) ras_size.X, (int) ras_size.Y, true)); + render_task.then([this, page, ras_size, scrollviewer](InMemoryRandomAccessStream^ ras) + { + if (ras != nullptr) + ReplaceImage(page, ras, ras_size, m_doczoom); + }, task_continuation_context::use_current()); + } } } @@ -1524,8 +1682,8 @@ void MainPage::NonTouchZoom(int zoom) ScrollViewer^ scrollviewer; FlipViewItem^ item = safe_cast<FlipViewItem^> - (m_curr_flipView->ItemContainerGenerator->ContainerFromIndex(m_currpage)); - auto item2 = m_curr_flipView->ItemContainerGenerator->ContainerFromIndex(m_currpage); + (m_curr_flipView->ContainerFromIndex(m_currpage)); + auto item2 = m_curr_flipView->ContainerFromIndex(m_currpage); /* We don't know which one so check for both */ ScrollViewer^ t1 = @@ -1567,8 +1725,8 @@ void MainPage::UpdateZoom() { ScrollViewer^ scrollviewer; FlipViewItem^ item = safe_cast<FlipViewItem^> - (m_curr_flipView->ItemContainerGenerator->ContainerFromIndex(m_currpage)); - auto item2 = m_curr_flipView->ItemContainerGenerator->ContainerFromIndex(m_currpage); + (m_curr_flipView->ContainerFromIndex(m_currpage)); + auto item2 = m_curr_flipView->ContainerFromIndex(m_currpage); /* We don't know which one so check for both */ ScrollViewer^ t1 = @@ -1625,7 +1783,7 @@ void MainPage::PasswordOK(Platform::Object^ sender, Windows::UI::Xaml::RoutedEve bool MainPage::IsNotStandardView() { return (this->xaml_ListView->Opacity == 1.0 || - xaml_WebView->Visibility == Windows::UI::Xaml::Visibility::Visible); + xaml_WebView->Visibility == Windows::UI::Xaml::Visibility::Visible); } /* The following code is for print support. */ @@ -1654,7 +1812,7 @@ void MainPage::SetPrintTask(PrintManager^ sender, PrintTaskRequestedEventArgs^ a ref new TypedEventHandler<PrintTask^, PrintTaskProgressingEventArgs^>(this, &MainPage::PrintProgress); print_task->Completed += ref new TypedEventHandler<PrintTask^, PrintTaskCompletedEventArgs^>(this, &MainPage::PrintCompleted); - m_print_active = true; + m_print_active = PRINT_ACTIVE; m_curr_print_count = 0; PrintTaskOptionDetails^ printDetailedOptions = @@ -1698,7 +1856,7 @@ void MainPage::SetPrintTask(PrintManager^ sender, PrintTaskRequestedEventArgs^ a int MainPage::GetPrintPageCount() { if (m_ppage_num_list.size() > 0) - return m_ppage_num_list.size(); + return (int) m_ppage_num_list.size(); else return m_num_pages; } @@ -1933,16 +2091,23 @@ void MainPage::DrawPreviewSurface(float width, float height, float scale_in, spatial_info.scale_factor = 1.0; spatial_info.size.X = width; spatial_info.size.Y = height; - Point ras_size = ComputePageSize(spatial_info, ren_page_num); + Point ras_size; + + if (ComputePageSize(spatial_info, ren_page_num, &ras_size) != S_ISOK) + return; + ras_size.X = ceil(ras_size.X); ras_size.Y = ceil(ras_size.Y); Array<unsigned char>^ bmp_data; - int code = mu_doc->RenderPageBitmapSync(ren_page_num, ras_size.X, ras_size.Y, - true, &bmp_data); + int code = mu_doc->RenderPageBitmapSync(ren_page_num, (int) ras_size.X, + (int) ras_size.Y, true, false, + &bmp_data); + if (bmp_data == nullptr) + return; D2D1_SIZE_U bit_map_rect; - bit_map_rect.width = ras_size.X; - bit_map_rect.height = ras_size.Y; + bit_map_rect.width = (UINT32) (ras_size.X); + bit_map_rect.height = (UINT32) (ras_size.Y); D2D1_BITMAP_PROPERTIES1 bitmap_properties2 = D2D1::BitmapProperties1(D2D1_BITMAP_OPTIONS_NONE, @@ -1950,8 +2115,8 @@ void MainPage::DrawPreviewSurface(float width, float height, float scale_in, ID2D1Bitmap1 *bit_map; ThrowIfFailed(d2d_context->CreateBitmap(bit_map_rect, &(bmp_data[0]), - ras_size.X * 4, &bitmap_properties2, - &bit_map)); + (UINT32) (ras_size.X * 4), + &bitmap_properties2, &bit_map)); D2D1_SIZE_F size = bit_map->GetSize(); /* Handle centering */ @@ -1959,15 +2124,16 @@ void MainPage::DrawPreviewSurface(float width, float height, float scale_in, float x_offset = 0; if (m_centerprint) { - y_offset = (height - size.height) / 2.0; - x_offset = (width - size.width) / 2.0; + y_offset = (float) ((height - size.height) / 2.0); + x_offset = (float) ((width - size.width) / 2.0); } d2d_context->BeginDraw(); d2d_context->DrawBitmap(bit_map, D2D1::RectF(x_offset, y_offset, size.width + x_offset, size.height + y_offset)); ThrowIfFailed(d2d_context->EndDraw()); - ThrowIfFailed(previewTarget->DrawPage(page_num, dxgi_surface.Get(), dpi, dpi)); + ThrowIfFailed(previewTarget->DrawPage(page_num, dxgi_surface.Get(), + (float) dpi, (float) dpi)); } HRESULT MainPage::ClosePrintControl() @@ -1982,6 +2148,15 @@ void MainPage::PrintPage(uint32 page_num, D2D1_RECT_F image_area, D2D1_SIZE_F pa int index_page_num = page_num - 1; int ren_page_num = index_page_num; + if (index_page_num == 0) + { + this->Dispatcher->RunAsync(CoreDispatcherPriority::Low, + ref new DispatchedHandler([this]() + { + xaml_PrintStack->Visibility = Windows::UI::Xaml::Visibility::Visible; + })); + } + /* Windoze seems to hand me a bogus dpi */ device_dpi = 96; @@ -2006,28 +2181,32 @@ void MainPage::PrintPage(uint32 page_num, D2D1_RECT_F image_area, D2D1_SIZE_F pa spatial_info_t spatial_info; spatial_info.scale_factor = 1.0; /* width and height are based upon device dpi (96) and MuPDF native - resolution is 72dpi */ + resolution is 72dpi */ spatial_info.size.X = (width /device_dpi) * (m_printresolution); spatial_info.size.Y = (height /device_dpi) * (m_printresolution); - Point ras_size = ComputePageSize(spatial_info, ren_page_num); + Point ras_size; + if (ComputePageSize(spatial_info, ren_page_num, &ras_size) != S_ISOK) + return; ras_size.X = ceil(ras_size.X); ras_size.Y = ceil(ras_size.Y); Array<unsigned char>^ bmp_data; - int code = mu_doc->RenderPageBitmapSync(ren_page_num, ras_size.X, ras_size.Y, - true, &bmp_data); + int code = mu_doc->RenderPageBitmapSync(ren_page_num, (int) ras_size.X, + (int) ras_size.Y, true, false, + &bmp_data); + if (bmp_data == nullptr) + return; D2D1_SIZE_U bit_map_rect; - bit_map_rect.width = ras_size.X; - bit_map_rect.height = ras_size.Y; + bit_map_rect.width = (UINT32) (ras_size.X); + bit_map_rect.height = (UINT32) (ras_size.Y); D2D1_BITMAP_PROPERTIES1 bitmap_properties2 = D2D1::BitmapProperties1(D2D1_BITMAP_OPTIONS_NONE, D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_PREMULTIPLIED)); ID2D1Bitmap1 *bit_map; - ThrowIfFailed(d2d_context->CreateBitmap(bit_map_rect, &(bmp_data[0]), - ras_size.X * 4, &bitmap_properties2, - &bit_map)); + ThrowIfFailed(d2d_context->CreateBitmap(bit_map_rect, &(bmp_data[0]), + (UINT32)(ras_size.X * 4), &bitmap_properties2, &bit_map)); D2D1_SIZE_F size = bit_map->GetSize(); /* Handle centering */ @@ -2036,8 +2215,8 @@ void MainPage::PrintPage(uint32 page_num, D2D1_RECT_F image_area, D2D1_SIZE_F pa if (m_centerprint) { /* Offsets need to be provided in the device dpi */ - y_offset = (page_area.height - (size.height * device_dpi / m_printresolution)) / 2.0; - x_offset = (page_area.width - (size.width * device_dpi / m_printresolution)) / 2.0; + y_offset = (float) ((page_area.height - (size.height * device_dpi / m_printresolution)) / 2.0); + x_offset = (float) ((page_area.width - (size.width * device_dpi / m_printresolution)) / 2.0); } float image_height = (bit_map_rect.height / m_printresolution) * device_dpi; @@ -2049,6 +2228,7 @@ void MainPage::PrintPage(uint32 page_num, D2D1_RECT_F image_area, D2D1_SIZE_F pa ThrowIfFailed(d2d_context->EndDraw()); ThrowIfFailed(clist->Close()); ThrowIfFailed(m_d2d_printcontrol->AddPage(clist.Get(), page_area, print_ticket)); + bit_map->Release(); } void MainPage::RefreshPreview() @@ -2063,18 +2243,35 @@ void MainPage::SetPrintTarget(void *print_struct) m_print_struct = print_struct; } -/* These are called by the print thread and as such we cannot do UI updates - directly. However we can keep a monitor of what is going on so that if - someone tries to open a new document while we are printing some monster doc, - we can let them know that they need to wait. */ void MainPage::PrintProgress(PrintTask^ sender, PrintTaskProgressingEventArgs^ args) { assert(IsBackgroundThread()); this->m_curr_print_count = args->DocumentPageCount; + + /* Update the progress bar if it is still active */ + this->Dispatcher->RunAsync(CoreDispatcherPriority::Low, + ref new DispatchedHandler([this]() + { + if (this->xaml_PrintStack->Visibility != Windows::UI::Xaml::Visibility::Collapsed) + { + xaml_PrintProgress->Value = + 100.0 * (double)m_curr_print_count / (double)GetPrintPageCount(); + } + })); } void MainPage::PrintCompleted(PrintTask^ sender, PrintTaskCompletedEventArgs^ args) { assert(IsBackgroundThread()); - m_print_active = false; + m_print_active = PRINT_INACTIVE; + this->Dispatcher->RunAsync(CoreDispatcherPriority::Low, + ref new DispatchedHandler([this]() + { + xaml_PrintStack->Visibility = Windows::UI::Xaml::Visibility::Collapsed; + })); +} + +void mupdf_cpp::MainPage::HideProgress(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) +{ + xaml_PrintStack->Visibility = Windows::UI::Xaml::Visibility::Collapsed; } diff --git a/platform/winrt/mupdf_cpp/MainPage.xaml.h b/platform/winrt/mupdf_cpp/MainPage.xaml.h index 37d5227c..c7b5e88b 100644 --- a/platform/winrt/mupdf_cpp/MainPage.xaml.h +++ b/platform/winrt/mupdf_cpp/MainPage.xaml.h @@ -32,6 +32,7 @@ using namespace Windows::UI::ViewManagement; using namespace Windows::UI::Popups; using namespace Windows::UI::Xaml::Navigation; using namespace Windows::ApplicationModel; +using namespace Windows::UI::Core; using namespace mupdfwinrt; using namespace Windows::Graphics::Display; @@ -55,6 +56,12 @@ typedef enum { REN_PAGE /* Used to ignore value when source based setting */ } RenderingStatus_t; +typedef enum { + PRINT_INACTIVE = 0, + PRINT_ACTIVE, + PRINT_FAILED +} PrintStatus_t; + typedef struct spatial_info_s { Point size; @@ -111,9 +118,6 @@ namespace mupdf_cpp } }; - /// <summary> - /// An empty page that can be used on its own or navigated to within a Frame. - /// </summary> public ref class MainPage sealed { @@ -121,7 +125,15 @@ namespace mupdf_cpp { if (FAILED(hr)) { - throw Platform::Exception::CreateException(hr); + /* We are in a different thread in this case. */ + this->Dispatcher->RunAsync(CoreDispatcherPriority::Low, + ref new DispatchedHandler([this]() + { + this->m_print_active = PRINT_FAILED; + xaml_PrintStack->Visibility = Windows::UI::Xaml::Visibility::Collapsed; + this->NotifyUser("Print Failed", ErrorMessage); + })); + throw Platform::Exception::CreateException(hr, "Print Failed"); } } @@ -195,7 +207,7 @@ namespace mupdf_cpp bool m_pageRangeEditVisible; std::vector<int> m_ppage_num_list; int m_curr_print_count; - bool m_print_active; + PrintStatus_t m_print_active; /* DirectX Print Control */ PrintManager ^m_print_manager; @@ -226,17 +238,18 @@ namespace mupdf_cpp void SearchPrev(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); void CancelSearch(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); void SearchInDirection(int dir, String^ textToFind); - void ShowSearchResults(int page_num, int box_count); + void ShowSearchResults(int page_num, unsigned int box_count); void ClearTextSearch(); void AddTextCanvas(); void GridSizeChanged(); - void UpDateThumbSizes(); + void UpdateThumbSizes(); + void UpdatePreRenderedPageSizes(); void ShowThumbnail(); void Canvas_ManipulationCompleted(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs^ e); void AddThumbNail(int page_num, FlipView^ flip_view); spatial_info_t InitSpatial(double scale); void RenderThumbs(); - void SetThumb(int page_num, bool replace); + void SetThumb(unsigned int page_num); void ReleasePages(int old_page, int new_page); void Linker(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); void AddLinkCanvas(); @@ -249,10 +262,9 @@ namespace mupdf_cpp void Reflower(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); void topAppBar_Loaded(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); void UpdateAppBarButtonViewState(); - bool EnsureUnsnapped(); void ExitInvokedHandler(Windows::UI::Popups::IUICommand^ command); void OKInvokedHandler(Windows::UI::Popups::IUICommand^ command); - Point ComputePageSize(spatial_info_t spatial_info, int page_num); + int ComputePageSize(spatial_info_t spatial_info, int page_num, Point *Point); void ScrollChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::ScrollViewerViewChangedEventArgs^ e); void LinkTapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e); void SearchProgress(IAsyncOperationWithProgress<int, double>^ operation, double status); @@ -272,6 +284,8 @@ namespace mupdf_cpp void Slider_Common(); void FlipView_Started(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationStartedRoutedEventArgs^ e); void UpdateZoom(); + String^ GetVisualState(); + void SetThumbInit(unsigned int page_num); /* Print Related */ void RegisterForPrinting(); @@ -296,5 +310,8 @@ namespace mupdf_cpp void SetPrintTarget(void *print_struct); void PrintProgress(PrintTask^ sender, PrintTaskProgressingEventArgs^ args); void PrintCompleted(PrintTask^ sender, PrintTaskCompletedEventArgs^ args); - }; +private: + void Testing(Platform::Object^ sender, Windows::UI::Xaml::Input::ManipulationCompletedRoutedEventArgs^ e); + void HideProgress(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); +}; } diff --git a/platform/winrt/mupdf_cpp/PrintPage.cpp b/platform/winrt/mupdf_cpp/PrintPage.cpp index 5e14f191..83d31791 100644 --- a/platform/winrt/mupdf_cpp/PrintPage.cpp +++ b/platform/winrt/mupdf_cpp/PrintPage.cpp @@ -62,7 +62,7 @@ PrintPages::MakeDocument(IInspectable* doc_options, IPrintDocumentPackageTarget* m_totalpages = m_renderer->GetPrintPageCount(); for (uint32 page_num = 1; page_num <= m_totalpages; ++page_num) - m_renderer->PrintPage(page_num, imageableRect, pageSize, page_desc.DpiX, nullptr); + m_renderer->PrintPage(page_num, imageableRect, pageSize, (float) page_desc.DpiX, nullptr); } catch (Platform::Exception^ e) { diff --git a/platform/winrt/mupdf_cpp/mupdf_cpp.vcxproj b/platform/winrt/mupdf_cpp/mupdf_cpp.vcxproj index 2827fa75..f75e79fa 100644 --- a/platform/winrt/mupdf_cpp/mupdf_cpp.vcxproj +++ b/platform/winrt/mupdf_cpp/mupdf_cpp.vcxproj @@ -193,6 +193,7 @@ </Link> </ItemDefinitionGroup> <ItemGroup> + <ClInclude Include="..\mupdfwinrt\Links.h" /> <ClInclude Include="..\mupdfwinrt\status.h" /> <ClInclude Include="PrintPage.h" /> <ClInclude Include="DocumentPage.h" /> diff --git a/platform/winrt/mupdf_cpp/mupdf_cpp.vcxproj.filters b/platform/winrt/mupdf_cpp/mupdf_cpp.vcxproj.filters index 0a387642..5d7615b2 100644 --- a/platform/winrt/mupdf_cpp/mupdf_cpp.vcxproj.filters +++ b/platform/winrt/mupdf_cpp/mupdf_cpp.vcxproj.filters @@ -30,6 +30,7 @@ <ClInclude Include="RectList.h" /> <ClInclude Include="..\mupdfwinrt\status.h" /> <ClInclude Include="PrintPage.h" /> + <ClInclude Include="..\mupdfwinrt\Links.h" /> </ItemGroup> <ItemGroup> <AppxManifest Include="Package.appxmanifest" /> diff --git a/platform/winrt/mupdfwinrt/muctx.cpp b/platform/winrt/mupdfwinrt/muctx.cpp index 73c44b05..2c40a85d 100644 --- a/platform/winrt/mupdfwinrt/muctx.cpp +++ b/platform/winrt/mupdfwinrt/muctx.cpp @@ -21,6 +21,8 @@ static int win_read_file(fz_stream *stm, unsigned char *buf, int len) unsigned long long curr_pos = Stream->Position; unsigned long long length = Stream->Size; DataReader^ local_reader = ref new DataReader(Stream); + if (local_reader == nullptr) + return 0; DataReaderLoadOperation^ result = local_reader->LoadAsync(len); /* Block on the Async call. This is not on the UI thread. */ @@ -33,6 +35,8 @@ static int win_read_file(fz_stream *stm, unsigned char *buf, int len) len = curr_len2; Platform::Array<unsigned char>^ arrByte = ref new Platform::Array<unsigned char>(len); + if (arrByte == nullptr) + return 0; local_reader->ReadBytes(arrByte); memcpy(buf, arrByte->Data, len); @@ -185,19 +189,24 @@ int muctx::GetPageCount() } /* Get page size */ -Point muctx::MeasurePage(int page_num) +int muctx::MeasurePage(int page_num, Point *size) { - Point pageSize; fz_rect rect; fz_page *page; fz_rect *bounds; - page = fz_load_page(mu_doc, page_num); - bounds = fz_bound_page(mu_doc, page, &rect); - pageSize.X = bounds->x1 - bounds->x0; - pageSize.Y = bounds->y1 - bounds->y0; - - return pageSize; + fz_try(mu_ctx) + { + page = fz_load_page(mu_doc, page_num); + bounds = fz_bound_page(mu_doc, page, &rect); + size->X = bounds->x1 - bounds->x0; + size->Y = bounds->y1 - bounds->y0; + } + fz_catch(mu_ctx) + { + return E_FAIL; + } + return 0; } /* Get page size */ @@ -321,12 +330,12 @@ int muctx::GetTextSearch(int page_num, char* needle, sh_vector_text texts_vec) } /* Get the links and pack into a smart pointer structure */ -int muctx::GetLinks(int page_num, sh_vector_link links_vec) +unsigned int muctx::GetLinks(int page_num, sh_vector_link links_vec) { fz_page *page = NULL; fz_link *links = NULL; int k = 0; - int num_links = 0; + unsigned int num_links = 0; fz_var(page); fz_var(links); @@ -530,12 +539,12 @@ status_t muctx::RenderPage(int page_num, unsigned char *bmp_data, int bmp_width, bool muctx::RequiresPassword(void) { - return fz_needs_password(mu_doc); + return fz_needs_password(mu_doc) != 0; } bool muctx::ApplyPassword(char* password) { - return fz_authenticate_password(mu_doc, password); + return fz_authenticate_password(mu_doc, password) != 0; } String^ muctx::GetHTML(int page_num) diff --git a/platform/winrt/mupdfwinrt/muctx.h b/platform/winrt/mupdfwinrt/muctx.h index 33f6acc5..5c452155 100644 --- a/platform/winrt/mupdfwinrt/muctx.h +++ b/platform/winrt/mupdfwinrt/muctx.h @@ -91,9 +91,9 @@ public: unsigned char *bmp_data, int bmp_width, int bmp_height, bool flipy); fz_display_list* CreateDisplayList(int page_num, int *width, int *height); - Point MeasurePage(int page_num); + int MeasurePage(int page_num, Point *size); Point MeasurePage(fz_page *page); - int GetLinks(int page_num, sh_vector_link links_vec); + unsigned int GetLinks(int page_num, sh_vector_link links_vec); int GetTextSearch(int page_num, char* needle, sh_vector_text texts_vec); int GetContents(sh_vector_content contents_vec); String^ GetHTML(int page_num); diff --git a/platform/winrt/mupdfwinrt/mudocument.cpp b/platform/winrt/mupdfwinrt/mudocument.cpp index d4855dd9..48093780 100644 --- a/platform/winrt/mupdfwinrt/mudocument.cpp +++ b/platform/winrt/mupdfwinrt/mudocument.cpp @@ -1,8 +1,8 @@ // mudocument.cpp /* This file contains the interface between the muctx class, which - implements the mupdf calls and the WinRT objects enabling calling from - C#, C++, Visual Basic, JavaScript applications */ + implements the mupdf calls and the WinRT objects enabling calling from + C#, C++, Visual Basic, JavaScript applications */ #include "pch.h" #include "mudocument.h" @@ -46,8 +46,10 @@ Point mudocument::GetPageSize(int page_num) Point size; mutex_lock.lock(); - size = this->mu_object.MeasurePage(page_num); + int code = this->mu_object.MeasurePage(page_num, &size); mutex_lock.unlock(); + if (code < 0) + throw ref new Exception(code, ref new String(L"Get Page Size Failed")); return size; } @@ -86,8 +88,7 @@ Windows::Foundation::IAsyncOperation<int>^ mudocument::OpenFileAsync(StorageFile } } catch(COMException^ ex) { - /* Need to do something useful here */ - throw ex; + throw ref new FailureException("Open File Failed"); } }); }); @@ -168,15 +169,23 @@ Windows::Foundation::IAsyncOperationWithProgress<int, double>^ } /* Pack the page into a bitmap. This is used in the DirectX code for printing - not in the xaml related code. */ + not in the xaml related code. It is also used by the thumbnail creation + thread to ensure that the thumbs are created in order and we don't create + thousands of threads */ int mudocument::RenderPageBitmapSync(int page_num, int bmp_width, int bmp_height, - bool use_dlist, Array<unsigned char>^* bit_map) + bool use_dlist, bool flipy, Array<unsigned char>^* bit_map) { status_t code; /* Allocate space for bmp */ Array<unsigned char>^ bmp_data = ref new Array<unsigned char>(bmp_height * 4 * bmp_width); + if (bmp_data == nullptr) + { + *bit_map = nullptr; + return E_OUTOFMEM; + } + if (use_dlist) { void *dlist; @@ -190,21 +199,27 @@ int mudocument::RenderPageBitmapSync(int page_num, int bmp_width, int bmp_height &page_height); /* Rendering of display list can occur with other threads so unlock */ mutex_lock.unlock(); + if (dlist == NULL) + { + *bit_map = nullptr; + return E_FAILURE; + } code = mu_object.RenderPageMT(dlist, page_width, page_height, &(bmp_data[0]), bmp_width, bmp_height, - false); + flipy); } else { /* Rendering in immediate mode. Keep lock in place */ mutex_lock.lock(); code = mu_object.RenderPage(page_num, &(bmp_data[0]), bmp_width, - bmp_height, false); + bmp_height, flipy); mutex_lock.unlock(); } if (code != S_ISOK) { - throw ref new FailureException("Page Rendering Failed"); + *bit_map = nullptr; + return E_FAILURE; } *bit_map = bmp_data; @@ -222,9 +237,17 @@ Windows::Foundation::IAsyncOperation<InMemoryRandomAccessStream^>^ /* Allocate space for bmp */ Array<unsigned char>^ bmp_data = ref new Array<unsigned char>(bmp_height * 4 * bmp_width); + if (bmp_data == nullptr) + return nullptr; + /* Set up the memory stream */ InMemoryRandomAccessStream ^ras = ref new InMemoryRandomAccessStream(); + if (ras == nullptr) + return nullptr; DataWriter ^dw = ref new DataWriter(ras->GetOutputStreamAt(0)); + if (dw == nullptr) + return nullptr; + status_t code; /* Go ahead and write our header data into the memory stream */ @@ -241,8 +264,10 @@ Windows::Foundation::IAsyncOperation<InMemoryRandomAccessStream^>^ in the page cache */ dlist = (void*) mu_object.CreateDisplayList(page_num, &page_width, &page_height); - /* Rendering of display list can occur with other threads so unlock */ mutex_lock.unlock(); + if (dlist == NULL) + return nullptr; + /* Rendering of display list can occur with other threads so unlock */ code = mu_object.RenderPageMT(dlist, page_width, page_height, &(bmp_data[0]), bmp_width, bmp_height, true); @@ -256,35 +281,38 @@ Windows::Foundation::IAsyncOperation<InMemoryRandomAccessStream^>^ mutex_lock.unlock(); } if (code != S_ISOK) - { - throw ref new FailureException("Page Rendering Failed"); - } + return nullptr; /* Now the data into the memory stream */ dw->WriteBytes(bmp_data); - DataWriterStoreOperation^ result = dw->StoreAsync(); - /* Block on this Async call? */ - while(result->Status != AsyncStatus::Completed) { - } + auto t = create_task(dw->StoreAsync()); + t.wait(); /* Return raster stream */ return ras; }); } -int mudocument::ComputeLinks(int page_num) +unsigned int mudocument::ComputeLinks(int page_num) { /* We get back a standard smart pointer from muctx interface and go to WinRT type here */ sh_vector_link link_smart_ptr_vec(new std::vector<sh_link>()); mutex_lock.lock(); - int num_items = mu_object.GetLinks(page_num, link_smart_ptr_vec); + unsigned int num_items = mu_object.GetLinks(page_num, link_smart_ptr_vec); mutex_lock.unlock(); - if (num_items == 0) + if (num_items == 0 || num_items == E_FAIL) return 0; /* Pack into winRT type*/ this->links = ref new Platform::Collections::Vector<Links^>(); - for (int k = 0; k < num_items; k++) + if (this->links == nullptr) + return 0; + for (unsigned int k = 0; k < num_items; k++) { auto new_link = ref new Links(); + if (new_link == nullptr) + { + this->links = nullptr; + return 0; + } sh_link muctx_link = link_smart_ptr_vec->at(k); new_link->LowerRight = muctx_link->lower_right; new_link->UpperLeft = muctx_link->upper_left; @@ -295,13 +323,18 @@ int mudocument::ComputeLinks(int page_num) String^ str = char_to_String(muctx_link->uri.get()); // The URI to launch new_link->Uri = ref new Windows::Foundation::Uri(str); + if (new_link->Uri == nullptr) + { + this->links = nullptr; + return 0; + } } this->links->Append(new_link); } return num_items; } -Links^ mudocument::GetLink(int k) +Links^ mudocument::GetLink(unsigned int k) { if (k >= this->links->Size) return nullptr; @@ -324,9 +357,16 @@ int mudocument::ComputeTextSearch(String^ text, int page_num) return 0; /* Pack into winRT type*/ this->textsearch = ref new Platform::Collections::Vector<Links^>(); + if (this->textsearch == nullptr) + return 0; for (int k = 0; k < num_items; k++) { auto new_link = ref new Links(); + if (new_link == nullptr) + { + this->textsearch = nullptr; + return 0; + } sh_text muctx_text = text_smart_ptr_vec->at(k); new_link->LowerRight = muctx_text->lower_right; new_link->UpperLeft = muctx_text->upper_left; @@ -347,14 +387,14 @@ int mudocument::TextSearchCount(void) } /* Returns the kth item for a page after a text search query */ -Links^ mudocument::GetTextSearch(int k) +Links^ mudocument::GetTextSearch(unsigned int k) { if (k >= this->textsearch->Size) return nullptr; return this->textsearch->GetAt(k); } -int mudocument::ComputeContents() +unsigned int mudocument::ComputeContents() { /* We get back a standard smart pointer from muctx interface and go to * WinRT type here */ @@ -369,11 +409,18 @@ int mudocument::ComputeContents() return 0; /* Pack into winRT type*/ this->contents = ref new Platform::Collections::Vector<ContentItem^>(); - int num_items = content_smart_ptr_vec->size(); + if (this->contents == nullptr) + return 0; + unsigned int num_items = content_smart_ptr_vec->size(); - for (int k = 0; k < num_items; k++) + for (unsigned int k = 0; k < num_items; k++) { auto new_content = ref new ContentItem(); + if (new_content == nullptr) + { + this->contents = nullptr; + return 0; + } sh_content muctx_content = content_smart_ptr_vec->at(k); new_content->Page = muctx_content->page; new_content->StringMargin = muctx_content->string_margin; @@ -383,7 +430,7 @@ int mudocument::ComputeContents() return num_items; } -ContentItem^ mudocument::GetContent(int k) +ContentItem^ mudocument::GetContent(unsigned int k) { if (k >= this->contents->Size) return nullptr; diff --git a/platform/winrt/mupdfwinrt/mudocument.h b/platform/winrt/mupdfwinrt/mudocument.h index c3356337..3e0b9fcf 100644 --- a/platform/winrt/mupdfwinrt/mudocument.h +++ b/platform/winrt/mupdfwinrt/mudocument.h @@ -35,18 +35,18 @@ namespace mupdfwinrt Windows::Foundation::IAsyncOperation<InMemoryRandomAccessStream^>^ RenderPageAsync(int page_num, int width, int height, bool use_dlist); int RenderPageBitmapSync(int page_num, int bmp_width, int bmp_height, - bool use_dlist, Array<unsigned char>^* bit_map); + bool use_dlist, bool flipy, Array<unsigned char>^* bit_map); Windows::Foundation::IAsyncOperationWithProgress<int, double>^ SearchDocumentWithProgressAsync(String^ textToFind, int dir, int start_page, int num_pages); String^ ComputeHTML(int page_num); int ComputeTextSearch(String^ text, int page_num); - Links^ GetTextSearch(int k); + Links^ GetTextSearch(unsigned int k); int TextSearchCount(void); - int ComputeContents(void); - ContentItem^ GetContent(int k); - int ComputeLinks(int page_num); - Links^ GetLink(int k); + unsigned int ComputeContents(void); + ContentItem^ GetContent(unsigned int k); + unsigned int ComputeLinks(int page_num); + Links^ GetLink(unsigned int k); bool RequiresPassword(); bool ApplyPassword(String^ password); }; diff --git a/platform/winrt/mupdfwinrt/mupdfwinrt.vcxproj b/platform/winrt/mupdfwinrt/mupdfwinrt.vcxproj index 5917a638..d2f6ae88 100644 --- a/platform/winrt/mupdfwinrt/mupdfwinrt.vcxproj +++ b/platform/winrt/mupdfwinrt/mupdfwinrt.vcxproj @@ -220,7 +220,6 @@ </ItemDefinitionGroup> <ItemGroup> <ClInclude Include="Cache.h" /> - <ClInclude Include="Links.h" /> <ClInclude Include="ContentItem.h" /> <ClInclude Include="muctx.h" /> <ClInclude Include="pch.h" /> diff --git a/platform/winrt/mupdfwinrt/mupdfwinrt.vcxproj.filters b/platform/winrt/mupdfwinrt/mupdfwinrt.vcxproj.filters index 7598f3e5..99e37356 100644 --- a/platform/winrt/mupdfwinrt/mupdfwinrt.vcxproj.filters +++ b/platform/winrt/mupdfwinrt/mupdfwinrt.vcxproj.filters @@ -19,7 +19,6 @@ <ClInclude Include="pch.h" /> <ClInclude Include="mudocument.h" /> <ClInclude Include="muctx.h" /> - <ClInclude Include="Links.h" /> <ClInclude Include="utils.h" /> <ClInclude Include="ContentItem.h" /> <ClInclude Include="Cache.h" /> diff --git a/platform/winrt/mupdfwinrt/status.h b/platform/winrt/mupdfwinrt/status.h index af168d62..9eea09aa 100644 --- a/platform/winrt/mupdfwinrt/status.h +++ b/platform/winrt/mupdfwinrt/status.h @@ -2,9 +2,9 @@ typedef enum { S_ISOK = 0, - E_FAILURE = 1, - E_OUTOFMEM = 2, - E_NEEDPASSWORD + E_FAILURE = -1, + E_OUTOFMEM = -2, + E_NEEDPASSWORD = -3 } status_t; typedef enum { |