diff options
Diffstat (limited to 'platform/windows/mupdfwinrt/Cache.h')
-rw-r--r-- | platform/windows/mupdfwinrt/Cache.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/platform/windows/mupdfwinrt/Cache.h b/platform/windows/mupdfwinrt/Cache.h new file mode 100644 index 00000000..e8c9801d --- /dev/null +++ b/platform/windows/mupdfwinrt/Cache.h @@ -0,0 +1,38 @@ +#pragma once + +#include <mutex> +extern "C" { + #include "mupdf/fitz.h" +} + +#define MAX_DISPLAY_CACHE_SIZE 3 + +typedef struct cache_entry_s cache_entry_t; + +struct cache_entry_s +{ + int number; + int width; + int height; + fz_display_list *dlist; + cache_entry_t *next; + cache_entry_t *prev; + int index; +}; + +class Cache +{ +private: + int size; + cache_entry_t *head; + cache_entry_t *tail; + std::mutex cache_lock; + +public: + Cache(void); + ~Cache(void); + void GetSize(int *width, int *height); + fz_display_list* Use(int value, int *width, int *height, fz_context *mu_ctx); + void Add(int value, int width, int height, fz_display_list *dlist, fz_context *mu_ctx); + void Empty(fz_context *mu_ctx); +}; |