cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

bitmap.h (1922B)


      1/**
      2 * FreeRDP: A Remote Desktop Protocol Implementation
      3 * Bitmap Cache V2
      4 *
      5 * Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
      6 *
      7 * Licensed under the Apache License, Version 2.0 (the "License");
      8 * you may not use this file except in compliance with the License.
      9 * You may obtain a copy of the License at
     10 *
     11 *     http://www.apache.org/licenses/LICENSE-2.0
     12 *
     13 * Unless required by applicable law or agreed to in writing, software
     14 * distributed under the License is distributed on an "AS IS" BASIS,
     15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16 * See the License for the specific language governing permissions and
     17 * limitations under the License.
     18 */
     19
     20#ifndef FREERDP_BITMAP_V2_CACHE_H
     21#define FREERDP_BITMAP_V2_CACHE_H
     22
     23#include <freerdp/api.h>
     24#include <freerdp/types.h>
     25#include <freerdp/update.h>
     26#include <freerdp/freerdp.h>
     27
     28#include <winpr/stream.h>
     29
     30typedef struct _BITMAP_V2_CELL BITMAP_V2_CELL;
     31typedef struct rdp_bitmap_cache rdpBitmapCache;
     32
     33#include <freerdp/cache/cache.h>
     34
     35struct _BITMAP_V2_CELL
     36{
     37	UINT32 number;
     38	rdpBitmap** entries;
     39};
     40
     41struct rdp_bitmap_cache
     42{
     43	pMemBlt MemBlt;               /* 0 */
     44	pMem3Blt Mem3Blt;             /* 1 */
     45	pCacheBitmap CacheBitmap;     /* 2 */
     46	pCacheBitmapV2 CacheBitmapV2; /* 3 */
     47	pCacheBitmapV3 CacheBitmapV3; /* 4 */
     48	pBitmapUpdate BitmapUpdate;   /* 5 */
     49	UINT32 paddingA[16 - 6];      /* 6 */
     50
     51	UINT32 maxCells;          /* 16 */
     52	BITMAP_V2_CELL* cells;    /* 17 */
     53	UINT32 paddingB[32 - 18]; /* 18 */
     54
     55	/* internal */
     56	rdpUpdate* update;
     57	rdpContext* context;
     58	rdpSettings* settings;
     59};
     60
     61#ifdef __cplusplus
     62extern "C"
     63{
     64#endif
     65
     66	FREERDP_API void bitmap_cache_register_callbacks(rdpUpdate* update);
     67
     68	FREERDP_API rdpBitmapCache* bitmap_cache_new(rdpSettings* settings);
     69	FREERDP_API void bitmap_cache_free(rdpBitmapCache* bitmap_cache);
     70
     71#ifdef __cplusplus
     72}
     73#endif
     74
     75#endif /* FREERDP_BITMAP_V2_CACHE_H */