diff options
author | Michael Vrhel <michael.vrhel@artifex.com> | 2013-06-14 09:24:37 -0700 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2013-06-14 21:25:01 +0100 |
commit | f9574246ead2457963ede0c6d65e208ad6943258 (patch) | |
tree | d85069efadf5a6b5b78403eda57b0adabb7a45e0 /winrt/mupdf_cpp/MainPage.xaml.cpp | |
parent | 9a1898c42152dfac560bb9d291e43f7dc0fd40ac (diff) | |
download | mupdf-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.cpp | 24 |
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()); } } |