FreeRDP
gdi/region.c File Reference
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <freerdp/api.h>
#include <freerdp/freerdp.h>
#include <freerdp/gdi/gdi.h>
#include <freerdp/gdi/region.h>
#include <freerdp/log.h>

Macros

#define TAG   FREERDP_TAG("gdi.region")
 

Functions

HGDI_RGN gdi_CreateRectRgn (INT32 nLeftRect, INT32 nTopRect, INT32 nRightRect, INT32 nBottomRect)
 
HGDI_RECT gdi_CreateRect (INT32 xLeft, INT32 yTop, INT32 xRight, INT32 yBottom)
 
INLINE void gdi_RectToRgn (HGDI_RECT rect, HGDI_RGN rgn)
 
INLINE void gdi_CRectToRgn (INT32 left, INT32 top, INT32 right, INT32 bottom, HGDI_RGN rgn)
 
INLINE void gdi_RectToCRgn (const HGDI_RECT rect, INT32 *x, INT32 *y, INT32 *w, INT32 *h)
 
INLINE void gdi_CRectToCRgn (INT32 left, INT32 top, INT32 right, INT32 bottom, INT32 *x, INT32 *y, INT32 *w, INT32 *h)
 
INLINE void gdi_RgnToRect (HGDI_RGN rgn, HGDI_RECT rect)
 
INLINE void gdi_CRgnToRect (INT64 x, INT64 y, INT32 w, INT32 h, HGDI_RECT rect)
 
INLINE void gdi_RgnToCRect (HGDI_RGN rgn, INT32 *left, INT32 *top, INT32 *right, INT32 *bottom)
 
INLINE void gdi_CRgnToCRect (INT32 x, INT32 y, INT32 w, INT32 h, INT32 *left, INT32 *top, INT32 *right, INT32 *bottom)
 
INLINE BOOL gdi_CopyOverlap (INT32 x, INT32 y, INT32 width, INT32 height, INT32 srcx, INT32 srcy)
 
INLINE BOOL gdi_SetRect (HGDI_RECT rc, INT32 xLeft, INT32 yTop, INT32 xRight, INT32 yBottom)
 
INLINE BOOL gdi_SetRgn (HGDI_RGN hRgn, INT32 nXLeft, INT32 nYLeft, INT32 nWidth, INT32 nHeight)
 
INLINE BOOL gdi_SetRectRgn (HGDI_RGN hRgn, INT32 nLeftRect, INT32 nTopRect, INT32 nRightRect, INT32 nBottomRect)
 
INLINE BOOL gdi_EqualRgn (HGDI_RGN hSrcRgn1, HGDI_RGN hSrcRgn2)
 
INLINE BOOL gdi_CopyRect (HGDI_RECT dst, HGDI_RECT src)
 
INLINE BOOL gdi_PtInRect (HGDI_RECT rc, INT32 x, INT32 y)
 
INLINE BOOL gdi_InvalidateRegion (HGDI_DC hdc, INT32 x, INT32 y, INT32 w, INT32 h)
 

Macro Definition Documentation

#define TAG   FREERDP_TAG("gdi.region")

FreeRDP: A Remote Desktop Protocol Implementation GDI Region Functions

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.

Function Documentation

INLINE BOOL gdi_CopyOverlap ( INT32  x,
INT32  y,
INT32  width,
INT32  height,
INT32  srcx,
INT32  srcy 
)

Check if copying would involve overlapping regions

Parameters
xx1
yy1
widthwidth
heightheight
srcxsource x1
srcysource y1
Returns
nonzero if there is an overlap, 0 otherwise

Here is the call graph for this function:

INLINE BOOL gdi_CopyRect ( HGDI_RECT  dst,
HGDI_RECT  src 
)

Copy coordinates from a rectangle to another rectangle http://msdn.microsoft.com/en-us/library/dd183481/

Parameters
dstdestination rectangle
srcsource rectangle
Returns
nonzero if successful, 0 otherwise
HGDI_RECT gdi_CreateRect ( INT32  xLeft,
INT32  yTop,
INT32  xRight,
INT32  yBottom 
)

Create a new rectangle.

Parameters
xLeftx1
yTopy1
xRightx2
yBottomy2
Returns
new rectangle

Here is the caller graph for this function:

HGDI_RGN gdi_CreateRectRgn ( INT32  nLeftRect,
INT32  nTopRect,
INT32  nRightRect,
INT32  nBottomRect 
)

Create a region from rectangular coordinates.
http://msdn.microsoft.com/en-us/library/dd183514/

Parameters
nLeftRectx1
nTopRecty1
nRightRectx2
nBottomRecty2
Returns
new region

Here is the caller graph for this function:

INLINE void gdi_CRectToCRgn ( INT32  left,
INT32  top,
INT32  right,
INT32  bottom,
INT32 *  x,
INT32 *  y,
INT32 *  w,
INT32 *  h 
)

