FreeRDP
wf_gdi.c File Reference
#include <freerdp/config.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <freerdp/log.h>
#include <freerdp/gdi/gdi.h>
#include <freerdp/constants.h>
#include <freerdp/codec/color.h>
#include <freerdp/codec/bitmap.h>
#include <freerdp/codec/rfx.h>
#include <freerdp/codec/nsc.h>
#include "wf_client.h"
#include "wf_graphics.h"
#include "wf_gdi.h"

Macros

#define TAG   CLIENT_TAG("windows.gdi")
 

Functions

static BOOL wf_decode_color (wfContext *wfc, const UINT32 srcColor, COLORREF *color, UINT32 *format)
 
static BOOL wf_set_rop2 (HDC hdc, int rop2)
 
static wfBitmapwf_glyph_new (wfContext *wfc, GLYPH_DATA *glyph)
 
static void wf_glyph_free (wfBitmap *glyph)
 
static BYTEwf_glyph_convert (wfContext *wfc, int width, int height, const BYTE *data)
 
static HBRUSH wf_create_brush (wfContext *wfc, rdpBrush *brush, UINT32 color, UINT32 bpp)
 
BOOL wf_scale_rect (wfContext *wfc, RECT *source)
 
void wf_invalidate_region (wfContext *wfc, UINT32 x, UINT32 y, UINT32 width, UINT32 height)
 
void wf_update_offset (wfContext *wfc)
 
void wf_resize_window (wfContext *wfc)
 
void wf_toggle_fullscreen (wfContext *wfc)
 
static BOOL wf_gdi_palette_update (rdpContext *context, const PALETTE_UPDATE *palette)
 
void wf_set_null_clip_rgn (wfContext *wfc)
 
void wf_set_clip_rgn (wfContext *wfc, int x, int y, int width, int height)
 
static BOOL wf_gdi_set_bounds (rdpContext *context, const rdpBounds *bounds)
 
static BOOL wf_gdi_dstblt (rdpContext *context, const DSTBLT_ORDER *dstblt)
 
static BOOL wf_gdi_patblt (rdpContext *context, PATBLT_ORDER *patblt)
 
static BOOL wf_gdi_scrblt (rdpContext *context, const SCRBLT_ORDER *scrblt)
 
static BOOL wf_gdi_opaque_rect (rdpContext *context, const OPAQUE_RECT_ORDER *opaque_rect)
 
static BOOL wf_gdi_multi_opaque_rect (rdpContext *context, const MULTI_OPAQUE_RECT_ORDER *multi_opaque_rect)
 
static BOOL wf_gdi_line_to (rdpContext *context, const LINE_TO_ORDER *line_to)
 
static BOOL wf_gdi_polyline (rdpContext *context, const POLYLINE_ORDER *polyline)
 
static BOOL wf_gdi_memblt (rdpContext *context, MEMBLT_ORDER *memblt)
 
static BOOL wf_gdi_mem3blt (rdpContext *context, MEM3BLT_ORDER *mem3blt)
 
static BOOL wf_gdi_surface_frame_marker (rdpContext *context, const SURFACE_FRAME_MARKER *surface_frame_marker)
 
void wf_gdi_register_update_callbacks (rdpUpdate *update)
 
void wf_update_canvas_diff (wfContext *wfc)
 

Variables

static const BYTE wf_rop2_table []
 

Macro Definition Documentation

◆ TAG

#define TAG   CLIENT_TAG("windows.gdi")

FreeRDP: A Remote Desktop Protocol Implementation Windows GDI

Copyright 2009-2011 Jay Sorg Copyright 2010-2011 Vic Lee Copyright 2010-2011 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..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

◆ wf_create_brush()

static HBRUSH wf_create_brush ( wfContext *  wfc,
rdpBrush *  brush,
UINT32  color,
UINT32  bpp 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_decode_color()

static BOOL wf_decode_color ( wfContext *  wfc,
const UINT32  srcColor,
COLORREF *  color,
UINT32 *  format 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_gdi_dstblt()

static BOOL wf_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:

◆ wf_gdi_line_to()

static BOOL wf_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:

◆ wf_gdi_mem3blt()

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

◆ wf_gdi_memblt()

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

◆ wf_gdi_multi_opaque_rect()

static BOOL wf_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:

◆ wf_gdi_opaque_rect()

static BOOL wf_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:

◆ wf_gdi_palette_update()

static BOOL wf_gdi_palette_update ( rdpContext *  context,
const PALETTE_UPDATE palette 
)
static
Here is the caller graph for this function:

◆ wf_gdi_patblt()

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

◆ wf_gdi_polyline()

static BOOL wf_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:

◆ wf_gdi_register_update_callbacks()

void wf_gdi_register_update_callbacks ( rdpUpdate *  update)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_gdi_scrblt()

static BOOL wf_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:

◆ wf_gdi_set_bounds()

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

◆ wf_gdi_surface_frame_marker()

static BOOL wf_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:

◆ wf_glyph_convert()

static BYTE* wf_glyph_convert ( wfContext *  wfc,
int  width,
int  height,
const BYTE data 
)
static
Here is the caller graph for this function:

◆ wf_glyph_free()

static void wf_glyph_free ( wfBitmap glyph)
static
Here is the call graph for this function:

◆ wf_glyph_new()

static wfBitmap* wf_glyph_new ( wfContext *  wfc,
GLYPH_DATA glyph 
)
static
Here is the call graph for this function:

◆ wf_invalidate_region()

void wf_invalidate_region ( wfContext *  wfc,
UINT32  x,
UINT32  y,
UINT32  width,
UINT32  height 
)

FreeRDP: A Remote Desktop Protocol Implementation Windows GDI

Copyright 2009-2011 Jay Sorg Copyright 2010-2011 Vic Lee Copyright 2010-2011 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..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.

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

◆ wf_resize_window()

void wf_resize_window ( wfContext *  wfc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_scale_rect()

BOOL wf_scale_rect ( wfContext *  wfc,
RECT *  source 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_set_clip_rgn()

void wf_set_clip_rgn ( wfContext *  wfc,
int  x,
int  y,
int  width,
int  height 
)

◆ wf_set_null_clip_rgn()

void wf_set_null_clip_rgn ( wfContext *  wfc)

◆ wf_set_rop2()

static BOOL wf_set_rop2 ( HDC  hdc,
int  rop2 
)
static
Here is the caller graph for this function:

◆ wf_toggle_fullscreen()

void wf_toggle_fullscreen ( wfContext *  wfc)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_update_canvas_diff()

void wf_update_canvas_diff ( wfContext *  wfc)
Here is the caller graph for this function:

◆ wf_update_offset()

void wf_update_offset ( wfContext *  wfc)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ wf_rop2_table

const BYTE wf_rop2_table[]
static
Initial value:
= {
R2_BLACK,
R2_NOTMERGEPEN,
R2_MASKNOTPEN,
R2_NOTCOPYPEN,
R2_MASKPENNOT,
R2_NOT,
R2_XORPEN,
R2_NOTMASKPEN,
R2_MASKPEN,
R2_NOTXORPEN,
R2_NOP,
R2_MERGENOTPEN,
R2_COPYPEN,
R2_MERGEPENNOT,
R2_MERGEPEN,
R2_WHITE,
}