FreeRDP
gdi/bitmap.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/codec/color.h>
#include <freerdp/gdi/region.h>
#include <freerdp/gdi/bitmap.h>
#include <freerdp/log.h>
#include <freerdp/gdi/shape.h>
#include "brush.h"
#include "clipping.h"
#include "../gdi/gdi.h"

Macros

#define TAG   FREERDP_TAG("gdi.bitmap")
 

Functions

INLINE UINT32 gdi_GetPixel (HGDI_DC hdc, UINT32 nXPos, UINT32 nYPos)
 
INLINE BYTEgdi_GetPointer (HGDI_BITMAP hBmp, UINT32 X, UINT32 Y)
 
static INLINE UINT32 gdi_SetPixelBmp (HGDI_BITMAP hBmp, UINT32 X, UINT32 Y, UINT32 crColor)
 
INLINE UINT32 gdi_SetPixel (HGDI_DC hdc, UINT32 X, UINT32 Y, UINT32 crColor)
 
HGDI_BITMAP gdi_CreateBitmap (UINT32 nWidth, UINT32 nHeight, UINT32 format, BYTE *data)
 
HGDI_BITMAP gdi_CreateBitmapEx (UINT32 nWidth, UINT32 nHeight, UINT32 format, UINT32 stride, BYTE *data, void(*fkt_free)(void *))
 
HGDI_BITMAP gdi_CreateCompatibleBitmap (HGDI_DC hdc, UINT32 nWidth, UINT32 nHeight)
 
static BOOL op_not (UINT32 *stack, UINT32 *stackp)
 
static BOOL op_and (UINT32 *stack, UINT32 *stackp)
 
static BOOL op_or (UINT32 *stack, UINT32 *stackp)
 
static BOOL op_xor (UINT32 *stack, UINT32 *stackp)
 
static UINT32 process_rop (UINT32 src, UINT32 dst, UINT32 pat, const char *rop, UINT32 format)
 
static INLINE BOOL BitBlt_write (HGDI_DC hdcDest, HGDI_DC hdcSrc, INT32 nXDest, INT32 nYDest, INT32 nXSrc, INT32 nYSrc, INT32 x, INT32 y, BOOL useSrc, BOOL usePat, UINT32 style, const char *rop, const gdiPalette *palette)
 
static BOOL adjust_src_coordinates (HGDI_DC hdcSrc, INT32 nWidth, INT32 nHeight, INT32 *px, INT32 *py)
 
static BOOL adjust_src_dst_coordinates (HGDI_DC hdcDest, INT32 *pnXSrc, INT32 *pnYSrc, INT32 *pnXDst, INT32 *pnYDst, INT32 *pnWidth, INT32 *pnHeight)
 
static BOOL BitBlt_process (HGDI_DC hdcDest, INT32 nXDest, INT32 nYDest, INT32 nWidth, INT32 nHeight, HGDI_DC hdcSrc, INT32 nXSrc, INT32 nYSrc, const char *rop, const gdiPalette *palette)
 
BOOL gdi_BitBlt (HGDI_DC hdcDest, INT32 nXDest, INT32 nYDest, INT32 nWidth, INT32 nHeight, HGDI_DC hdcSrc, INT32 nXSrc, INT32 nYSrc, DWORD rop, const gdiPalette *palette)
 

Macro Definition Documentation

#define TAG   FREERDP_TAG("gdi.bitmap")

FreeRDP: A Remote Desktop Protocol Implementation GDI Bitmap 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

