FreeRDP
gdi/bitmap.c File Reference
#include <freerdp/config.h>
#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

UINT32 gdi_GetPixel (HGDI_DC hdc, UINT32 nXPos, UINT32 nYPos)
 
BYTEgdi_GetPointer (HGDI_BITMAP hBmp, UINT32 X, UINT32 Y)
 
static INLINE UINT32 gdi_SetPixelBmp (HGDI_BITMAP hBmp, UINT32 X, UINT32 Y, UINT32 crColor)
 
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, const 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

◆ TAG

#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

◆ adjust_src_coordinates()

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:

◆ adjust_src_dst_coordinates()

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:

◆ BitBlt_process()

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:

◆ BitBlt_write()

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:

◆ gdi_BitBlt()

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. msdn{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:

◆ gdi_CreateBitmap()

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. msdn{dd183485}

Parameters
nWidthwidth
nHeightheight
formatthe color format used
datapixel buffer
Returns
new bitmap
Here is the call graph for this function:
Here is the caller graph for this function:

◆ gdi_CreateBitmapEx()

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

Create a new bitmap with the given width, height, color format and pixel buffer. msdn{dd183485}

Parameters
nWidthwidth
nHeightheight
formatthe color format used
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:

◆ gdi_CreateCompatibleBitmap()

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. msdn{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:

◆ gdi_GetPixel()

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

Get pixel at the given coordinates. msdn{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:

◆ gdi_GetPointer()

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:

◆ gdi_SetPixel()

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:

◆ gdi_SetPixelBmp()

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

Set pixel at the given coordinates. msdn{dd145078}

Parameters
hBmpdevice context
Xpixel x position
Ypixel y position
crColornew pixel color
Returns
the color written
Here is the call graph for this function:
Here is the caller graph for this function:

◆ op_and()

static BOOL op_and ( UINT32 *  stack,
UINT32 *  stackp 
)
static
Here is the caller graph for this function:

◆ op_not()

static BOOL op_not ( UINT32 *  stack,
const UINT32 *  stackp 
)
static
Here is the caller graph for this function:

◆ op_or()

static BOOL op_or ( UINT32 *  stack,
UINT32 *  stackp 
)
static
Here is the caller graph for this function:

◆ op_xor()

static BOOL op_xor ( UINT32 *  stack,
UINT32 *  stackp 
)
static
Here is the caller graph for this function:

◆ process_rop()

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: