summaryrefslogtreecommitdiff
path: root/winrt/mupdf_cpp/MainPage.xaml.cpp
diff options
context:
space:
mode:
authorMichael Vrhel <michael.vrhel@artifex.com>2013-06-14 09:24:37 -0700
committerRobin Watts <robin.watts@artifex.com>2013-06-14 21:25:01 +0100
commitf9574246ead2457963ede0c6d65e208ad6943258 (patch)
treed85069efadf5a6b5b78403eda57b0adabb7a45e0 /winrt/mupdf_cpp/MainPage.xaml.cpp
parent9a1898c42152dfac560bb9d291e43f7dc0fd40ac (diff)
downloadmupdf-f9574246ead2457963ede0c6d65e208ad6943258.tar.xz
Addition of locking cache for display list in winRT library
Diffstat (limited to 'winrt/mupdf_cpp/MainPage.xaml.cpp')
-rw-r--r--winrt/mupdf_cpp/MainPage.xaml.cpp24
1 files changed, 8 insertions, 16 deletions
diff --git a/winrt/mupdf_cpp/MainPage.xaml.cpp b/winrt/mupdf_cpp/MainPage.xaml.cpp
index e700a444..4c1095bf 100644
--- a/winrt/mupdf_cpp/MainPage.xaml.cpp
+++ b/winrt/mupdf_cpp/MainPage.xaml.cpp
@@ -642,7 +642,7 @@ void mupdf_cpp::MainPage::InitialRender()
Point ras_size = ComputePageSize(spatial_info, k);
auto render_task =
- create_task(mu_doc->RenderPageAsync(k, ras_size.X, ras_size.Y, false));
+ create_task(mu_doc->RenderPageAsync(k, ras_size.X, ras_size.Y, true));
render_task.then([this, k, ras_size] (InMemoryRandomAccessStream^ ras)
{
@@ -689,7 +689,7 @@ void mupdf_cpp::MainPage::RenderRange(int curr_page)
{
Point ras_size = ComputePageSize(spatial_info, k);
auto render_task =
- create_task(mu_doc->RenderPageAsync(k, ras_size.X, ras_size.Y, false));
+ create_task(mu_doc->RenderPageAsync(k, ras_size.X, ras_size.Y, true));
render_task.then([this, k, ras_size] (InMemoryRandomAccessStream^ ras)
{
@@ -750,7 +750,7 @@ void mupdf_cpp::MainPage::Slider_ValueChanged(Platform::Object^ sender, Windows:
spatial_info_t spatial_info = InitSpatial(1);
Point ras_size = ComputePageSize(spatial_info, newValue);
auto render_task =
- create_task(mu_doc->RenderPageAsync(newValue, ras_size.X, ras_size.Y, false));
+ create_task(mu_doc->RenderPageAsync(newValue, ras_size.X, ras_size.Y, true));
render_task.then([this, newValue, ras_size] (InMemoryRandomAccessStream^ ras)
{
@@ -1345,20 +1345,12 @@ void mupdf_cpp::MainPage::ScrollChanged(Platform::Object^ sender,
Point ras_size = ComputePageSize(spatial_info, page);
/* Go ahead and create display list if we dont have one for this page */
- auto ui = task_continuation_context::use_current();
- auto display_task = create_task(mu_doc->CreateDisplayList(page));
- display_task.then([this, page, ras_size, ui] (int code)
+ auto render_task =
+ create_task(mu_doc->RenderPageAsync(page, ras_size.X, ras_size.Y, true));
+ render_task.then([this, page, ras_size] (InMemoryRandomAccessStream^ ras)
{
- if (code == S_ISOK)
- {
- auto render_task =
- create_task(mu_doc->RenderPageAsync(page, ras_size.X, ras_size.Y, true));
- render_task.then([this, page, ras_size] (InMemoryRandomAccessStream^ ras)
- {
- ReplaceImage(page, ras, ras_size);
- }, ui);
- }
- });
+ ReplaceImage(page, ras, ras_size);
+ }, task_continuation_context::use_current());
}
}