static BOOL adjust_src_coordinates ( HGDI_DC  hdcSrc,
INT32  nWidth,
INT32  nHeight,
INT32 *  px,
INT32 *  py 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL adjust_src_dst_coordinates ( HGDI_DC  hdcDest,
INT32 *  pnXSrc,
INT32 *  pnYSrc,
INT32 *  pnXDst,
INT32 *  pnYDst,
INT32 *  pnWidth,
INT32 *  pnHeight 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL BitBlt_process ( HGDI_DC  hdcDest,
INT32  nXDest,
INT32  nYDest,
INT32  nWidth,
INT32  nHeight,
HGDI_DC  hdcSrc,
INT32  nXSrc,
INT32  nYSrc,
const char *  rop,
const gdiPalette *  palette 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static INLINE BOOL BitBlt_write ( HGDI_DC  hdcDest,
HGDI_DC  hdcSrc,
INT32  nXDest,
INT32  nYDest,
INT32  nXSrc,
INT32  nYSrc,
INT32  x,
INT32  y,
BOOL  useSrc,
BOOL  usePat,
UINT32  style,
const char *  rop,
const gdiPalette *  palette 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

BOOL gdi_BitBlt ( HGDI_DC  hdcDest,
INT32  nXDest,
INT32  nYDest,
INT32  nWidth,
INT32  nHeight,
HGDI_DC  hdcSrc,
INT32  nXSrc,
INT32  nYSrc,
DWORD  rop,
const gdiPalette *  palette 
)

Perform a bit blit operation on the given pixel buffers.
http://msdn.microsoft.com/en-us/library/dd183370/

Parameters
hdcDestdestination device context
nXDestdestination x1
nYDestdestination y1
nWidthwidth
nHeightheight
hdcSrcsource device context
nXSrcsource x1
nYSrcsource y1
ropraster operation code
Returns
0 on failure, non-zero otherwise

Here is the call graph for this function:

Here is the caller graph for this function:

HGDI_BITMAP gdi_CreateBitmap ( UINT32  nWidth,
UINT32  nHeight,
UINT32  format,
BYTE data 
)

Create a new bitmap with the given width, height, color format and pixel buffer.
http://msdn.microsoft.com/en-us/library/dd183485/

Parameters
nWidthwidth
nHeightheight
cBitsPerPixelbits per pixel
datapixel buffer
fkt_freeThe function used for deallocation of the buffer, NULL for none.
Returns
new bitmap

Here is the call graph for this function:

Here is the caller graph for this function:

HGDI_BITMAP gdi_CreateBitmapEx ( UINT32  nWidth,
UINT32  nHeight,
UINT32  format,
UINT32  stride,
BYTE data,
void(*)(void *)  fkt_free 
)

Here is the call graph for this function:

Here is the caller graph for this function:

HGDI_BITMAP gdi_CreateCompatibleBitmap ( HGDI_DC  hdc,
UINT32  nWidth,
UINT32  nHeight 
)

Create a new bitmap of the given width and height compatible with the current device context.
http://msdn.microsoft.com/en-us/library/dd183488/

Parameters
hdcdevice context
nWidthwidth
nHeightheight
Returns
new bitmap

Here is the call graph for this function:

Here is the caller graph for this function:

INLINE UINT32 gdi_GetPixel ( HGDI_DC  hdc,
UINT32  nXPos,
UINT32  nYPos 
)

Get pixel at the given coordinates.
http://msdn.microsoft.com/en-us/library/dd144909/

Parameters
hdcdevice context
nXPospixel x position
nYPospixel y position
Returns
pixel color

Here is the call graph for this function:

Here is the caller graph for this function:

INLINE BYTE* gdi_GetPointer ( HGDI_BITMAP  hBmp,
UINT32  X,
UINT32  Y 
)

Here is the call graph for this function:

Here is the caller graph for this function:

INLINE UINT32 gdi_SetPixel ( HGDI_DC  hdc,
UINT32  X,
UINT32  Y,
UINT32  crColor 
)

Here is the call graph for this function:

Here is the caller graph for this function:

static INLINE UINT32 gdi_SetPixelBmp ( HGDI_BITMAP  hBmp,
UINT32  X,
UINT32  Y,
UINT32  crColor 
)
static

Set pixel at the given coordinates.
http://msdn.microsoft.com/en-us/library/dd145078/

Parameters
hdcdevice context
Xpixel x position
Ypixel y position
crColornew pixel color
Returns

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL op_and ( UINT32 stack,
UINT32 stackp 
)
static

Here is the caller graph for this function:

static BOOL op_not ( UINT32 stack,
UINT32 stackp 
)
static

Here is the caller graph for this function:

static BOOL op_or ( UINT32 stack,
UINT32 stackp 
)
static

Here is the caller graph for this function:

static BOOL op_xor ( UINT32 stack,
UINT32 stackp 
)
static

Here is the caller graph for this function:

static UINT32 process_rop ( UINT32  src,
UINT32  dst,
UINT32  pat,
const char *  rop,
UINT32  format 
)
static

Here is the call graph for this function:

Here is the caller graph for this function: