20#ifndef FREERDP_LIB_CACHE_BITMAP_H
21#define FREERDP_LIB_CACHE_BITMAP_H
23#include <freerdp/api.h>
24#include <freerdp/update.h>
26#include <freerdp/cache/persistent.h>
36 WINPR_ATTR_NODISCARD pMemBlt MemBlt;
37 WINPR_ATTR_NODISCARD pMem3Blt Mem3Blt;
38 WINPR_ATTR_NODISCARD pCacheBitmap CacheBitmap;
39 WINPR_ATTR_NODISCARD pCacheBitmapV2 CacheBitmapV2;
40 WINPR_ATTR_NODISCARD pCacheBitmapV3 CacheBitmapV3;
41 WINPR_ATTR_NODISCARD pBitmapUpdate BitmapUpdate;
42 UINT32 paddingA[16 - 6];
46 UINT32 paddingB[32 - 18];
50 rdpPersistentCache* persistent;
58 FREERDP_LOCAL
void bitmap_cache_register_callbacks(rdpUpdate* update);
62 WINPR_ATTR_MALLOC(bitmap_cache_free, 1)
64 FREERDP_LOCAL
rdpBitmapCache* bitmap_cache_new(rdpContext* context);
66 FREERDP_LOCAL
void free_bitmap_update(rdpContext* context,
BITMAP_UPDATE* pointer);
68 WINPR_ATTR_MALLOC(free_bitmap_update, 2)
70 FREERDP_LOCAL
BITMAP_UPDATE* copy_bitmap_update(rdpContext* context,
73 FREERDP_LOCAL
void free_cache_bitmap_order(rdpContext* context,
CACHE_BITMAP_ORDER* order);
75 WINPR_ATTR_MALLOC(free_cache_bitmap_order, 2)
80 FREERDP_LOCAL
void free_cache_bitmap_v2_order(rdpContext* context,
83 WINPR_ATTR_MALLOC(free_cache_bitmap_v2_order, 2)
88 FREERDP_LOCAL
void free_cache_bitmap_v3_order(rdpContext* context,
91 WINPR_ATTR_MALLOC(free_cache_bitmap_v3_order, 2)