FreeRDP
include/freerdp/gdi/gdi.h File Reference
#include <winpr/wlog.h>
#include <freerdp/api.h>
#include <freerdp/types.h>
#include <freerdp/log.h>
#include <freerdp/codec/color.h>
#include <freerdp/codec/region.h>
#include <freerdp/client/rdpgfx.h>
#include <freerdp/client/geometry.h>
#include <freerdp/client/video.h>

Data Structures

struct  GDIOBJECT
 
struct  GDI_RECT
 
struct  GDI_RGN
 
struct  GDI_BITMAP
 
struct  GDI_PEN
 
struct  GDI_PALETTEENTRY
 
struct  GDI_PALETTE
 
struct  GDI_POINT
 
struct  GDI_BRUSH
 
struct  GDI_WND
 
struct  GDI_DC
 
struct  gdiBitmap
 
struct  gdiGlyph
 
struct  rdpGdi
 

Macros

#define GDI_R2_BLACK   0x01 /* D = 0 */
 
#define GDI_R2_NOTMERGEPEN   0x02 /* D = ~(D | P) */
 
#define GDI_R2_MASKNOTPEN   0x03 /* D = D & ~P */
 
#define GDI_R2_NOTCOPYPEN   0x04 /* D = ~P */
 
#define GDI_R2_MASKPENNOT   0x05 /* D = P & ~D */
 
#define GDI_R2_NOT   0x06 /* D = ~D */
 
#define GDI_R2_XORPEN   0x07 /* D = D ^ P */
 
#define GDI_R2_NOTMASKPEN   0x08 /* D = ~(D & P) */
 
#define GDI_R2_MASKPEN   0x09 /* D = D & P */
 
#define GDI_R2_NOTXORPEN   0x0A /* D = ~(D ^ P) */
 
#define GDI_R2_NOP   0x0B /* D = D */
 
#define GDI_R2_MERGENOTPEN   0x0C /* D = D | ~P */
 
#define GDI_R2_COPYPEN   0x0D /* D = P */
 
#define GDI_R2_MERGEPENNOT   0x0E /* D = P | ~D */
 
#define GDI_R2_MERGEPEN   0x0F /* D = P | D */
 
#define GDI_R2_WHITE   0x10 /* D = 1 */
 
#define GDI_BLACKNESS   0x00000042
 
#define GDI_DPSoon   0x00010289
 
#define GDI_DPSona   0x00020C89
 
#define GDI_PSon   0x000300AA
 
#define GDI_SDPona   0x00040C88
 
#define GDI_DPon   0x000500A9
 
#define GDI_PDSxnon   0x00060865
 
#define GDI_PDSaon   0x000702C5
 
#define GDI_SDPnaa   0x00080F08
 
#define GDI_PDSxon   0x00090245
 
#define GDI_DPna   0x000A0329
 
#define GDI_PSDnaon   0x000B0B2A
 
#define GDI_SPna   0x000C0324
 
#define GDI_PDSnaon   0x000D0B25
 
#define GDI_PDSonon   0x000E08A5
 
#define GDI_Pn   0x000F0001
 
#define GDI_PDSona   0x00100C85
 
#define GDI_NOTSRCERASE   0x001100A6
 
#define GDI_SDPxnon   0x00120868
 
#define GDI_SDPaon   0x001302C8
 
#define GDI_DPSxnon   0x00140869
 
#define GDI_DPSaon   0x001502C9
 
#define GDI_PSDPSanaxx   0x00165CCA
 
#define GDI_SSPxDSxaxn   0x00171D54
 
#define GDI_SPxPDxa   0x00180D59
 
#define GDI_SDPSanaxn   0x00191CC8
 
#define GDI_PDSPaox   0x001A06C5
 
#define GDI_SDPSxaxn   0x001B0768
 
#define GDI_PSDPaox   0x001C06CA
 
#define GDI_DSPDxaxn   0x001D0766
 
#define GDI_PDSox   0x001E01A5
 
#define GDI_PDSoan   0x001F0385
 
#define GDI_DPSnaa   0x00200F09
 
#define GDI_SDPxon   0x00210248
 
#define GDI_DSna   0x00220326
 
#define GDI_SPDnaon   0x00230B24
 
#define GDI_SPxDSxa   0x00240D55
 
#define GDI_PDSPanaxn   0x00251CC5
 
#define GDI_SDPSaox   0x002606C8
 
#define GDI_SDPSxnox   0x00271868
 
#define GDI_DPSxa   0x00280369
 
#define GDI_PSDPSaoxxn   0x002916CA
 
#define GDI_DPSana   0x002A0CC9
 
#define GDI_SSPxPDxaxn   0x002B1D58
 
#define GDI_SPDSoax   0x002C0784
 
#define GDI_PSDnox   0x002D060A
 
#define GDI_PSDPxox   0x002E064A
 
#define GDI_PSDnoan   0x002F0E2A
 
#define GDI_PSna   0x0030032A
 
#define GDI_SDPnaon   0x00310B28
 
#define GDI_SDPSoox   0x00320688
 
#define GDI_NOTSRCCOPY   0x00330008
 
#define GDI_SPDSaox   0x003406C4
 
#define GDI_SPDSxnox   0x00351864
 
#define GDI_SDPox   0x003601A8
 
#define GDI_SDPoan   0x00370388
 
#define GDI_PSDPoax   0x0038078A
 
#define GDI_SPDnox   0x00390604
 
#define GDI_SPDSxox   0x003A0644
 
#define GDI_SPDnoan   0x003B0E24
 
#define GDI_PSx   0x003C004A
 
#define GDI_SPDSonox   0x003D18A4
 
#define GDI_SPDSnaox   0x003E1B24
 
#define GDI_PSan   0x003F00EA
 
#define GDI_PSDnaa   0x00400F0A
 
#define GDI_DPSxon   0x00410249
 
#define GDI_SDxPDxa   0x00420D5D
 
#define GDI_SPDSanaxn   0x00431CC4
 
#define GDI_SRCERASE   0x00440328
 
#define GDI_DPSnaon   0x00450B29
 
#define GDI_DSPDaox   0x004606C6
 
#define GDI_PSDPxaxn   0x0047076A
 
#define GDI_SDPxa   0x00480368
 
#define GDI_PDSPDaoxxn   0x004916C5
 
#define GDI_DPSDoax   0x004A0789
 
#define GDI_PDSnox   0x004B0605
 
#define GDI_SDPana   0x004C0CC8
 
#define GDI_SSPxDSxoxn   0x004D1954
 
#define GDI_PDSPxox   0x004E0645
 
#define GDI_PDSnoan   0x004F0E25
 
#define GDI_PDna   0x00500325
 
#define GDI_DSPnaon   0x00510B26
 
#define GDI_DPSDaox   0x005206C9
 
#define GDI_SPDSxaxn   0x00530764
 
#define GDI_DPSonon   0x005408A9
 
#define GDI_DSTINVERT   0x00550009
 
#define GDI_DPSox   0x005601A9
 
#define GDI_DPSoan   0x00570389
 
#define GDI_PDSPoax   0x00580785
 
#define GDI_DPSnox   0x00590609
 
#define GDI_PATINVERT   0x005A0049
 
#define GDI_DPSDonox   0x005B18A9
 
#define GDI_DPSDxox   0x005C0649
 
#define GDI_DPSnoan   0x005D0E29
 
#define GDI_DPSDnaox   0x005E1B29
 
#define GDI_DPan   0x005F00E9
 
#define GDI_PDSxa   0x00600365
 
#define GDI_DSPDSaoxxn   0x006116C6
 
#define GDI_DSPDoax   0x00620786
 
#define GDI_SDPnox   0x00630608
 
#define GDI_SDPSoax   0x00640788
 
#define GDI_DSPnox   0x00650606
 
#define GDI_SRCINVERT   0x00660046
 
#define GDI_SDPSonox   0x006718A8
 
#define GDI_DSPDSonoxxn   0x006858A6
 
#define GDI_PDSxxn   0x00690145
 
#define GDI_DPSax   0x006A01E9
 
#define GDI_PSDPSoaxxn   0x006B178A
 
#define GDI_SDPax   0x006C01E8
 
#define GDI_PDSPDoaxxn   0x006D1785
 
#define GDI_SDPSnoax   0x006E1E28
 
#define GDI_PDSxnan   0x006F0C65
 
#define GDI_PDSana   0x00700CC5
 
#define GDI_SSDxPDxaxn   0x00711D5C
 
#define GDI_SDPSxox   0x00720648
 
#define GDI_SDPnoan   0x00730E28
 
#define GDI_DSPDxox   0x00740646
 
#define GDI_DSPnoan   0x00750E26
 
#define GDI_SDPSnaox   0x00761B28
 
#define GDI_DSan   0x007700E6
 
#define GDI_PDSax   0x007801E5
 
#define GDI_DSPDSoaxxn   0x00791786
 
#define GDI_DPSDnoax   0x007A1E29
 
#define GDI_SDPxnan   0x007B0C68
 
#define GDI_SPDSnoax   0x007C1E24
 
#define GDI_DPSxnan   0x007D0C69
 
#define GDI_SPxDSxo   0x007E0955
 
#define GDI_DPSaan   0x007F03C9
 
#define GDI_DPSaa   0x008003E9
 
#define GDI_SPxDSxon   0x00810975
 
#define GDI_DPSxna   0x00820C49
 
#define GDI_SPDSnoaxn   0x00831E04
 
#define GDI_SDPxna   0x00840C48
 
#define GDI_PDSPnoaxn   0x00851E05
 
#define GDI_DSPDSoaxx   0x008617A6
 
#define GDI_PDSaxn   0x008701C5
 
#define GDI_SRCAND   0x008800C6
 
#define GDI_SDPSnaoxn   0x00891B08
 
#define GDI_DSPnoa   0x008A0E06
 
#define GDI_DSPDxoxn   0x008B0666
 
#define GDI_SDPnoa   0x008C0E08
 
#define GDI_SDPSxoxn   0x008D0668
 
#define GDI_SSDxPDxax   0x008E1D7C
 
#define GDI_PDSanan   0x008F0CE5
 
#define GDI_PDSxna   0x00900C45
 
#define GDI_SDPSnoaxn   0x00911E08
 
#define GDI_DPSDPoaxx   0x009217A9
 
#define GDI_SPDaxn   0x009301C4
 
#define GDI_PSDPSoaxx   0x009417AA
 
#define GDI_DPSaxn   0x009501C9
 
#define GDI_DPSxx   0x00960169
 
#define GDI_PSDPSonoxx   0x0097588A
 
#define GDI_SDPSonoxn   0x00981888
 
#define GDI_DSxn   0x00990066
 
#define GDI_DPSnax   0x009A0709
 
#define GDI_SDPSoaxn   0x009B07A8
 
#define GDI_SPDnax   0x009C0704
 
#define GDI_DSPDoaxn   0x009D07A6
 
#define GDI_DSPDSaoxx   0x009E16E6
 
#define GDI_PDSxan   0x009F0345
 
#define GDI_DPa   0x00A000C9
 
#define GDI_PDSPnaoxn   0x00A11B05
 
#define GDI_DPSnoa   0x00A20E09
 
#define GDI_DPSDxoxn   0x00A30669
 
#define GDI_PDSPonoxn   0x00A41885
 
#define GDI_PDxn   0x00A50065
 
#define GDI_DSPnax   0x00A60706
 
#define GDI_PDSPoaxn   0x00A707A5
 
#define GDI_DPSoa   0x00A803A9
 
#define GDI_DPSoxn   0x00A90189
 
#define GDI_DSTCOPY   0x00AA0029
 
#define GDI_DPSono   0x00AB0889
 
#define GDI_SPDSxax   0x00AC0744
 
#define GDI_DPSDaoxn   0x00AD06E9
 
#define GDI_DSPnao   0x00AE0B06
 
#define GDI_DPno   0x00AF0229
 
#define GDI_PDSnoa   0x00B00E05
 
#define GDI_PDSPxoxn   0x00B10665
 
#define GDI_SSPxDSxox   0x00B21974
 
#define GDI_SDPanan   0x00B30CE8
 
#define GDI_PSDnax   0x00B4070A
 
#define GDI_DPSDoaxn   0x00B507A9
 
#define GDI_DPSDPaoxx   0x00B616E9
 
#define GDI_SDPxan   0x00B70348
 
#define GDI_PSDPxax   0x00B8074A
 
#define GDI_DSPDaoxn   0x00B906E6
 
#define GDI_DPSnao   0x00BA0B09
 
#define GDI_MERGEPAINT   0x00BB0226
 
#define GDI_SPDSanax   0x00BC1CE4
 
#define GDI_SDxPDxan   0x00BD0D7D
 
#define GDI_DPSxo   0x00BE0269
 
#define GDI_DPSano   0x00BF08C9
 
#define GDI_MERGECOPY   0x00C000CA
 
#define GDI_SPDSnaoxn   0x00C11B04
 
#define GDI_SPDSonoxn   0x00C21884
 
#define GDI_PSxn   0x00C3006A
 
#define GDI_SPDnoa   0x00C40E04
 
#define GDI_SPDSxoxn   0x00C50664
 
#define GDI_SDPnax   0x00C60708
 
#define GDI_PSDPoaxn   0x00C707AA
 
#define GDI_SDPoa   0x00C803A8
 
#define GDI_SPDoxn   0x00C90184
 
#define GDI_DPSDxax   0x00CA0749
 
#define GDI_SPDSaoxn   0x00CB06E4
 
#define GDI_SRCCOPY   0x00CC0020
 
#define GDI_SDPono   0x00CD0888
 
#define GDI_SDPnao   0x00CE0B08
 
#define GDI_SPno   0x00CF0224
 
#define GDI_PSDnoa   0x00D00E0A
 
#define GDI_PSDPxoxn   0x00D1066A
 
#define GDI_PDSnax   0x00D20705
 
#define GDI_SPDSoaxn   0x00D307A4
 
#define GDI_SSPxPDxax   0x00D41D78
 
#define GDI_DPSanan   0x00D50CE9
 
#define GDI_PSDPSaoxx   0x00D616EA
 
#define GDI_DPSxan   0x00D70349
 
#define GDI_PDSPxax   0x00D80745
 
#define GDI_SDPSaoxn   0x00D906E8
 
#define GDI_DPSDanax   0x00DA1CE9
 
#define GDI_SPxDSxan   0x00DB0D75
 
#define GDI_SPDnao   0x00DC0B04
 
#define GDI_SDno   0x00DD0228
 
#define GDI_SDPxo   0x00DE0268
 
#define GDI_SDPano   0x00DF08C8
 
#define GDI_PDSoa   0x00E003A5
 
#define GDI_PDSoxn   0x00E10185
 
#define GDI_DSPDxax   0x00E20746
 
#define GDI_PSDPaoxn   0x00E306EA
 
#define GDI_SDPSxax   0x00E40748
 
#define GDI_PDSPaoxn   0x00E506E5
 
#define GDI_SDPSanax   0x00E61CE8
 
#define GDI_SPxPDxan   0x00E70D79
 
#define GDI_SSPxDSxax   0x00E81D74
 
#define GDI_DSPDSanaxxn   0x00E95CE6
 
#define GDI_DPSao   0x00EA02E9
 
#define GDI_DPSxno   0x00EB0849
 
#define GDI_SDPao   0x00EC02E8
 
#define GDI_SDPxno   0x00ED0848
 
#define GDI_SRCPAINT   0x00EE0086
 
#define GDI_SDPnoo   0x00EF0A08
 
#define GDI_PATCOPY   0x00F00021
 
#define GDI_PDSono   0x00F10885
 
#define GDI_PDSnao   0x00F20B05
 
#define GDI_PSno   0x00F3022A
 
#define GDI_PSDnao   0x00F40B0A
 
#define GDI_PDno   0x00F50225
 
#define GDI_PDSxo   0x00F60265
 
#define GDI_PDSano   0x00F708C5
 
#define GDI_PDSao   0x00F802E5
 
#define GDI_PDSxno   0x00F90845
 
#define GDI_DPo   0x00FA0089
 
#define GDI_PATPAINT   0x00FB0A09
 
#define GDI_PSo   0x00FC008A
 
#define GDI_PSDnoo   0x00FD0A0A
 
#define GDI_DPSoo   0x00FE02A9
 
#define GDI_WHITENESS   0x00FF0062
 
#define GDI_GLYPH_ORDER   0xFFFFFFFF
 
#define GDI_BS_SOLID   0x00
 
#define GDI_BS_NULL   0x01
 
#define GDI_BS_HATCHED   0x02
 
#define GDI_BS_PATTERN   0x03
 
#define GDI_HS_HORIZONTAL   0x00
 
#define GDI_HS_VERTICAL   0x01
 
#define GDI_HS_FDIAGONAL   0x02
 
#define GDI_HS_BDIAGONAL   0x03
 
#define GDI_HS_CROSS   0x04
 
#define GDI_HS_DIAGCROSS   0x05
 
#define GDI_PS_SOLID   0x00
 
#define GDI_PS_DASH   0x01
 
#define GDI_PS_NULL   0x05
 
#define GDI_OPAQUE   0x00000001
 
#define GDI_TRANSPARENT   0x00000002
 
#define GDI_FILL_ALTERNATE   0x01
 
#define GDI_FILL_WINDING   0x02
 
#define GDIOBJECT_BITMAP   0x00
 
#define GDIOBJECT_PEN   0x01
 
#define GDIOBJECT_PALETTE   0x02
 
#define GDIOBJECT_BRUSH   0x03
 
#define GDIOBJECT_RECT   0x04
 
#define GDIOBJECT_REGION   0x05
 
#define NULLREGION   0x01
 
#define SIMPLEREGION   0x02
 
#define COMPLEXREGION   0x03
 

Typedefs

typedef GDIOBJECTHGDIOBJECT
 
typedef GDI_RECTHGDI_RECT
 
typedef GDI_RGNHGDI_RGN
 
typedef GDI_BITMAPHGDI_BITMAP
 
typedef GDI_PENHGDI_PEN
 
typedef GDI_PALETTEHGDI_PALETTE
 
typedef GDI_POINTHGDI_POINT
 
typedef GDI_BRUSHHGDI_BRUSH
 
typedef GDI_WNDHGDI_WND
 
typedef GDI_DCHGDI_DC
 

Functions

FREERDP_API DWORD gdi_rop3_code (BYTE code)
 
FREERDP_API const char * gdi_rop3_code_string (BYTE code)
 
FREERDP_API const char * gdi_rop3_string (DWORD rop)
 
FREERDP_API UINT32 gdi_get_pixel_format (UINT32 bitsPerPixel)
 
FREERDP_API BOOL gdi_decode_color (rdpGdi *gdi, const UINT32 srcColor, UINT32 *color, UINT32 *format)
 
FREERDP_API BOOL gdi_resize (rdpGdi *gdi, UINT32 width, UINT32 height)
 
FREERDP_API BOOL gdi_resize_ex (rdpGdi *gdi, UINT32 width, UINT32 height, UINT32 stride, UINT32 format, BYTE *buffer, void(*pfree)(void *))
 
FREERDP_API BOOL gdi_init (freerdp *instance, UINT32 format)
 
FREERDP_API BOOL gdi_init_ex (freerdp *instance, UINT32 format, UINT32 stride, BYTE *buffer, void(*pfree)(void *))
 
FREERDP_API void gdi_free (freerdp *instance)
 
FREERDP_API BOOL gdi_send_suppress_output (rdpGdi *gdi, BOOL suppress)
 

Macro Definition Documentation

◆ COMPLEXREGION

#define COMPLEXREGION   0x03

◆ GDI_BLACKNESS

#define GDI_BLACKNESS   0x00000042

◆ GDI_BS_HATCHED

#define GDI_BS_HATCHED   0x02

◆ GDI_BS_NULL

#define GDI_BS_NULL   0x01

◆ GDI_BS_PATTERN

#define GDI_BS_PATTERN   0x03

◆ GDI_BS_SOLID

#define GDI_BS_SOLID   0x00

◆ GDI_DPa

#define GDI_DPa   0x00A000C9

◆ GDI_DPan

#define GDI_DPan   0x005F00E9

◆ GDI_DPna

#define GDI_DPna   0x000A0329

◆ GDI_DPno

#define GDI_DPno   0x00AF0229

◆ GDI_DPo

#define GDI_DPo   0x00FA0089

◆ GDI_DPon

#define GDI_DPon   0x000500A9

◆ GDI_DPSaa

#define GDI_DPSaa   0x008003E9

◆ GDI_DPSaan

#define GDI_DPSaan   0x007F03C9

◆ GDI_DPSana

#define GDI_DPSana   0x002A0CC9

◆ GDI_DPSanan

#define GDI_DPSanan   0x00D50CE9

◆ GDI_DPSano

#define GDI_DPSano   0x00BF08C9

◆ GDI_DPSao

#define GDI_DPSao   0x00EA02E9

◆ GDI_DPSaon

#define GDI_DPSaon   0x001502C9

◆ GDI_DPSax

#define GDI_DPSax   0x006A01E9

◆ GDI_DPSaxn

#define GDI_DPSaxn   0x009501C9

◆ GDI_DPSDanax

#define GDI_DPSDanax   0x00DA1CE9

◆ GDI_DPSDaox

#define GDI_DPSDaox   0x005206C9

◆ GDI_DPSDaoxn

#define GDI_DPSDaoxn   0x00AD06E9

◆ GDI_DPSDnaox

#define GDI_DPSDnaox   0x005E1B29

◆ GDI_DPSDnoax

#define GDI_DPSDnoax   0x007A1E29

◆ GDI_DPSDoax

#define GDI_DPSDoax   0x004A0789

◆ GDI_DPSDoaxn

#define GDI_DPSDoaxn   0x00B507A9

◆ GDI_DPSDonox

#define GDI_DPSDonox   0x005B18A9

◆ GDI_DPSDPaoxx

#define GDI_DPSDPaoxx   0x00B616E9

◆ GDI_DPSDPoaxx

#define GDI_DPSDPoaxx   0x009217A9

◆ GDI_DPSDxax

#define GDI_DPSDxax   0x00CA0749

◆ GDI_DPSDxox

#define GDI_DPSDxox   0x005C0649

◆ GDI_DPSDxoxn

#define GDI_DPSDxoxn   0x00A30669

◆ GDI_DPSnaa

#define GDI_DPSnaa   0x00200F09

◆ GDI_DPSnao

#define GDI_DPSnao   0x00BA0B09

◆ GDI_DPSnaon

#define GDI_DPSnaon   0x00450B29

◆ GDI_DPSnax

#define GDI_DPSnax   0x009A0709

◆ GDI_DPSnoa

#define GDI_DPSnoa   0x00A20E09

◆ GDI_DPSnoan

#define GDI_DPSnoan   0x005D0E29

◆ GDI_DPSnox

#define GDI_DPSnox   0x00590609

◆ GDI_DPSoa

#define GDI_DPSoa   0x00A803A9

◆ GDI_DPSoan

#define GDI_DPSoan   0x00570389

◆ GDI_DPSona

#define GDI_DPSona   0x00020C89

◆ GDI_DPSono

#define GDI_DPSono   0x00AB0889

◆ GDI_DPSonon

#define GDI_DPSonon   0x005408A9

◆ GDI_DPSoo

#define GDI_DPSoo   0x00FE02A9

◆ GDI_DPSoon

#define GDI_DPSoon   0x00010289

◆ GDI_DPSox

#define GDI_DPSox   0x005601A9

◆ GDI_DPSoxn

#define GDI_DPSoxn   0x00A90189

◆ GDI_DPSxa

#define GDI_DPSxa   0x00280369

◆ GDI_DPSxan

#define GDI_DPSxan   0x00D70349

◆ GDI_DPSxna

#define GDI_DPSxna   0x00820C49

◆ GDI_DPSxnan

#define GDI_DPSxnan   0x007D0C69

◆ GDI_DPSxno

#define GDI_DPSxno   0x00EB0849

◆ GDI_DPSxnon

#define GDI_DPSxnon   0x00140869

◆ GDI_DPSxo

#define GDI_DPSxo   0x00BE0269

◆ GDI_DPSxon

#define GDI_DPSxon   0x00410249

◆ GDI_DPSxx

#define GDI_DPSxx   0x00960169

◆ GDI_DSan

#define GDI_DSan   0x007700E6

◆ GDI_DSna

#define GDI_DSna   0x00220326

◆ GDI_DSPDaox

#define GDI_DSPDaox   0x004606C6

◆ GDI_DSPDaoxn

#define GDI_DSPDaoxn   0x00B906E6

◆ GDI_DSPDoax

#define GDI_DSPDoax   0x00620786

◆ GDI_DSPDoaxn

#define GDI_DSPDoaxn   0x009D07A6

◆ GDI_DSPDSanaxxn

#define GDI_DSPDSanaxxn   0x00E95CE6

◆ GDI_DSPDSaoxx

#define GDI_DSPDSaoxx   0x009E16E6

◆ GDI_DSPDSaoxxn

#define GDI_DSPDSaoxxn   0x006116C6

◆ GDI_DSPDSoaxx

#define GDI_DSPDSoaxx   0x008617A6

◆ GDI_DSPDSoaxxn

#define GDI_DSPDSoaxxn   0x00791786

◆ GDI_DSPDSonoxxn

#define GDI_DSPDSonoxxn   0x006858A6

◆ GDI_DSPDxax

#define GDI_DSPDxax   0x00E20746

◆ GDI_DSPDxaxn

#define GDI_DSPDxaxn   0x001D0766

◆ GDI_DSPDxox

#define GDI_DSPDxox   0x00740646

◆ GDI_DSPDxoxn

#define GDI_DSPDxoxn   0x008B0666

◆ GDI_DSPnao

#define GDI_DSPnao   0x00AE0B06

◆ GDI_DSPnaon

#define GDI_DSPnaon   0x00510B26

◆ GDI_DSPnax

#define GDI_DSPnax   0x00A60706

◆ GDI_DSPnoa

#define GDI_DSPnoa   0x008A0E06

◆ GDI_DSPnoan

#define GDI_DSPnoan   0x00750E26

◆ GDI_DSPnox

#define GDI_DSPnox   0x00650606

◆ GDI_DSTCOPY

#define GDI_DSTCOPY   0x00AA0029

◆ GDI_DSTINVERT

#define GDI_DSTINVERT   0x00550009

◆ GDI_DSxn

#define GDI_DSxn   0x00990066

◆ GDI_FILL_ALTERNATE

#define GDI_FILL_ALTERNATE   0x01

◆ GDI_FILL_WINDING

#define GDI_FILL_WINDING   0x02

◆ GDI_GLYPH_ORDER

#define GDI_GLYPH_ORDER   0xFFFFFFFF

◆ GDI_HS_BDIAGONAL

#define GDI_HS_BDIAGONAL   0x03

◆ GDI_HS_CROSS

#define GDI_HS_CROSS   0x04

◆ GDI_HS_DIAGCROSS

#define GDI_HS_DIAGCROSS   0x05

◆ GDI_HS_FDIAGONAL

#define GDI_HS_FDIAGONAL   0x02

◆ GDI_HS_HORIZONTAL

#define GDI_HS_HORIZONTAL   0x00

◆ GDI_HS_VERTICAL

#define GDI_HS_VERTICAL   0x01

◆ GDI_MERGECOPY

#define GDI_MERGECOPY   0x00C000CA

◆ GDI_MERGEPAINT

#define GDI_MERGEPAINT   0x00BB0226

◆ GDI_NOTSRCCOPY

#define GDI_NOTSRCCOPY   0x00330008

◆ GDI_NOTSRCERASE

#define GDI_NOTSRCERASE   0x001100A6

◆ GDI_OPAQUE

#define GDI_OPAQUE   0x00000001

◆ GDI_PATCOPY

#define GDI_PATCOPY   0x00F00021

◆ GDI_PATINVERT

#define GDI_PATINVERT   0x005A0049

◆ GDI_PATPAINT

#define GDI_PATPAINT   0x00FB0A09

◆ GDI_PDna

#define GDI_PDna   0x00500325

◆ GDI_PDno

#define GDI_PDno   0x00F50225

◆ GDI_PDSana

#define GDI_PDSana   0x00700CC5

◆ GDI_PDSanan

#define GDI_PDSanan   0x008F0CE5

◆ GDI_PDSano

#define GDI_PDSano   0x00F708C5

◆ GDI_PDSao

#define GDI_PDSao   0x00F802E5

◆ GDI_PDSaon

#define GDI_PDSaon   0x000702C5

◆ GDI_PDSax

#define GDI_PDSax   0x007801E5

◆ GDI_PDSaxn

#define GDI_PDSaxn   0x008701C5

◆ GDI_PDSnao

#define GDI_PDSnao   0x00F20B05

◆ GDI_PDSnaon

#define GDI_PDSnaon   0x000D0B25

◆ GDI_PDSnax

#define GDI_PDSnax   0x00D20705

◆ GDI_PDSnoa

#define GDI_PDSnoa   0x00B00E05

◆ GDI_PDSnoan

#define GDI_PDSnoan   0x004F0E25

◆ GDI_PDSnox

#define GDI_PDSnox   0x004B0605

◆ GDI_PDSoa

#define GDI_PDSoa   0x00E003A5

◆ GDI_PDSoan

#define GDI_PDSoan   0x001F0385

◆ GDI_PDSona

#define GDI_PDSona   0x00100C85

◆ GDI_PDSono

#define GDI_PDSono   0x00F10885

◆ GDI_PDSonon

#define GDI_PDSonon   0x000E08A5

◆ GDI_PDSox

#define GDI_PDSox   0x001E01A5

◆ GDI_PDSoxn

#define GDI_PDSoxn   0x00E10185

◆ GDI_PDSPanaxn

#define GDI_PDSPanaxn   0x00251CC5

◆ GDI_PDSPaox

#define GDI_PDSPaox   0x001A06C5

◆ GDI_PDSPaoxn

#define GDI_PDSPaoxn   0x00E506E5

◆ GDI_PDSPDaoxxn

#define GDI_PDSPDaoxxn   0x004916C5

◆ GDI_PDSPDoaxxn

#define GDI_PDSPDoaxxn   0x006D1785

◆ GDI_PDSPnaoxn

#define GDI_PDSPnaoxn   0x00A11B05

◆ GDI_PDSPnoaxn

#define GDI_PDSPnoaxn   0x00851E05

◆ GDI_PDSPoax

#define GDI_PDSPoax   0x00580785

◆ GDI_PDSPoaxn

#define GDI_PDSPoaxn   0x00A707A5

◆ GDI_PDSPonoxn

#define GDI_PDSPonoxn   0x00A41885

◆ GDI_PDSPxax

#define GDI_PDSPxax   0x00D80745

◆ GDI_PDSPxox

#define GDI_PDSPxox   0x004E0645

◆ GDI_PDSPxoxn

#define GDI_PDSPxoxn   0x00B10665

◆ GDI_PDSxa

#define GDI_PDSxa   0x00600365

◆ GDI_PDSxan

#define GDI_PDSxan   0x009F0345

◆ GDI_PDSxna

#define GDI_PDSxna   0x00900C45

◆ GDI_PDSxnan

#define GDI_PDSxnan   0x006F0C65

◆ GDI_PDSxno

#define GDI_PDSxno   0x00F90845

◆ GDI_PDSxnon

#define GDI_PDSxnon   0x00060865

◆ GDI_PDSxo

#define GDI_PDSxo   0x00F60265

◆ GDI_PDSxon

#define GDI_PDSxon   0x00090245

◆ GDI_PDSxxn

#define GDI_PDSxxn   0x00690145

◆ GDI_PDxn

#define GDI_PDxn   0x00A50065

◆ GDI_Pn

#define GDI_Pn   0x000F0001

◆ GDI_PS_DASH

#define GDI_PS_DASH   0x01

◆ GDI_PS_NULL

#define GDI_PS_NULL   0x05

◆ GDI_PS_SOLID

#define GDI_PS_SOLID   0x00

◆ GDI_PSan

#define GDI_PSan   0x003F00EA

◆ GDI_PSDnaa

#define GDI_PSDnaa   0x00400F0A

◆ GDI_PSDnao

#define GDI_PSDnao   0x00F40B0A

◆ GDI_PSDnaon

#define GDI_PSDnaon   0x000B0B2A

◆ GDI_PSDnax

#define GDI_PSDnax   0x00B4070A

◆ GDI_PSDnoa

#define GDI_PSDnoa   0x00D00E0A

◆ GDI_PSDnoan

#define GDI_PSDnoan   0x002F0E2A

◆ GDI_PSDnoo

#define GDI_PSDnoo   0x00FD0A0A

◆ GDI_PSDnox

#define GDI_PSDnox   0x002D060A

◆ GDI_PSDPaox

#define GDI_PSDPaox   0x001C06CA

◆ GDI_PSDPaoxn

#define GDI_PSDPaoxn   0x00E306EA

◆ GDI_PSDPoax

#define GDI_PSDPoax   0x0038078A

◆ GDI_PSDPoaxn

#define GDI_PSDPoaxn   0x00C707AA

◆ GDI_PSDPSanaxx

#define GDI_PSDPSanaxx   0x00165CCA

◆ GDI_PSDPSaoxx

#define GDI_PSDPSaoxx   0x00D616EA

◆ GDI_PSDPSaoxxn

#define GDI_PSDPSaoxxn   0x002916CA

◆ GDI_PSDPSoaxx

#define GDI_PSDPSoaxx   0x009417AA

◆ GDI_PSDPSoaxxn

#define GDI_PSDPSoaxxn   0x006B178A

◆ GDI_PSDPSonoxx

#define GDI_PSDPSonoxx   0x0097588A

◆ GDI_PSDPxax

#define GDI_PSDPxax   0x00B8074A

◆ GDI_PSDPxaxn

#define GDI_PSDPxaxn   0x0047076A

◆ GDI_PSDPxox

#define GDI_PSDPxox   0x002E064A

◆ GDI_PSDPxoxn

#define GDI_PSDPxoxn   0x00D1066A

◆ GDI_PSna

#define GDI_PSna   0x0030032A

◆ GDI_PSno

#define GDI_PSno   0x00F3022A

◆ GDI_PSo

#define GDI_PSo   0x00FC008A

◆ GDI_PSon

#define GDI_PSon   0x000300AA

◆ GDI_PSx

#define GDI_PSx   0x003C004A

◆ GDI_PSxn

#define GDI_PSxn   0x00C3006A

◆ GDI_R2_BLACK

#define GDI_R2_BLACK   0x01 /* D = 0 */

FreeRDP: A Remote Desktop Protocol Implementation GDI Library

Copyright 2010-2011 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2016 Armin Novak armin.nosp@m..nov.nosp@m.ak@th.nosp@m.inca.nosp@m.st.co.nosp@m.m Copyright 2016 Thincast Technologies GmbH

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

◆ GDI_R2_COPYPEN

#define GDI_R2_COPYPEN   0x0D /* D = P */

◆ GDI_R2_MASKNOTPEN

#define GDI_R2_MASKNOTPEN   0x03 /* D = D & ~P */

◆ GDI_R2_MASKPEN

#define GDI_R2_MASKPEN   0x09 /* D = D & P */

◆ GDI_R2_MASKPENNOT

#define GDI_R2_MASKPENNOT   0x05 /* D = P & ~D */

◆ GDI_R2_MERGENOTPEN

#define GDI_R2_MERGENOTPEN   0x0C /* D = D | ~P */

◆ GDI_R2_MERGEPEN

#define GDI_R2_MERGEPEN   0x0F /* D = P | D */

◆ GDI_R2_MERGEPENNOT

#define GDI_R2_MERGEPENNOT   0x0E /* D = P | ~D */

◆ GDI_R2_NOP

#define GDI_R2_NOP   0x0B /* D = D */

◆ GDI_R2_NOT

#define GDI_R2_NOT   0x06 /* D = ~D */

◆ GDI_R2_NOTCOPYPEN

#define GDI_R2_NOTCOPYPEN   0x04 /* D = ~P */

◆ GDI_R2_NOTMASKPEN

#define GDI_R2_NOTMASKPEN   0x08 /* D = ~(D & P) */

◆ GDI_R2_NOTMERGEPEN

