FreeRDP
channels/gfxredir.h
1
20
#ifndef FREERDP_CHANNEL_GFXREDIR_H
21
#define FREERDP_CHANNEL_GFXREDIR_H
22
23
#include <freerdp/api.h>
24
#include <freerdp/types.h>
25
26
#ifdef __cplusplus
27
extern
"C"
28
{
29
#endif
30
31
#define GFXREDIR_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::RemoteAppGraphicsRedirection"
32
33
/* GFXREDIR_LEGACY_CAPS_PDU.version */
34
#define GFXREDIR_CHANNEL_VERSION_LEGACY 1
35
36
#define GFXREDIR_CHANNEL_VERSION_MAJOR 2
37
#define GFXREDIR_CHANNEL_VERSION_MINOR 0
38
39
/* GFXREDIR_CAPS_VERSION1 */
40
#define GFXREDIR_CMDID_LEGACY_CAPS 0x00000001
41
#define GFXREDIR_CMDID_ERROR 0x00000006
42
#define GFXREDIR_CMDID_CAPS_ADVERTISE 0x00000008
43
#define GFXREDIR_CMDID_CAPS_CONFIRM 0x00000009
44
/* GFXREDIR_CAPS_VERSION2_0 */
45
#define GFXREDIR_CMDID_OPEN_POOL 0x0000000a
46
#define GFXREDIR_CMDID_CLOSE_POOL 0x0000000b
47
#define GFXREDIR_CMDID_CREATE_BUFFER 0x0000000c
48
#define GFXREDIR_CMDID_DESTROY_BUFFER 0x0000000d
49
#define GFXREDIR_CMDID_PRESENT_BUFFER 0x0000000e
50
#define GFXREDIR_CMDID_PRESENT_BUFFER_ACK 0x0000000f
51
52
/* GFXREDIR_HEADER */
53
#define GFXREDIR_HEADER_SIZE 8
54
55
/* GFXREDIR_CAPS_HEADER */
56
#define GFXREDIR_CAPS_HEADER_SIZE 12
57
/* GFXREDIR_CAPS_HEADER.signature */
58
#define GFXREDIR_CAPS_SIGNATURE 0x53504143
/* = 'SPAC' */
59
/* GFXREDIR_CAPS_HEADER.version */
60
#define GFXREDIR_CAPS_VERSION1 0x1
61
#define GFXREDIR_CAPS_VERSION2_0 0x2000
62
63
/* GFXREDIR_CREATE_BUFFER_PDU.format */
64
#define GFXREDIR_BUFFER_PIXEL_FORMAT_XRGB_8888 1
65
#define GFXREDIR_BUFFER_PIXEL_FORMAT_ARGB_8888 2
66
67
/* GFXREDIR_PRESENT_BUFFER_PDU.numOpaqueRects */
68
#define GFXREDIR_MAX_OPAQUE_RECTS 0x10
69
70
typedef
struct
71
{
72
UINT32 cmdId;
73
UINT32 length;
74
}
GFXREDIR_HEADER
;
75
76
typedef
struct
77
{
78
UINT16 version;
// GFXREDIR_CHANNEL_VERSION_LEGACY
79
}
GFXREDIR_LEGACY_CAPS_PDU
;
80
81
typedef
struct
82
{
83
UINT32 signature;
// GFXREDIR_CAPS_SIGNATURE
84
UINT32 version;
// GFXREDIR_CAPS_VERSION
85
UINT32 length;
// GFXREDIR_CAPS_HEADER_SIZE + size of capsData
86
}
GFXREDIR_CAPS_HEADER
;
87
88
typedef
struct
89
{
90
GFXREDIR_CAPS_HEADER
header;
91
UINT32 supportedFeatures;
/* Reserved for future extensions */
92
}
GFXREDIR_CAPS_V2_0_PDU
;
93
94
typedef
struct
95
{
96
UINT32 errorCode;
97
}
GFXREDIR_ERROR_PDU
;
98
99
typedef
struct
100
{
101
UINT32 length;
// length of caps;
102
const
BYTE* caps;
// points variable length array of GFXREDIR_CAPS_HEADER.
103
}
GFXREDIR_CAPS_ADVERTISE_PDU
;
104
105
typedef
struct
106
{
107
UINT32 version;
// confirmed version, must be one of advertised by client.
108
UINT32 length;
// GFXREDIR_CAPS_HEADER_SIZE + size of capsData.
109
const
BYTE* capsData;
// confirmed capsData from selected GFXREDIR_CAPS_HEADER.capsData.
110
}
GFXREDIR_CAPS_CONFIRM_PDU
;
111
112
typedef
struct
113
{
114
UINT64 poolId;
115
UINT64 poolSize;
116
UINT32 sectionNameLength;
// number of characters, must include null terminated char.
117
const
unsigned
short
* sectionName;
// Windows-style 2 bytes wchar_t with null-terminated.
118
}
GFXREDIR_OPEN_POOL_PDU
;
119
120
typedef
struct
121
{
122
UINT64 poolId;
123
}
GFXREDIR_CLOSE_POOL_PDU
;
124
125
typedef
struct
126
{
127
UINT64 poolId;
128
UINT64 bufferId;
129
UINT64 offset;
130
UINT32 stride;
131
UINT32 width;
132
UINT32 height;
133
UINT32 format;
// GFXREDIR_BUFFER_PIXEL_FORMAT_
134
}
GFXREDIR_CREATE_BUFFER_PDU
;
135
136
typedef
struct
137
{
138
UINT64 bufferId;
139
}
GFXREDIR_DESTROY_BUFFER_PDU
;
140
141
typedef
struct
142
{
143
UINT64 timestamp;
144
UINT64 presentId;
145
UINT64 windowId;
146
UINT64 bufferId;
147
UINT32 orientation;
// 0, 90, 180 or 270.
148
UINT32 targetWidth;
149
UINT32 targetHeight;
150
RECTANGLE_32
dirtyRect;
151
UINT32 numOpaqueRects;
152
RECTANGLE_32
* opaqueRects;
153
}
GFXREDIR_PRESENT_BUFFER_PDU
;
154
155
typedef
struct
156
{
157
UINT64 windowId;
158
UINT64 presentId;
159
}
GFXREDIR_PRESENT_BUFFER_ACK_PDU
;
160
161
#ifdef __cplusplus
162
}
163
#endif
164
165
#endif
/* FREERDP_CHANNEL_GFXREDIR_H */
GFXREDIR_CAPS_ADVERTISE_PDU
Definition:
channels/gfxredir.h:100
GFXREDIR_CAPS_CONFIRM_PDU
Definition:
channels/gfxredir.h:106
GFXREDIR_CAPS_HEADER
Definition:
channels/gfxredir.h:82
GFXREDIR_CAPS_V2_0_PDU
Definition:
channels/gfxredir.h:89
GFXREDIR_CLOSE_POOL_PDU
Definition:
channels/gfxredir.h:121
GFXREDIR_CREATE_BUFFER_PDU
Definition:
channels/gfxredir.h:126
GFXREDIR_DESTROY_BUFFER_PDU
Definition:
channels/gfxredir.h:137
GFXREDIR_ERROR_PDU
Definition:
channels/gfxredir.h:95
GFXREDIR_HEADER
Definition:
channels/gfxredir.h:71
GFXREDIR_LEGACY_CAPS_PDU
Definition:
channels/gfxredir.h:77
GFXREDIR_OPEN_POOL_PDU
Definition:
channels/gfxredir.h:113
GFXREDIR_PRESENT_BUFFER_ACK_PDU
Definition:
channels/gfxredir.h:156
GFXREDIR_PRESENT_BUFFER_PDU
Definition:
channels/gfxredir.h:142
RECTANGLE_32
Definition:
types.h:117
include
freerdp
channels
gfxredir.h
Generated by
1.9.1