Refactored BitBlt, implementing everything now.
This commit is contained in:
parent
f17f1475d8
commit
b765374d32
@ -160,7 +160,7 @@ static BOOL xf_set_rop3(xfContext* xfc, UINT32 rop3)
|
|||||||
function = GXequiv;
|
function = GXequiv;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GDI_D:
|
case GDI_DSTCOPY:
|
||||||
function = GXnoop;
|
function = GXnoop;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -318,7 +318,7 @@ out:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Glyph Class */
|
/* Glyph Class */
|
||||||
static BOOL xf_Glyph_New(rdpContext* context, rdpGlyph* glyph)
|
static BOOL xf_Glyph_New(rdpContext* context, const rdpGlyph* glyph)
|
||||||
{
|
{
|
||||||
int scanline;
|
int scanline;
|
||||||
XImage* image;
|
XImage* image;
|
||||||
@ -354,7 +354,7 @@ static void xf_Glyph_Free(rdpContext* context, rdpGlyph* glyph)
|
|||||||
free(glyph);
|
free(glyph);
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL xf_Glyph_Draw(rdpContext* context, rdpGlyph* glyph, UINT32 x,
|
static BOOL xf_Glyph_Draw(rdpContext* context, const rdpGlyph* glyph, UINT32 x,
|
||||||
UINT32 y)
|
UINT32 y)
|
||||||
{
|
{
|
||||||
xfGlyph* xf_glyph;
|
xfGlyph* xf_glyph;
|
||||||
|
@ -54,56 +54,264 @@
|
|||||||
#define GDI_R2_WHITE 0x10 /* D = 1 */
|
#define GDI_R2_WHITE 0x10 /* D = 1 */
|
||||||
|
|
||||||
/* Ternary Raster Operations (ROP3) */
|
/* Ternary Raster Operations (ROP3) */
|
||||||
#define GDI_SRCCOPY 0x00CC0020 /* D = S */
|
#define GDI_BLACKNESS 0x00000042
|
||||||
#define GDI_SRCPAINT 0x00EE0086 /* D = S | D */
|
#define GDI_DPSoon 0x00010289
|
||||||
#define GDI_SRCAND 0x008800C6 /* D = S & D */
|
#define GDI_DPSona 0x00020C89
|
||||||
#define GDI_SRCINVERT 0x00660046 /* D = S ^ D */
|
#define GDI_PSon 0x000300AA
|
||||||
#define GDI_SRCERASE 0x00440328 /* D = S & ~D */
|
#define GDI_SDPona 0x00040C88
|
||||||
#define GDI_NOTSRCCOPY 0x00330008 /* D = ~S */
|
#define GDI_DPon 0x000500A9
|
||||||
#define GDI_NOTSRCERASE 0x001100A6 /* D = ~S & ~D */
|
#define GDI_PDSxnon 0x00060865
|
||||||
#define GDI_MERGECOPY 0x00C000CA /* D = S & P */
|
#define GDI_PDSaon 0x000702C5
|
||||||
#define GDI_MERGEPAINT 0x00BB0226 /* D = ~S | D */
|
#define GDI_SDPnaa 0x00080F08
|
||||||
#define GDI_PATCOPY 0x00F00021 /* D = P */
|
#define GDI_PDSxon 0x00090245
|
||||||
#define GDI_PATPAINT 0x00FB0A09 /* D = D | (P | ~S) */
|
#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_PSo 0x00FC008A
|
||||||
#define GDI_PSDnoo 0x00FD0A0A
|
#define GDI_PSDnoo 0x00FD0A0A
|
||||||
#define GDI_DPSoo 0x00FE02A9
|
#define GDI_DPSoo 0x00FE02A9
|
||||||
#define GDI_DSPDoax 0x00620786
|
#define GDI_WHITENESS 0x00FF0062
|
||||||
#define GDI_PATINVERT 0x005A0049 /* D = P ^ D */
|
#define GDI_GLYPH_ORDER 0xFFFFFFFF
|
||||||
#define GDI_DSTINVERT 0x00550009 /* D = ~D */
|
|
||||||
#define GDI_BLACKNESS 0x00000042 /* D = 0 */
|
|
||||||
#define GDI_WHITENESS 0x00FF0062 /* D = 1 */
|
|
||||||
#define GDI_DSPDxax 0x00E20746 /* D = (S & P) | (~S & D) */
|
|
||||||
#define GDI_PSDPxax 0x00B8074A /* D = (S & D) | (~S & P) */
|
|
||||||
#define GDI_SPna 0x000C0324 /* D = S & ~P */
|
|
||||||
#define GDI_DSna 0x00220326 /* D = D & ~S */
|
|
||||||
#define GDI_DPa 0x00A000C9 /* D = D & P */
|
|
||||||
#define GDI_PDxn 0x00A50065 /* D = D ^ ~P */
|
|
||||||
|
|
||||||
#define GDI_DSxn 0x00990066 /* D = ~(D ^ S) */
|
|
||||||
#define GDI_PSDnox 0x002D060A /* D = P ^ (S | ~D) */
|
|
||||||
#define GDI_PSDPxox 0x002E064A
|
|
||||||
#define GDI_PSDPxoxn 0x00D1066A
|
|
||||||
#define GDI_PSDPaox 0x001C06CA
|
|
||||||
#define GDI_PDSona 0x00100C85 /* D = P & ~(D | S) */
|
|
||||||
#define GDI_DSPDxox 0x00740646 /* D = D ^ (S | ( P ^ D)) */
|
|
||||||
#define GDI_DPSDonox 0x005B18A9 /* D = D ^ (P | ~(S | D)) */
|
|
||||||
#define GDI_SPDSxax 0x00AC0744 /* D = S ^ (P & (D ^ S)) */
|
|
||||||
|
|
||||||
#define GDI_DPon 0x000500A9 /* D = ~(D | P) */
|
|
||||||
#define GDI_DPna 0x000A0329 /* D = D & ~P */
|
|
||||||
#define GDI_Pn 0x000F0001 /* D = ~P */
|
|
||||||
#define GDI_PDna 0x00500325 /* D = P &~D */
|
|
||||||
#define GDI_DPan 0x005F00E9 /* D = ~(D & P) */
|
|
||||||
#define GDI_DSan 0x007700E6 /* D = ~(D & S) */
|
|
||||||
#define GDI_DSxn 0x00990066 /* D = ~(D ^ S) */
|
|
||||||
#define GDI_DPa 0x00A000C9 /* D = D & P */
|
|
||||||
#define GDI_D 0x00AA0029 /* D = D */
|
|
||||||
#define GDI_DPno 0x00AF0229 /* D = D | ~P */
|
|
||||||
#define GDI_SDno 0x00DD0228 /* D = S | ~D */
|
|
||||||
#define GDI_PDno 0x00F50225 /* D = P | ~D */
|
|
||||||
#define GDI_DPo 0x00FA0089 /* D = D | P */
|
|
||||||
#define GDI_todo 0xFFFFFFFF /* TODO: Find out which ROP this implements */
|
|
||||||
|
|
||||||
/* Brush Styles */
|
/* Brush Styles */
|
||||||
#define GDI_BS_SOLID 0x00
|
#define GDI_BS_SOLID 0x00
|
||||||
|
@ -116,10 +116,10 @@ struct rdp_pointer
|
|||||||
FREERDP_API rdpPointer* Pointer_Alloc(rdpContext* context);
|
FREERDP_API rdpPointer* Pointer_Alloc(rdpContext* context);
|
||||||
|
|
||||||
/* Glyph Class */
|
/* Glyph Class */
|
||||||
typedef BOOL (*pGlyph_New)(rdpContext* context, rdpGlyph* glyph);
|
typedef BOOL (*pGlyph_New)(rdpContext* context, const rdpGlyph* glyph);
|
||||||
typedef void (*pGlyph_Free)(rdpContext* context, rdpGlyph* glyph);
|
typedef void (*pGlyph_Free)(rdpContext* context, rdpGlyph* glyph);
|
||||||
typedef BOOL (*pGlyph_Draw)(rdpContext* context, rdpGlyph* glyph, UINT32 x,
|
typedef BOOL (*pGlyph_Draw)(rdpContext* context, const rdpGlyph* glyph,
|
||||||
UINT32 y);
|
UINT32 x, UINT32 y);
|
||||||
typedef BOOL (*pGlyph_BeginDraw)(rdpContext* context, UINT32 x, UINT32 y,
|
typedef BOOL (*pGlyph_BeginDraw)(rdpContext* context, UINT32 x, UINT32 y,
|
||||||
UINT32 width, UINT32 height, UINT32 bgcolor,
|
UINT32 width, UINT32 height, UINT32 bgcolor,
|
||||||
UINT32 fgcolor, BOOL fOpRedundant);
|
UINT32 fgcolor, BOOL fOpRedundant);
|
||||||
|
14
libfreerdp/cache/glyph.c
vendored
14
libfreerdp/cache/glyph.c
vendored
@ -44,7 +44,7 @@ static void glyph_cache_fragment_put(rdpGlyphCache* glyph, UINT32 index,
|
|||||||
UINT32 count, void* entry);
|
UINT32 count, void* entry);
|
||||||
|
|
||||||
static BOOL update_process_glyph(rdpContext* context, const BYTE* data,
|
static BOOL update_process_glyph(rdpContext* context, const BYTE* data,
|
||||||
UINT32* index, UINT32* x, UINT32* y,
|
UINT32* index, INT32* x, INT32* y,
|
||||||
UINT32 cacheId, UINT32 ulCharInc, UINT32 flAccel)
|
UINT32 cacheId, UINT32 ulCharInc, UINT32 flAccel)
|
||||||
{
|
{
|
||||||
INT32 offset;
|
INT32 offset;
|
||||||
@ -80,7 +80,7 @@ static BOOL update_process_glyph(rdpContext* context, const BYTE* data,
|
|||||||
|
|
||||||
if (flAccel & SO_VERTICAL)
|
if (flAccel & SO_VERTICAL)
|
||||||
*y += offset;
|
*y += offset;
|
||||||
else
|
else if (flAccel & SO_HORIZONTAL)
|
||||||
*x += offset;
|
*x += offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,11 +101,11 @@ static BOOL update_process_glyph_fragments(rdpContext* context,
|
|||||||
UINT32 length, UINT32 cacheId,
|
UINT32 length, UINT32 cacheId,
|
||||||
UINT32 ulCharInc, UINT32 flAccel,
|
UINT32 ulCharInc, UINT32 flAccel,
|
||||||
UINT32 bgcolor, UINT32 fgcolor,
|
UINT32 bgcolor, UINT32 fgcolor,
|
||||||
UINT32 x, UINT32 y,
|
INT32 x, INT32 y,
|
||||||
UINT32 bkX, UINT32 bkY,
|
INT32 bkX, INT32 bkY,
|
||||||
UINT32 bkWidth, UINT32 bkHeight,
|
INT32 bkWidth, INT32 bkHeight,
|
||||||
UINT32 opX, UINT32 opY,
|
INT32 opX, INT32 opY,
|
||||||
UINT32 opWidth, UINT32 opHeight,
|
INT32 opWidth, INT32 opHeight,
|
||||||
BOOL fOpRedundant)
|
BOOL fOpRedundant)
|
||||||
{
|
{
|
||||||
UINT32 n;
|
UINT32 n;
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -35,9 +35,6 @@ HGDI_BRUSH gdi_CreateSolidBrush(UINT32 crColor);
|
|||||||
HGDI_BRUSH gdi_CreatePatternBrush(HGDI_BITMAP hbmp);
|
HGDI_BRUSH gdi_CreatePatternBrush(HGDI_BITMAP hbmp);
|
||||||
HGDI_BRUSH gdi_CreateHatchBrush(HGDI_BITMAP hbmp);
|
HGDI_BRUSH gdi_CreateHatchBrush(HGDI_BITMAP hbmp);
|
||||||
UINT32 gdi_GetBrushStyle(HGDI_DC hdc);
|
UINT32 gdi_GetBrushStyle(HGDI_DC hdc);
|
||||||
BOOL gdi_PatBlt(HGDI_DC hdc, UINT32 nXLeft, UINT32 nYLeft,
|
|
||||||
UINT32 nWidth, UINT32 nHeight, DWORD rop,
|
|
||||||
HGDI_DC hdcSrc, UINT32 nXSRc, UINT32 nYSrc);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -670,9 +670,9 @@ static BOOL gdi_patblt(rdpContext* context, PATBLT_ORDER* patblt)
|
|||||||
hbrush->nXOrg = brush->x;
|
hbrush->nXOrg = brush->x;
|
||||||
hbrush->nYOrg = brush->y;
|
hbrush->nYOrg = brush->y;
|
||||||
gdi->drawing->hdc->brush = hbrush;
|
gdi->drawing->hdc->brush = hbrush;
|
||||||
ret = gdi_PatBlt(gdi->drawing->hdc, patblt->nLeftRect, patblt->nTopRect,
|
ret = gdi_BitBlt(gdi->drawing->hdc, patblt->nLeftRect, patblt->nTopRect,
|
||||||
patblt->nWidth, patblt->nHeight, rop,
|
patblt->nWidth, patblt->nHeight,
|
||||||
gdi->primary->hdc, nXSrc, nYSrc);
|
gdi->primary->hdc, nXSrc, nYSrc, rop, &gdi->palette);
|
||||||
}
|
}
|
||||||
|
|
||||||
out_error:
|
out_error:
|
||||||
@ -1021,7 +1021,7 @@ static BOOL gdi_surface_bits(rdpContext* context,
|
|||||||
case RDP_CODEC_ID_REMOTEFX:
|
case RDP_CODEC_ID_REMOTEFX:
|
||||||
{
|
{
|
||||||
if (!rfx_process_message(context->codecs->rfx, cmd->bitmapData,
|
if (!rfx_process_message(context->codecs->rfx, cmd->bitmapData,
|
||||||
PIXEL_FORMAT_BGRX32,
|
PIXEL_FORMAT_BGRX32,
|
||||||
cmd->bitmapDataLength,
|
cmd->bitmapDataLength,
|
||||||
0, 0,
|
0, 0,
|
||||||
gdi->primary_buffer, gdi->dstFormat,
|
gdi->primary_buffer, gdi->dstFormat,
|
||||||
|
@ -201,7 +201,7 @@ static BOOL gdi_Bitmap_SetSurface(rdpContext* context, rdpBitmap* bitmap,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Glyph Class */
|
/* Glyph Class */
|
||||||
static BOOL gdi_Glyph_New(rdpContext* context, rdpGlyph* glyph)
|
static BOOL gdi_Glyph_New(rdpContext* context, const rdpGlyph* glyph)
|
||||||
{
|
{
|
||||||
BYTE* data;
|
BYTE* data;
|
||||||
gdiGlyph* gdi_glyph;
|
gdiGlyph* gdi_glyph;
|
||||||
@ -254,7 +254,7 @@ static void gdi_Glyph_Free(rdpContext* context, rdpGlyph* glyph)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL gdi_Glyph_Draw(rdpContext* context, rdpGlyph* glyph, UINT32 x,
|
static BOOL gdi_Glyph_Draw(rdpContext* context, const rdpGlyph* glyph, UINT32 x,
|
||||||
UINT32 y)
|
UINT32 y)
|
||||||
{
|
{
|
||||||
gdiGlyph* gdi_glyph;
|
gdiGlyph* gdi_glyph;
|
||||||
@ -267,7 +267,7 @@ static BOOL gdi_Glyph_Draw(rdpContext* context, rdpGlyph* glyph, UINT32 x,
|
|||||||
gdi_glyph = (gdiGlyph*) glyph;
|
gdi_glyph = (gdiGlyph*) glyph;
|
||||||
return gdi_BitBlt(gdi->drawing->hdc, x, y, gdi_glyph->bitmap->width,
|
return gdi_BitBlt(gdi->drawing->hdc, x, y, gdi_glyph->bitmap->width,
|
||||||
gdi_glyph->bitmap->height, gdi_glyph->hdc, 0, 0,
|
gdi_glyph->bitmap->height, gdi_glyph->hdc, 0, 0,
|
||||||
GDI_todo, &context->gdi->palette);
|
GDI_GLYPH_ORDER, &context->gdi->palette);
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL gdi_Glyph_BeginDraw(rdpContext* context, UINT32 x, UINT32 y,
|
static BOOL gdi_Glyph_BeginDraw(rdpContext* context, UINT32 x, UINT32 y,
|
||||||
|
Loading…
Reference in New Issue
Block a user