2 * FreeRDP: A Remote Desktop Protocol Client
3 * Alternate Secondary Drawing Orders Interface API
5 * Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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.
20 #ifndef __UPDATE_ALTSEC_H
21 #define __UPDATE_ALTSEC_H
23 #include <freerdp/types.h>
25 #define DSDNG_STRETCH 0x00000001
26 #define DSDNG_TILE 0x00000002
27 #define DSDNG_PERPIXELALPHA 0x00000004
28 #define DSDNG_TRANSPARENT 0x00000008
29 #define DSDNG_MUSTFLIP 0x00000010
30 #define DSDNG_TRUESIZE 0x00000020
32 #define FRAME_START 0x00000000
33 #define FRAME_END 0x00000001
35 #define STREAM_BITMAP_END 0x01
36 #define STREAM_BITMAP_COMPRESSED 0x02
37 #define STREAM_BITMAP_V2 0x04
39 struct _OFFSCREEN_DELETE_LIST
45 typedef struct _OFFSCREEN_DELETE_LIST OFFSCREEN_DELETE_LIST;
47 struct _CREATE_OFFSCREEN_BITMAP_ORDER
52 OFFSCREEN_DELETE_LIST deleteList;
54 typedef struct _CREATE_OFFSCREEN_BITMAP_ORDER CREATE_OFFSCREEN_BITMAP_ORDER;
56 struct _SWITCH_SURFACE_ORDER
60 typedef struct _SWITCH_SURFACE_ORDER SWITCH_SURFACE_ORDER;
62 struct _NINE_GRID_BITMAP_INFO
68 uint32 ulBottomHeight;
71 typedef struct _NINE_GRID_BITMAP_INFO NINE_GRID_BITMAP_INFO;
73 struct _CREATE_NINE_GRID_BITMAP_ORDER
79 NINE_GRID_BITMAP_INFO nineGridInfo;
81 typedef struct _CREATE_NINE_GRID_BITMAP_ORDER CREATE_NINE_GRID_BITMAP_ORDER;
83 struct _FRAME_MARKER_ORDER
87 typedef struct _FRAME_MARKER_ORDER FRAME_MARKER_ORDER;
89 struct _STREAM_BITMAP_FIRST_ORDER
97 uint32 bitmapBlockSize;
100 typedef struct _STREAM_BITMAP_FIRST_ORDER STREAM_BITMAP_FIRST_ORDER;
102 struct _STREAM_BITMAP_NEXT_ORDER
106 uint32 bitmapBlockSize;
109 typedef struct _STREAM_BITMAP_NEXT_ORDER STREAM_BITMAP_NEXT_ORDER;
111 struct _DRAW_GDIPLUS_FIRST_ORDER
115 uint32 cbTotalEmfSize;
118 typedef struct _DRAW_GDIPLUS_FIRST_ORDER DRAW_GDIPLUS_FIRST_ORDER;
120 struct _DRAW_GDIPLUS_NEXT_ORDER
125 typedef struct _DRAW_GDIPLUS_NEXT_ORDER DRAW_GDIPLUS_NEXT_ORDER;
127 struct _DRAW_GDIPLUS_END_ORDER
131 uint32 cbTotalEmfSize;
134 typedef struct _DRAW_GDIPLUS_END_ORDER DRAW_GDIPLUS_END_ORDER;
136 struct _DRAW_GDIPLUS_CACHE_FIRST_ORDER
145 typedef struct _DRAW_GDIPLUS_CACHE_FIRST_ORDER DRAW_GDIPLUS_CACHE_FIRST_ORDER;
147 struct _DRAW_GDIPLUS_CACHE_NEXT_ORDER
155 typedef struct _DRAW_GDIPLUS_CACHE_NEXT_ORDER DRAW_GDIPLUS_CACHE_NEXT_ORDER;
157 struct _DRAW_GDIPLUS_CACHE_END_ORDER
166 typedef struct _DRAW_GDIPLUS_CACHE_END_ORDER DRAW_GDIPLUS_CACHE_END_ORDER;
168 typedef void (*pCreateOffscreenBitmap)(rdpContext* context, CREATE_OFFSCREEN_BITMAP_ORDER* create_offscreen_bitmap);
169 typedef void (*pSwitchSurface)(rdpContext* context, SWITCH_SURFACE_ORDER* switch_surface);
170 typedef void (*pCreateNineGridBitmap)(rdpContext* context, CREATE_NINE_GRID_BITMAP_ORDER* create_nine_grid_bitmap);
171 typedef void (*pFrameMarker)(rdpContext* context, FRAME_MARKER_ORDER* frame_marker);
172 typedef void (*pStreamBitmapFirst)(rdpContext* context, STREAM_BITMAP_FIRST_ORDER* stream_bitmap_first);
173 typedef void (*pStreamBitmapNext)(rdpContext* context, STREAM_BITMAP_FIRST_ORDER* stream_bitmap_next);
174 typedef void (*pDrawGdiPlusFirst)(rdpContext* context, DRAW_GDIPLUS_FIRST_ORDER* draw_gdiplus_first);
175 typedef void (*pDrawGdiPlusNext)(rdpContext* context, DRAW_GDIPLUS_NEXT_ORDER* draw_gdiplus_next);
176 typedef void (*pDrawGdiPlusEnd)(rdpContext* context, DRAW_GDIPLUS_END_ORDER* draw_gdiplus_end);
177 typedef void (*pDrawGdiPlusCacheFirst)(rdpContext* context, DRAW_GDIPLUS_CACHE_FIRST_ORDER* draw_gdiplus_cache_first);
178 typedef void (*pDrawGdiPlusCacheNext)(rdpContext* context, DRAW_GDIPLUS_CACHE_NEXT_ORDER* draw_gdiplus_cache_next);
179 typedef void (*pDrawGdiPlusCacheEnd)(rdpContext* context, DRAW_GDIPLUS_CACHE_END_ORDER* draw_gdiplus_cache_end);
181 struct rdp_altsec_update
183 rdpContext* context; /* 0 */
184 uint32 paddingA[16 - 1]; /* 1 */
186 pCreateOffscreenBitmap CreateOffscreenBitmap; /* 16 */
187 pSwitchSurface SwitchSurface; /* 17 */
188 pCreateNineGridBitmap CreateNineGridBitmap; /* 18 */
189 pFrameMarker FrameMarker; /* 19 */
190 pStreamBitmapFirst StreamBitmapFirst; /* 20 */
191 pStreamBitmapNext StreamBitmapNext; /* 21 */
192 pDrawGdiPlusFirst DrawGdiPlusFirst; /* 22 */
193 pDrawGdiPlusNext DrawGdiPlusNext; /* 23 */
194 pDrawGdiPlusEnd DrawGdiPlusEnd; /* 24 */
195 pDrawGdiPlusCacheFirst DrawGdiPlusCacheFirst; /* 25 */
196 pDrawGdiPlusCacheNext DrawGdiPlusCacheNext; /* 26 */
197 pDrawGdiPlusCacheEnd DrawGdiPlusCacheEnd; /* 27 */
198 uint32 paddingB[32 - 28]; /* 28 */
202 CREATE_OFFSCREEN_BITMAP_ORDER create_offscreen_bitmap;
203 SWITCH_SURFACE_ORDER switch_surface;
204 CREATE_NINE_GRID_BITMAP_ORDER create_nine_grid_bitmap;
205 FRAME_MARKER_ORDER frame_marker;
206 STREAM_BITMAP_FIRST_ORDER stream_bitmap_first;
207 STREAM_BITMAP_FIRST_ORDER stream_bitmap_next;
208 DRAW_GDIPLUS_CACHE_FIRST_ORDER draw_gdiplus_cache_first;
209 DRAW_GDIPLUS_CACHE_NEXT_ORDER draw_gdiplus_cache_next;
210 DRAW_GDIPLUS_CACHE_END_ORDER draw_gdiplus_cache_end;
211 DRAW_GDIPLUS_FIRST_ORDER draw_gdiplus_first;
212 DRAW_GDIPLUS_NEXT_ORDER draw_gdiplus_next;
213 DRAW_GDIPLUS_END_ORDER draw_gdiplus_end;
215 typedef struct rdp_altsec_update rdpAltSecUpdate;
217 #endif /* __UPDATE_ALTSEC_H */