#define GDI_R2_NOTMERGEPEN   0x02 /* D = ~(D | P) */

◆ GDI_R2_NOTXORPEN

#define GDI_R2_NOTXORPEN   0x0A /* D = ~(D ^ P) */

◆ GDI_R2_WHITE

#define GDI_R2_WHITE   0x10 /* D = 1 */

◆ GDI_R2_XORPEN

#define GDI_R2_XORPEN   0x07 /* D = D ^ P */

◆ GDI_SDno

#define GDI_SDno   0x00DD0228

◆ GDI_SDPana

#define GDI_SDPana   0x004C0CC8

◆ GDI_SDPanan

#define GDI_SDPanan   0x00B30CE8

◆ GDI_SDPano

#define GDI_SDPano   0x00DF08C8

◆ GDI_SDPao

#define GDI_SDPao   0x00EC02E8

◆ GDI_SDPaon

#define GDI_SDPaon   0x001302C8

◆ GDI_SDPax

#define GDI_SDPax   0x006C01E8

◆ GDI_SDPnaa

#define GDI_SDPnaa   0x00080F08

◆ GDI_SDPnao

#define GDI_SDPnao   0x00CE0B08

◆ GDI_SDPnaon

#define GDI_SDPnaon   0x00310B28

◆ GDI_SDPnax

#define GDI_SDPnax   0x00C60708

◆ GDI_SDPnoa

#define GDI_SDPnoa   0x008C0E08

◆ GDI_SDPnoan

#define GDI_SDPnoan   0x00730E28

◆ GDI_SDPnoo

#define GDI_SDPnoo   0x00EF0A08

◆ GDI_SDPnox

#define GDI_SDPnox   0x00630608

◆ GDI_SDPoa

#define GDI_SDPoa   0x00C803A8

◆ GDI_SDPoan

#define GDI_SDPoan   0x00370388

◆ GDI_SDPona

#define GDI_SDPona   0x00040C88

◆ GDI_SDPono

#define GDI_SDPono   0x00CD0888

◆ GDI_SDPox

#define GDI_SDPox   0x003601A8

◆ GDI_SDPSanax

#define GDI_SDPSanax   0x00E61CE8

◆ GDI_SDPSanaxn

#define GDI_SDPSanaxn   0x00191CC8

◆ GDI_SDPSaox

#define GDI_SDPSaox   0x002606C8

◆ GDI_SDPSaoxn

#define GDI_SDPSaoxn   0x00D906E8

◆ GDI_SDPSnaox

#define GDI_SDPSnaox   0x00761B28

◆ GDI_SDPSnaoxn

#define GDI_SDPSnaoxn   0x00891B08

◆ GDI_SDPSnoax

#define GDI_SDPSnoax   0x006E1E28

◆ GDI_SDPSnoaxn

#define GDI_SDPSnoaxn   0x00911E08

◆ GDI_SDPSoax

#define GDI_SDPSoax   0x00640788

◆ GDI_SDPSoaxn

#define GDI_SDPSoaxn   0x009B07A8

◆ GDI_SDPSonox

#define GDI_SDPSonox   0x006718A8

◆ GDI_SDPSonoxn

#define GDI_SDPSonoxn   0x00981888

◆ GDI_SDPSoox

#define GDI_SDPSoox   0x00320688

◆ GDI_SDPSxax

#define GDI_SDPSxax   0x00E40748

◆ GDI_SDPSxaxn

#define GDI_SDPSxaxn   0x001B0768

◆ GDI_SDPSxnox

#define GDI_SDPSxnox   0x00271868

◆ GDI_SDPSxox

#define GDI_SDPSxox   0x00720648

◆ GDI_SDPSxoxn

#define GDI_SDPSxoxn   0x008D0668

◆ GDI_SDPxa

#define GDI_SDPxa   0x00480368

◆ GDI_SDPxan

#define GDI_SDPxan   0x00B70348

◆ GDI_SDPxna

#define GDI_SDPxna   0x00840C48

◆ GDI_SDPxnan

#define GDI_SDPxnan   0x007B0C68

◆ GDI_SDPxno

#define GDI_SDPxno   0x00ED0848

◆ GDI_SDPxnon

#define GDI_SDPxnon   0x00120868

◆ GDI_SDPxo

#define GDI_SDPxo   0x00DE0268

◆ GDI_SDPxon

#define GDI_SDPxon   0x00210248

◆ GDI_SDxPDxa

#define GDI_SDxPDxa   0x00420D5D

◆ GDI_SDxPDxan

#define GDI_SDxPDxan   0x00BD0D7D

◆ GDI_SPDaxn

#define GDI_SPDaxn   0x009301C4

◆ GDI_SPDnao

#define GDI_SPDnao   0x00DC0B04

◆ GDI_SPDnaon

#define GDI_SPDnaon   0x00230B24

◆ GDI_SPDnax

#define GDI_SPDnax   0x009C0704

◆ GDI_SPDnoa

#define GDI_SPDnoa   0x00C40E04

◆ GDI_SPDnoan

#define GDI_SPDnoan   0x003B0E24

◆ GDI_SPDnox

#define GDI_SPDnox   0x00390604

◆ GDI_SPDoxn

#define GDI_SPDoxn   0x00C90184

◆ GDI_SPDSanax

#define GDI_SPDSanax   0x00BC1CE4

◆ GDI_SPDSanaxn

#define GDI_SPDSanaxn   0x00431CC4

◆ GDI_SPDSaox

#define GDI_SPDSaox   0x003406C4

◆ GDI_SPDSaoxn

#define GDI_SPDSaoxn   0x00CB06E4

◆ GDI_SPDSnaox

#define GDI_SPDSnaox   0x003E1B24

◆ GDI_SPDSnaoxn

#define GDI_SPDSnaoxn   0x00C11B04

◆ GDI_SPDSnoax

#define GDI_SPDSnoax   0x007C1E24

◆ GDI_SPDSnoaxn

#define GDI_SPDSnoaxn   0x00831E04

◆ GDI_SPDSoax

#define GDI_SPDSoax   0x002C0784

◆ GDI_SPDSoaxn

#define GDI_SPDSoaxn   0x00D307A4

◆ GDI_SPDSonox

