FreeRDP
xf_gdi.c File Reference
#include <freerdp/config.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <winpr/assert.h>
#include <freerdp/gdi/gdi.h>
#include <freerdp/codec/rfx.h>
#include <freerdp/codec/nsc.h>
#include <freerdp/constants.h>
#include <freerdp/codec/color.h>
#include <freerdp/codec/bitmap.h>
#include "xf_gdi.h"
#include "xf_graphics.h"
#include <freerdp/log.h>

Macros

#define TAG   CLIENT_TAG("x11")
 

Functions

static BOOL xf_set_rop2 (xfContext *xfc, int rop2)
 
static BOOL xf_set_rop3 (xfContext *xfc, UINT32 rop3)
 
static Pixmap xf_brush_new (xfContext *xfc, UINT32 width, UINT32 height, UINT32 bpp, BYTE *data)
 
static Pixmap xf_mono_bitmap_new (xfContext *xfc, int width, int height, const BYTE *data)
 
static BOOL xf_gdi_set_bounds (rdpContext *context, const rdpBounds *bounds)
 
static BOOL xf_gdi_dstblt (rdpContext *context, const DSTBLT_ORDER *dstblt)
 
static BOOL xf_gdi_patblt (rdpContext *context, PATBLT_ORDER *patblt)
 
static BOOL xf_gdi_scrblt (rdpContext *context, const SCRBLT_ORDER *scrblt)
 
static BOOL xf_gdi_opaque_rect (rdpContext *context, const OPAQUE_RECT_ORDER *opaque_rect)
 
static BOOL xf_gdi_multi_opaque_rect (rdpContext *context, const MULTI_OPAQUE_RECT_ORDER *multi_opaque_rect)
 
static BOOL xf_gdi_line_to (rdpContext *context, const LINE_TO_ORDER *line_to)
 
static BOOL xf_gdi_invalidate_poly_region (xfContext *xfc, XPoint *points, int npoints)
 
static BOOL xf_gdi_polyline (rdpContext *context, const POLYLINE_ORDER *polyline)
 
static BOOL xf_gdi_memblt (rdpContext *context, MEMBLT_ORDER *memblt)
 
static BOOL xf_gdi_mem3blt (rdpContext *context, MEM3BLT_ORDER *mem3blt)
 
static BOOL xf_gdi_polygon_sc (rdpContext *context, const POLYGON_SC_ORDER *polygon_sc)
 
static BOOL xf_gdi_polygon_cb (rdpContext *context, POLYGON_CB_ORDER *polygon_cb)
 
static BOOL xf_gdi_surface_frame_marker (rdpContext *context, const SURFACE_FRAME_MARKER *surface_frame_marker)
 
static BOOL xf_gdi_surface_update_frame (xfContext *xfc, UINT16 tx, UINT16 ty, UINT16 width, UINT16 height)
 
static BOOL xf_gdi_update_screen (xfContext *xfc, BYTE *pSrcData, UINT32 scanline, const REGION16 *pRegion)
 
static BOOL xf_gdi_surface_bits (rdpContext *context, const SURFACE_BITS_COMMAND *cmd)
 
void xf_gdi_register_update_callbacks (rdpUpdate *update)
 

Variables

static const UINT8 GDI_BS_HATCHED_PATTERNS []
 
static const BYTE xf_rop2_table []
 

Macro Definition Documentation

◆ TAG

#define TAG   CLIENT_TAG("x11")

FreeRDP: A Remote Desktop Protocol Implementation X11 GDI

Copyright 2011 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2014 Thincast Technologies GmbH Copyright 2014 Norbert Federa norbe.nosp@m.rt.f.nosp@m.edera.nosp@m.@thi.nosp@m.ncast.nosp@m..com

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.

Function Documentation

◆ xf_brush_new()

static Pixmap xf_brush_new ( xfContext *  xfc,
UINT32  width,
UINT32  height,
UINT32  bpp,
BYTE data 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_dstblt()

static BOOL xf_gdi_dstblt ( rdpContext *  context,
const DSTBLT_ORDER dstblt 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_invalidate_poly_region()

static BOOL xf_gdi_invalidate_poly_region ( xfContext *  xfc,
XPoint *  points,
int  npoints 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_line_to()

static BOOL xf_gdi_line_to ( rdpContext *  context,
const LINE_TO_ORDER line_to 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_mem3blt()

static BOOL xf_gdi_mem3blt ( rdpContext *  context,
MEM3BLT_ORDER mem3blt 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_memblt()

static BOOL xf_gdi_memblt ( rdpContext *  context,
MEMBLT_ORDER memblt 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_multi_opaque_rect()

static BOOL xf_gdi_multi_opaque_rect ( rdpContext *  context,
const MULTI_OPAQUE_RECT_ORDER multi_opaque_rect 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_opaque_rect()

static BOOL xf_gdi_opaque_rect ( rdpContext *  context,
const OPAQUE_RECT_ORDER opaque_rect 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_patblt()

static BOOL xf_gdi_patblt ( rdpContext *  context,
PATBLT_ORDER patblt 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_polygon_cb()

static BOOL xf_gdi_polygon_cb ( rdpContext *  context,
POLYGON_CB_ORDER polygon_cb 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_polygon_sc()

static BOOL xf_gdi_polygon_sc ( rdpContext *  context,
const POLYGON_SC_ORDER polygon_sc 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_polyline()

static BOOL xf_gdi_polyline ( rdpContext *  context,
const POLYLINE_ORDER polyline 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_register_update_callbacks()

void xf_gdi_register_update_callbacks ( rdpUpdate *  update)

FreeRDP: A Remote Desktop Protocol Implementation X11 GDI

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

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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_scrblt()

static BOOL xf_gdi_scrblt ( rdpContext *  context,
const SCRBLT_ORDER scrblt 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_set_bounds()

static BOOL xf_gdi_set_bounds ( rdpContext *  context,
const rdpBounds *  bounds 
)
static
Here is the caller graph for this function:

◆ xf_gdi_surface_bits()

static BOOL xf_gdi_surface_bits ( rdpContext *  context,
const SURFACE_BITS_COMMAND cmd 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_surface_frame_marker()

static BOOL xf_gdi_surface_frame_marker ( rdpContext *  context,
const SURFACE_FRAME_MARKER surface_frame_marker 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_surface_update_frame()

static BOOL xf_gdi_surface_update_frame ( xfContext *  xfc,
UINT16  tx,
UINT16  ty,
UINT16  width,
UINT16  height 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_gdi_update_screen()

static BOOL xf_gdi_update_screen ( xfContext *  xfc,
BYTE pSrcData,
UINT32  scanline,
const REGION16 pRegion 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xf_mono_bitmap_new()

static Pixmap xf_mono_bitmap_new ( xfContext *  xfc,
int  width,
int  height,
const BYTE data 
)
static
Here is the caller graph for this function:

◆ xf_set_rop2()

static BOOL xf_set_rop2 ( xfContext *  xfc,
int  rop2 
)
static
Here is the caller graph for this function:

◆ xf_set_rop3()

static BOOL xf_set_rop3 ( xfContext *  xfc,
UINT32  rop3 
)
static
Here is the caller graph for this function:

Variable Documentation

◆ GDI_BS_HATCHED_PATTERNS

const UINT8 GDI_BS_HATCHED_PATTERNS[]
static
Initial value:
= {
0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F,
0x7F, 0xBF, 0xDF, 0xEF, 0xF7, 0xFB, 0xFD, 0xFE,
0xF7, 0xF7, 0xF7, 0x00, 0xF7, 0xF7, 0xF7, 0xF7,
0x7E, 0xBD, 0xDB, 0xE7, 0xE7, 0xDB, 0xBD, 0x7E
}

◆ xf_rop2_table

const BYTE xf_rop2_table[]
static
Initial value:
= {
0,
GXclear,
GXnor,
GXandInverted,
GXcopyInverted,
GXandReverse,
GXinvert,
GXxor,
GXnand,
GXand,
GXequiv,
GXnoop,
GXorInverted,
GXcopy,
GXorReverse,
GXor,
GXset
}