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 FREERDP_LOCAL rdpBitmapCache* bitmap_cache_new(rdpContext* context);
64
65 FREERDP_LOCAL void free_bitmap_update(rdpContext* context, BITMAP_UPDATE* pointer);
66
67 WINPR_ATTR_MALLOC(free_bitmap_update, 2)
68 FREERDP_LOCAL BITMAP_UPDATE* copy_bitmap_update(rdpContext* context,
69 const BITMAP_UPDATE* pointer);
70
71 FREERDP_LOCAL void free_cache_bitmap_order(rdpContext* context, CACHE_BITMAP_ORDER* order);
72
73 WINPR_ATTR_MALLOC(free_cache_bitmap_order, 2)
74 FREERDP_LOCAL CACHE_BITMAP_ORDER* copy_cache_bitmap_order(rdpContext* context,
75 const CACHE_BITMAP_ORDER* order);
76
77 FREERDP_LOCAL void free_cache_bitmap_v2_order(rdpContext* context,
79
80 WINPR_ATTR_MALLOC(free_cache_bitmap_v2_order, 2)
81 FREERDP_LOCAL CACHE_BITMAP_V2_ORDER*
82 copy_cache_bitmap_v2_order(rdpContext* context, const CACHE_BITMAP_V2_ORDER* order);
83
84 FREERDP_LOCAL void free_cache_bitmap_v3_order(rdpContext* context,
86
87 WINPR_ATTR_MALLOC(free_cache_bitmap_v3_order, 2)
88 FREERDP_LOCAL CACHE_BITMAP_V3_ORDER*
89 copy_cache_bitmap_v3_order(rdpContext* context, const CACHE_BITMAP_V3_ORDER* order);
90
91#ifdef __cplusplus
92}
93#endif
94
95#endif /* FREERDP_LIB_CACHE_BITMAP_H */