#define GDI_SPDSonox   0x003D18A4

◆ GDI_SPDSonoxn

#define GDI_SPDSonoxn   0x00C21884

◆ GDI_SPDSxax

#define GDI_SPDSxax   0x00AC0744

◆ GDI_SPDSxaxn

#define GDI_SPDSxaxn   0x00530764

◆ GDI_SPDSxnox

#define GDI_SPDSxnox   0x00351864

◆ GDI_SPDSxox

#define GDI_SPDSxox   0x003A0644

◆ GDI_SPDSxoxn

#define GDI_SPDSxoxn   0x00C50664

◆ GDI_SPna

#define GDI_SPna   0x000C0324

◆ GDI_SPno

#define GDI_SPno   0x00CF0224

◆ GDI_SPxDSxa

#define GDI_SPxDSxa   0x00240D55

◆ GDI_SPxDSxan

#define GDI_SPxDSxan   0x00DB0D75

◆ GDI_SPxDSxo

#define GDI_SPxDSxo   0x007E0955

◆ GDI_SPxDSxon

#define GDI_SPxDSxon   0x00810975

◆ GDI_SPxPDxa

#define GDI_SPxPDxa   0x00180D59

◆ GDI_SPxPDxan

#define GDI_SPxPDxan   0x00E70D79

◆ GDI_SRCAND

#define GDI_SRCAND   0x008800C6

◆ GDI_SRCCOPY

#define GDI_SRCCOPY   0x00CC0020

◆ GDI_SRCERASE

#define GDI_SRCERASE   0x00440328

◆ GDI_SRCINVERT

#define GDI_SRCINVERT   0x00660046

◆ GDI_SRCPAINT

#define GDI_SRCPAINT   0x00EE0086

◆ GDI_SSDxPDxax

#define GDI_SSDxPDxax   0x008E1D7C

◆ GDI_SSDxPDxaxn

#define GDI_SSDxPDxaxn   0x00711D5C

◆ GDI_SSPxDSxax

#define GDI_SSPxDSxax   0x00E81D74

◆ GDI_SSPxDSxaxn

#define GDI_SSPxDSxaxn   0x00171D54

◆ GDI_SSPxDSxox

#define GDI_SSPxDSxox   0x00B21974

◆ GDI_SSPxDSxoxn

#define GDI_SSPxDSxoxn   0x004D1954

◆ GDI_SSPxPDxax

#define GDI_SSPxPDxax   0x00D41D78

◆ GDI_SSPxPDxaxn

#define GDI_SSPxPDxaxn   0x002B1D58

◆ GDI_TRANSPARENT

#define GDI_TRANSPARENT   0x00000002

◆ GDI_WHITENESS

#define GDI_WHITENESS   0x00FF0062

◆ GDIOBJECT_BITMAP

#define GDIOBJECT_BITMAP   0x00

◆ GDIOBJECT_BRUSH

#define GDIOBJECT_BRUSH   0x03

◆ GDIOBJECT_PALETTE

#define GDIOBJECT_PALETTE   0x02

◆ GDIOBJECT_PEN

#define GDIOBJECT_PEN   0x01

◆ GDIOBJECT_RECT

#define GDIOBJECT_RECT   0x04

◆ GDIOBJECT_REGION

#define GDIOBJECT_REGION   0x05

◆ NULLREGION

#define NULLREGION   0x01

◆ SIMPLEREGION

#define SIMPLEREGION   0x02

Typedef Documentation

◆ HGDI_BITMAP

◆ HGDI_BRUSH

◆ HGDI_DC

typedef GDI_DC* HGDI_DC

◆ HGDI_PALETTE

◆ HGDI_PEN

typedef GDI_PEN* HGDI_PEN

◆ HGDI_POINT

◆ HGDI_RECT

typedef GDI_RECT* HGDI_RECT

◆ HGDI_RGN

typedef GDI_RGN* HGDI_RGN

◆ HGDI_WND

typedef GDI_WND* HGDI_WND

◆ HGDIOBJECT

Function Documentation

◆ gdi_decode_color()

FREERDP_API BOOL gdi_decode_color ( rdpGdi *  gdi,
const UINT32  srcColor,
UINT32 *  color,
UINT32 *  format 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ gdi_free()

FREERDP_API void gdi_free ( freerdp *  instance)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ gdi_get_pixel_format()

FREERDP_API UINT32 gdi_get_pixel_format ( UINT32  bitsPerPixel)
Here is the caller graph for this function:

◆ gdi_init()

FREERDP_API BOOL gdi_init ( freerdp *  instance,
UINT32  format 
)

Initialize GDI

Parameters
instanceA pointer to the instance to use
formatThe color format for the local framebuffer
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ gdi_init_ex()

FREERDP_API BOOL gdi_init_ex ( freerdp *  instance,
UINT32  format,
UINT32  stride,
BYTE buffer,
void(*)(void *)  pfree 
)

Initialize GDI

Parameters
instanceA pointer to the instance to use
formatThe color format for the local framebuffer
strideThe size of a framebuffer line in bytes
bufferA pointer to a buffer to be used as framebuffer
pfreeA custom function pointer to use to free the framebuffer
Returns
TRUE for success, FALSE for failure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ gdi_resize()

FREERDP_API BOOL gdi_resize ( rdpGdi *  gdi,
UINT32  width,
UINT32  height 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ gdi_resize_ex()

FREERDP_API BOOL gdi_resize_ex ( rdpGdi *  gdi,
UINT32  width,
UINT32  height,
UINT32  stride,
UINT32  format,
BYTE buffer,
void(*)(void *)  pfree 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ gdi_rop3_code()

FREERDP_API DWORD gdi_rop3_code ( BYTE  code)
Here is the caller graph for this function:

◆ gdi_rop3_code_string()

FREERDP_API const char* gdi_rop3_code_string ( BYTE  code)
Here is the caller graph for this function:

◆ gdi_rop3_string()

FREERDP_API const char* gdi_rop3_string ( DWORD  rop)

◆ gdi_send_suppress_output()

FREERDP_API BOOL gdi_send_suppress_output ( rdpGdi *  gdi,
BOOL  suppress 
)
Here is the call graph for this function:
Here is the caller graph for this function: