FreeRDP
wf_gdi.c File Reference
#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 wfBitmap * wf_glyph_new (wfContext *wfc, GLYPH_DATA *glyph)
 
static void wf_glyph_free (wfBitmap *glyph)
 
static BYTEwf_glyph_convert (wfContext *wfc, int width, int height, BYTE *data)
 
static HBRUSH wf_create_brush (wfContext *wfc, rdpBrush *brush, UINT32 color, UINT32 bpp)
 
static 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

#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

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:

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:

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:

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:

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:

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:

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:

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:

static BOOL wf_gdi_palette_update ( rdpContext *  context,
const PALETTE_UPDATE *  palette 
)
static

Here is the caller graph for this function:

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:

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:

void wf_gdi_register_update_callbacks ( rdpUpdate *  update)

Here is the call graph for this function:

Here is the caller graph for this function:

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:

static BOOL wf_gdi_set_bounds ( rdpContext *  context,
const rdpBounds *  bounds 
)
static

Here is the caller graph for this function:

static BOOL wf_gdi_surface_frame_marker ( rdpContext *  context,
const SURFACE_FRAME_MARKER *  surface_frame_marker 
)
static

Here is the caller graph for this function:

static BYTE* wf_glyph_convert ( wfContext *  wfc,
int  width,
int  height,
BYTE data 
)
static

Here is the caller graph for this function:

static void wf_glyph_free ( wfBitmap *  glyph)
static

Here is the call graph for this function:

static wfBitmap* wf_glyph_new ( wfContext *  wfc,
GLYPH_DATA *  glyph 
)
static

Here is the call graph for this function:

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:

void wf_resize_window ( wfContext *  wfc)

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL wf_scale_rect ( wfContext *  wfc,
RECT *  source 
)
static

Here is the caller graph for this function:

void wf_set_clip_rgn ( wfContext *  wfc,
int  x,
int  y,
int  width,
int  height 
)
void wf_set_null_clip_rgn ( wfContext *  wfc)
static BOOL wf_set_rop2 ( HDC  hdc,
int  rop2 
)
static

Here is the caller graph for this function:

void wf_toggle_fullscreen ( wfContext *  wfc)

Here is the call graph for this function:

Here is the caller graph for this function:

void wf_update_canvas_diff ( wfContext *  wfc)

Here is the caller graph for this function:

void wf_update_offset ( wfContext *  wfc)

Here is the caller graph for this function:

Variable Documentation

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,
}