Convert rectangular coordinates to region coordinates.

Parameters
leftx1
topy1
rightx2
bottomy2
xx1
yy1
wwidth
hheight
INLINE void gdi_CRectToRgn ( INT32  left,
INT32  top,
INT32  right,
INT32  bottom,
HGDI_RGN  rgn 
)

Convert rectangular coordinates to a region.

Parameters
leftx1
topy1
rightx2
bottomy2
rgndestination region

Here is the caller graph for this function:

INLINE void gdi_CRgnToCRect ( INT32  x,
INT32  y,
INT32  w,
INT32  h,
INT32 *  left,
INT32 *  top,
INT32 *  right,
INT32 *  bottom 
)

Convert region coordinates to rectangular coordinates.

Parameters
xx1
yy1
wwidth
hheight
leftx1
topy1
rightx2
bottomy2
INLINE void gdi_CRgnToRect ( INT64  x,
INT64  y,
INT32  w,
INT32  h,
HGDI_RECT  rect 
)

Convert region coordinates to a rectangle.

Parameters
xx1
yy1
wwidth
hheight
rectdestination rectangle

Here is the caller graph for this function:

INLINE BOOL gdi_EqualRgn ( HGDI_RGN  hSrcRgn1,
HGDI_RGN  hSrcRgn2 
)

Compare two regions for equality.
http://msdn.microsoft.com/en-us/library/dd162700/

Parameters
hSrcRgn1first region
hSrcRgn2second region
Returns
nonzero if both regions are equal, 0 otherwise

Here is the caller graph for this function:

INLINE BOOL gdi_InvalidateRegion ( HGDI_DC  hdc,
INT32  x,
INT32  y,
INT32  w,
INT32  h 
)

Invalidate a given region, such that it is redrawn on the next region update.
http://msdn.microsoft.com/en-us/library/dd145003/

Parameters
hdcdevice context
xx1
yy1
wwidth
hheight
Returns
nonzero on success, 0 otherwise

Here is the call graph for this function:

Here is the caller graph for this function:

INLINE BOOL gdi_PtInRect ( HGDI_RECT  rc,
INT32  x,
INT32  y 
)

Check if a point is inside a rectangle.
http://msdn.microsoft.com/en-us/library/dd162882/

Parameters
rcrectangle
xpoint x position
ypoint y position
Returns
nonzero if the point is inside, 0 otherwise

Here is the caller graph for this function:

INLINE void gdi_RectToCRgn ( const HGDI_RECT  rect,
INT32 *  x,
INT32 *  y,
INT32 *  w,
INT32 *  h 
)

Convert a rectangle to region coordinates.

Parameters
rectsource rectangle
xx1
yy1
wwidth
hheight

Here is the caller graph for this function:

INLINE void gdi_RectToRgn ( HGDI_RECT  rect,
HGDI_RGN  rgn 
)

Convert a rectangle to a region.

Parameters
rectsource rectangle
rgndestination region

Here is the caller graph for this function:

INLINE void gdi_RgnToCRect ( HGDI_RGN  rgn,
INT32 *  left,
INT32 *  top,
INT32 *  right,
INT32 *  bottom 
)

Convert a region to rectangular coordinates.

Parameters
rgnsource region
leftx1
topy1
rightx2
bottomy2
INLINE void gdi_RgnToRect ( HGDI_RGN  rgn,
HGDI_RECT  rect 
)

Convert a region to a rectangle.

Parameters
rgnsource region
rectdestination rectangle

Here is the caller graph for this function:

INLINE BOOL gdi_SetRect ( HGDI_RECT  rc,
INT32  xLeft,
INT32  yTop,
INT32  xRight,
INT32  yBottom 
)

Set the coordinates of a given rectangle.
http://msdn.microsoft.com/en-us/library/dd145085/

Parameters
rcrectangle
xLeftx1
yTopy1
xRightx2
yBottomy2
Returns
nonzero if successful, 0 otherwise
INLINE BOOL gdi_SetRectRgn ( HGDI_RGN  hRgn,
INT32  nLeftRect,
INT32  nTopRect,
INT32  nRightRect,
INT32  nBottomRect 
)

Convert rectangular coordinates to a region

Parameters
hRgndestination region
nLeftRectx1
nTopRecty1
nRightRectx2
nBottomRecty2
Returns
nonzero if successful, 0 otherwise

Here is the call graph for this function:

INLINE BOOL gdi_SetRgn ( HGDI_RGN  hRgn,
INT32  nXLeft,
INT32  nYLeft,
INT32  nWidth,
INT32  nHeight 
)

Set the coordinates of a given region.

Parameters
hRgnregion
nXLeftx1
nYLefty1
nWidthwidth
nHeightheight
Returns
nonzero if successful, 0 otherwise

Here is the caller graph for this function: