FreeRDP
Loading...
Searching...
No Matches
libfreerdp/cache/bitmap.h
1
20#ifndef FREERDP_LIB_CACHE_BITMAP_H
21#define FREERDP_LIB_CACHE_BITMAP_H
22
23#include <freerdp/api.h>
24#include <freerdp/update.h>
25
26#include <freerdp/cache/persistent.h>
27
28typedef struct
29{
30 UINT32 number;
31 rdpBitmap** entries;
33
34typedef struct
35{
36 pMemBlt MemBlt; /* 0 */
37 pMem3Blt Mem3Blt; /* 1 */
38 pCacheBitmap CacheBitmap; /* 2 */
39 pCacheBitmapV2 CacheBitmapV2; /* 3 */
40 pCacheBitmapV3 CacheBitmapV3; /* 4 */
41 pBitmapUpdate BitmapUpdate; /* 5 */
42 UINT32 paddingA[16 - 6]; /* 6 */
43
44 UINT32 maxCells; /* 16 */
45 BITMAP_V2_CELL* cells; /* 17 */
46 UINT32 paddingB[32 - 18]; /* 18 */
47
48 /* internal */
49 rdpContext* context;
50 rdpPersistentCache* persistent;
52
53#ifdef __cplusplus
54extern "C"
55{
56#endif
57
58 FREERDP_LOCAL void bitmap_cache_register_callbacks(rdpUpdate* update);
59
60 FREERDP_LOCAL void bitmap_cache_free(rdpBitmapCache* bitmap_cache);
61
62 WINPR_ATTR_MALLOC(bitmap_cache_free, 1)
63 WINPR_ATTR_NODISCARD
64 FREERDP_LOCAL rdpBitmapCache* bitmap_cache_new(rdpContext* context);
65
66 FREERDP_LOCAL void free_bitmap_update(rdpContext* context, BITMAP_UPDATE* pointer);
67
68 WINPR_ATTR_MALLOC(free_bitmap_update, 2)
69 WINPR_ATTR_NODISCARD
70 FREERDP_LOCAL BITMAP_UPDATE* copy_bitmap_update(rdpContext* context,
71 const BITMAP_UPDATE* pointer);
72
73 FREERDP_LOCAL void free_cache_bitmap_order(rdpContext* context, CACHE_BITMAP_ORDER* order);
74
75 WINPR_ATTR_MALLOC(free_cache_bitmap_order, 2)
76 WINPR_ATTR_NODISCARD
77 FREERDP_LOCAL CACHE_BITMAP_ORDER* copy_cache_bitmap_order(rdpContext* context,
78 const CACHE_BITMAP_ORDER* order);
79
80 FREERDP_LOCAL void free_cache_bitmap_v2_order(rdpContext* context,
82
83 WINPR_ATTR_MALLOC(free_cache_bitmap_v2_order, 2)
84 WINPR_ATTR_NODISCARD
85 FREERDP_LOCAL CACHE_BITMAP_V2_ORDER*
86 copy_cache_bitmap_v2_order(rdpContext* context, const CACHE_BITMAP_V2_ORDER* order);
87
88 FREERDP_LOCAL void free_cache_bitmap_v3_order(rdpContext* context,
90
91 WINPR_ATTR_MALLOC(free_cache_bitmap_v3_order, 2)
92 WINPR_ATTR_NODISCARD
93 FREERDP_LOCAL CACHE_BITMAP_V3_ORDER*
94 copy_cache_bitmap_v3_order(rdpContext* context, const CACHE_BITMAP_V3_ORDER* order);
95
96#ifdef __cplusplus
97}
98#endif
99
100#endif /* FREERDP_LIB_CACHE_BITMAP_H */