Blame include/freerdp/primary.h

Packit 1fb8d4
/**
Packit 1fb8d4
 * FreeRDP: A Remote Desktop Protocol Implementation
Packit 1fb8d4
 * Primary Drawing Orders Interface API
Packit 1fb8d4
 *
Packit 1fb8d4
 * Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit 1fb8d4
 *
Packit 1fb8d4
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit 1fb8d4
 * you may not use this file except in compliance with the License.
Packit 1fb8d4
 * You may obtain a copy of the License at
Packit 1fb8d4
 *
Packit 1fb8d4
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit 1fb8d4
 *
Packit 1fb8d4
 * Unless required by applicable law or agreed to in writing, software
Packit 1fb8d4
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit 1fb8d4
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit 1fb8d4
 * See the License for the specific language governing permissions and
Packit 1fb8d4
 * limitations under the License.
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
#ifndef FREERDP_UPDATE_PRIMARY_H
Packit 1fb8d4
#define FREERDP_UPDATE_PRIMARY_H
Packit 1fb8d4
Packit 1fb8d4
#include <freerdp/types.h>
Packit 1fb8d4
Packit 1fb8d4
struct _GLYPH_DATA
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 cacheIndex;
Packit 1fb8d4
	INT16 x;
Packit 1fb8d4
	INT16 y;
Packit 1fb8d4
	UINT32 cx;
Packit 1fb8d4
	UINT32 cy;
Packit 1fb8d4
	UINT32 cb;
Packit 1fb8d4
	BYTE* aj;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _GLYPH_DATA GLYPH_DATA;
Packit 1fb8d4
Packit 1fb8d4
struct _GLYPH_DATA_V2
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 cacheIndex;
Packit 1fb8d4
	INT32 x;
Packit 1fb8d4
	INT32 y;
Packit 1fb8d4
	UINT32 cx;
Packit 1fb8d4
	UINT32 cy;
Packit 1fb8d4
	UINT32 cb;
Packit 1fb8d4
	BYTE* aj;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _GLYPH_DATA_V2 GLYPH_DATA_V2;
Packit 1fb8d4
Packit 1fb8d4
#define BACKMODE_TRANSPARENT	0x0001
Packit 1fb8d4
#define BACKMODE_OPAQUE		0x0002
Packit 1fb8d4
Packit 1fb8d4
struct rdp_bounds
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 left;
Packit 1fb8d4
	INT32 top;
Packit 1fb8d4
	INT32 right;
Packit 1fb8d4
	INT32 bottom;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct rdp_bounds rdpBounds;
Packit 1fb8d4
Packit 1fb8d4
struct rdp_brush
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 x;
Packit 1fb8d4
	UINT32 y;
Packit 1fb8d4
	UINT32 bpp;
Packit 1fb8d4
	UINT32 style;
Packit 1fb8d4
	UINT32 hatch;
Packit 1fb8d4
	UINT32 index;
Packit 1fb8d4
	BYTE* data;
Packit 1fb8d4
	BYTE p8x8[8];
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct rdp_brush rdpBrush;
Packit 1fb8d4
Packit 1fb8d4
struct _ORDER_INFO
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 controlFlags;
Packit 1fb8d4
	UINT32 orderType;
Packit 1fb8d4
	UINT32 fieldFlags;
Packit 1fb8d4
	UINT32 boundsFlags;
Packit 1fb8d4
	rdpBounds bounds;
Packit 1fb8d4
	BOOL deltaCoordinates;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _ORDER_INFO ORDER_INFO;
Packit 1fb8d4
Packit 1fb8d4
struct _DSTBLT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 nLeftRect;
Packit 1fb8d4
	INT32 nTopRect;
Packit 1fb8d4
	INT32 nWidth;
Packit 1fb8d4
	INT32 nHeight;
Packit 1fb8d4
	UINT32 bRop;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _DSTBLT_ORDER DSTBLT_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _PATBLT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 nLeftRect;
Packit 1fb8d4
	INT32 nTopRect;
Packit 1fb8d4
	INT32 nWidth;
Packit 1fb8d4
	INT32 nHeight;
Packit 1fb8d4
	UINT32 bRop;
Packit 1fb8d4
	UINT32 backColor;
Packit 1fb8d4
	UINT32 foreColor;
Packit 1fb8d4
	rdpBrush brush;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _PATBLT_ORDER PATBLT_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _SCRBLT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 nLeftRect;
Packit 1fb8d4
	INT32 nTopRect;
Packit 1fb8d4
	INT32 nWidth;
Packit 1fb8d4
	INT32 nHeight;
Packit 1fb8d4
	UINT32 bRop;
Packit 1fb8d4
	INT32 nXSrc;
Packit 1fb8d4
	INT32 nYSrc;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _SCRBLT_ORDER SCRBLT_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _OPAQUE_RECT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 nLeftRect;
Packit 1fb8d4
	INT32 nTopRect;
Packit 1fb8d4
	INT32 nWidth;
Packit 1fb8d4
	INT32 nHeight;
Packit 1fb8d4
	UINT32 color;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _OPAQUE_RECT_ORDER OPAQUE_RECT_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _DRAW_NINE_GRID_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 srcLeft;
Packit 1fb8d4
	INT32 srcTop;
Packit 1fb8d4
	INT32 srcRight;
Packit 1fb8d4
	INT32 srcBottom;
Packit 1fb8d4
	UINT32 bitmapId;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _DRAW_NINE_GRID_ORDER DRAW_NINE_GRID_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _DELTA_RECT
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 left;
Packit 1fb8d4
	INT32 top;
Packit 1fb8d4
	INT32 width;
Packit 1fb8d4
	INT32 height;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _DELTA_RECT DELTA_RECT;
Packit 1fb8d4
Packit 1fb8d4
struct _MULTI_DSTBLT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 nLeftRect;
Packit 1fb8d4
	INT32 nTopRect;
Packit 1fb8d4
	INT32 nWidth;
Packit 1fb8d4
	INT32 nHeight;
Packit 1fb8d4
	UINT32 bRop;
Packit 1fb8d4
	UINT32 numRectangles;
Packit 1fb8d4
	UINT32 cbData;
Packit 1fb8d4
	DELTA_RECT rectangles[45];
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _MULTI_DSTBLT_ORDER MULTI_DSTBLT_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _MULTI_PATBLT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 nLeftRect;
Packit 1fb8d4
	INT32 nTopRect;
Packit 1fb8d4
	INT32 nWidth;
Packit 1fb8d4
	INT32 nHeight;
Packit 1fb8d4
	UINT32 bRop;
Packit 1fb8d4
	UINT32 backColor;
Packit 1fb8d4
	UINT32 foreColor;
Packit 1fb8d4
	rdpBrush brush;
Packit 1fb8d4
	UINT32 numRectangles;
Packit 1fb8d4
	UINT32 cbData;
Packit 1fb8d4
	DELTA_RECT rectangles[45];
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _MULTI_PATBLT_ORDER MULTI_PATBLT_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _MULTI_SCRBLT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 nLeftRect;
Packit 1fb8d4
	INT32 nTopRect;
Packit 1fb8d4
	INT32 nWidth;
Packit 1fb8d4
	INT32 nHeight;
Packit 1fb8d4
	UINT32 bRop;
Packit 1fb8d4
	INT32 nXSrc;
Packit 1fb8d4
	INT32 nYSrc;
Packit 1fb8d4
	UINT32 numRectangles;
Packit 1fb8d4
	UINT32 cbData;
Packit 1fb8d4
	DELTA_RECT rectangles[45];
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _MULTI_SCRBLT_ORDER MULTI_SCRBLT_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _MULTI_OPAQUE_RECT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 nLeftRect;
Packit 1fb8d4
	INT32 nTopRect;
Packit 1fb8d4
	INT32 nWidth;
Packit 1fb8d4
	INT32 nHeight;
Packit 1fb8d4
	UINT32 color;
Packit 1fb8d4
	UINT32 numRectangles;
Packit 1fb8d4
	UINT32 cbData;
Packit 1fb8d4
	DELTA_RECT rectangles[45];
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _MULTI_OPAQUE_RECT_ORDER MULTI_OPAQUE_RECT_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _MULTI_DRAW_NINE_GRID_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 srcLeft;
Packit 1fb8d4
	INT32 srcTop;
Packit 1fb8d4
	INT32 srcRight;
Packit 1fb8d4
	INT32 srcBottom;
Packit 1fb8d4
	UINT32 bitmapId;
Packit 1fb8d4
	UINT32 nDeltaEntries;
Packit 1fb8d4
	UINT32 cbData;
Packit 1fb8d4
	DELTA_RECT rectangles[45];
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _MULTI_DRAW_NINE_GRID_ORDER MULTI_DRAW_NINE_GRID_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _LINE_TO_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 backMode;
Packit 1fb8d4
	INT32 nXStart;
Packit 1fb8d4
	INT32 nYStart;
Packit 1fb8d4
	INT32 nXEnd;
Packit 1fb8d4
	INT32 nYEnd;
Packit 1fb8d4
	UINT32 backColor;
Packit 1fb8d4
	UINT32 bRop2;
Packit 1fb8d4
	UINT32 penStyle;
Packit 1fb8d4
	UINT32 penWidth;
Packit 1fb8d4
	UINT32 penColor;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _LINE_TO_ORDER LINE_TO_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _DELTA_POINT
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 x;
Packit 1fb8d4
	INT32 y;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _DELTA_POINT DELTA_POINT;
Packit 1fb8d4
Packit 1fb8d4
struct _POLYLINE_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 xStart;
Packit 1fb8d4
	INT32 yStart;
Packit 1fb8d4
	UINT32 bRop2;
Packit 1fb8d4
	UINT32 penColor;
Packit 1fb8d4
	UINT32 numDeltaEntries;
Packit 1fb8d4
	UINT32 cbData;
Packit 1fb8d4
	DELTA_POINT* points;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _POLYLINE_ORDER POLYLINE_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _MEMBLT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 cacheId;
Packit 1fb8d4
	UINT32 colorIndex;
Packit 1fb8d4
	INT32 nLeftRect;
Packit 1fb8d4
	INT32 nTopRect;
Packit 1fb8d4
	INT32 nWidth;
Packit 1fb8d4
	INT32 nHeight;
Packit 1fb8d4
	UINT32 bRop;
Packit 1fb8d4
	INT32 nXSrc;
Packit 1fb8d4
	INT32 nYSrc;
Packit 1fb8d4
	UINT32 cacheIndex;
Packit 1fb8d4
	rdpBitmap* bitmap;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _MEMBLT_ORDER MEMBLT_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _MEM3BLT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 cacheId;
Packit 1fb8d4
	UINT32 colorIndex;
Packit 1fb8d4
	INT32 nLeftRect;
Packit 1fb8d4
	INT32 nTopRect;
Packit 1fb8d4
	INT32 nWidth;
Packit 1fb8d4
	INT32 nHeight;
Packit 1fb8d4
	UINT32 bRop;
Packit 1fb8d4
	INT32 nXSrc;
Packit 1fb8d4
	INT32 nYSrc;
Packit 1fb8d4
	UINT32 backColor;
Packit 1fb8d4
	UINT32 foreColor;
Packit 1fb8d4
	rdpBrush brush;
Packit 1fb8d4
	UINT32 cacheIndex;
Packit 1fb8d4
	rdpBitmap* bitmap;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _MEM3BLT_ORDER MEM3BLT_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _SAVE_BITMAP_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 savedBitmapPosition;
Packit 1fb8d4
	INT32 nLeftRect;
Packit 1fb8d4
	INT32 nTopRect;
Packit 1fb8d4
	INT32 nRightRect;
Packit 1fb8d4
	INT32 nBottomRect;
Packit 1fb8d4
	UINT32 operation;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _SAVE_BITMAP_ORDER SAVE_BITMAP_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _GLYPH_FRAGMENT_INDEX
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 index;
Packit 1fb8d4
	UINT32 delta;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _GLYPH_FRAGMENT_INDEX GLYPH_FRAGMENT_INDEX;
Packit 1fb8d4
Packit 1fb8d4
struct _GLYPH_FRAGMENT
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 operation;
Packit 1fb8d4
	UINT32 index;
Packit 1fb8d4
	UINT32 size;
Packit 1fb8d4
	UINT32 nindices;
Packit 1fb8d4
	GLYPH_FRAGMENT_INDEX* indices;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _GLYPH_FRAGMENT GLYPH_FRAGMENT;
Packit 1fb8d4
Packit 1fb8d4
struct _GLYPH_INDEX_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 cacheId;
Packit 1fb8d4
	UINT32 flAccel;
Packit 1fb8d4
	UINT32 ulCharInc;
Packit 1fb8d4
	UINT32 fOpRedundant;
Packit 1fb8d4
	UINT32 backColor;
Packit 1fb8d4
	UINT32 foreColor;
Packit 1fb8d4
	INT32 bkLeft;
Packit 1fb8d4
	INT32 bkTop;
Packit 1fb8d4
	INT32 bkRight;
Packit 1fb8d4
	INT32 bkBottom;
Packit 1fb8d4
	INT32 opLeft;
Packit 1fb8d4
	INT32 opTop;
Packit 1fb8d4
	INT32 opRight;
Packit 1fb8d4
	INT32 opBottom;
Packit 1fb8d4
	rdpBrush brush;
Packit 1fb8d4
	INT32 x;
Packit 1fb8d4
	INT32 y;
Packit 1fb8d4
	UINT32 cbData;
Packit 1fb8d4
	BYTE data[256];
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _GLYPH_INDEX_ORDER GLYPH_INDEX_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _FAST_INDEX_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 cacheId;
Packit 1fb8d4
	UINT32 flAccel;
Packit 1fb8d4
	UINT32 ulCharInc;
Packit 1fb8d4
	UINT32 backColor;
Packit 1fb8d4
	UINT32 foreColor;
Packit 1fb8d4
	INT32 bkLeft;
Packit 1fb8d4
	INT32 bkTop;
Packit 1fb8d4
	INT32 bkRight;
Packit 1fb8d4
	INT32 bkBottom;
Packit 1fb8d4
	INT32 opLeft;
Packit 1fb8d4
	INT32 opTop;
Packit 1fb8d4
	INT32 opRight;
Packit 1fb8d4
	INT32 opBottom;
Packit 1fb8d4
	BOOL opaqueRect;
Packit 1fb8d4
	INT32 x;
Packit 1fb8d4
	INT32 y;
Packit 1fb8d4
	UINT32 cbData;
Packit 1fb8d4
	BYTE data[256];
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _FAST_INDEX_ORDER FAST_INDEX_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _FAST_GLYPH_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 cacheId;
Packit 1fb8d4
	UINT32 flAccel;
Packit 1fb8d4
	UINT32 ulCharInc;
Packit 1fb8d4
	UINT32 backColor;
Packit 1fb8d4
	UINT32 foreColor;
Packit 1fb8d4
	INT32 bkLeft;
Packit 1fb8d4
	INT32 bkTop;
Packit 1fb8d4
	INT32 bkRight;
Packit 1fb8d4
	INT32 bkBottom;
Packit 1fb8d4
	INT32 opLeft;
Packit 1fb8d4
	INT32 opTop;
Packit 1fb8d4
	INT32 opRight;
Packit 1fb8d4
	INT32 opBottom;
Packit 1fb8d4
	INT32 x;
Packit 1fb8d4
	INT32 y;
Packit 1fb8d4
	UINT32 cbData;
Packit 1fb8d4
	BYTE data[256];
Packit 1fb8d4
	GLYPH_DATA_V2 glyphData;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _FAST_GLYPH_ORDER FAST_GLYPH_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _POLYGON_SC_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 xStart;
Packit 1fb8d4
	INT32 yStart;
Packit 1fb8d4
	UINT32 bRop2;
Packit 1fb8d4
	UINT32 fillMode;
Packit 1fb8d4
	UINT32 brushColor;
Packit 1fb8d4
	UINT32 numPoints;
Packit 1fb8d4
	UINT32 cbData;
Packit 1fb8d4
	DELTA_POINT* points;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _POLYGON_SC_ORDER POLYGON_SC_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _POLYGON_CB_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 xStart;
Packit 1fb8d4
	INT32 yStart;
Packit 1fb8d4
	UINT32 bRop2;
Packit 1fb8d4
	UINT32 backMode;
Packit 1fb8d4
	UINT32 fillMode;
Packit 1fb8d4
	UINT32 backColor;
Packit 1fb8d4
	UINT32 foreColor;
Packit 1fb8d4
	rdpBrush brush;
Packit 1fb8d4
	UINT32 numPoints;
Packit 1fb8d4
	UINT32 cbData;
Packit 1fb8d4
	DELTA_POINT* points;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _POLYGON_CB_ORDER POLYGON_CB_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _ELLIPSE_SC_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 leftRect;
Packit 1fb8d4
	INT32 topRect;
Packit 1fb8d4
	INT32 rightRect;
Packit 1fb8d4
	INT32 bottomRect;
Packit 1fb8d4
	UINT32 bRop2;
Packit 1fb8d4
	UINT32 fillMode;
Packit 1fb8d4
	UINT32 color;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _ELLIPSE_SC_ORDER ELLIPSE_SC_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _ELLIPSE_CB_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	INT32 leftRect;
Packit 1fb8d4
	INT32 topRect;
Packit 1fb8d4
	INT32 rightRect;
Packit 1fb8d4
	INT32 bottomRect;
Packit 1fb8d4
	UINT32 bRop2;
Packit 1fb8d4
	UINT32 fillMode;
Packit 1fb8d4
	UINT32 backColor;
Packit 1fb8d4
	UINT32 foreColor;
Packit 1fb8d4
	rdpBrush brush;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _ELLIPSE_CB_ORDER ELLIPSE_CB_ORDER;
Packit 1fb8d4
Packit 1fb8d4
typedef BOOL (*pDstBlt)(rdpContext* context, const DSTBLT_ORDER* dstblt);
Packit 1fb8d4
typedef BOOL (*pPatBlt)(rdpContext* context, PATBLT_ORDER* patblt);
Packit 1fb8d4
typedef BOOL (*pScrBlt)(rdpContext* context, const SCRBLT_ORDER* scrblt);
Packit 1fb8d4
typedef BOOL (*pOpaqueRect)(rdpContext* context,
Packit 1fb8d4
                            const OPAQUE_RECT_ORDER* opaque_rect);
Packit 1fb8d4
typedef BOOL (*pDrawNineGrid)(rdpContext* context,
Packit 1fb8d4
                              const DRAW_NINE_GRID_ORDER* draw_nine_grid);
Packit 1fb8d4
typedef BOOL (*pMultiDstBlt)(rdpContext* context,
Packit 1fb8d4
                             const MULTI_DSTBLT_ORDER* multi_dstblt);
Packit 1fb8d4
typedef BOOL (*pMultiPatBlt)(rdpContext* context,
Packit 1fb8d4
                             const MULTI_PATBLT_ORDER* multi_patblt);
Packit 1fb8d4
typedef BOOL (*pMultiScrBlt)(rdpContext* context,
Packit 1fb8d4
                             const MULTI_SCRBLT_ORDER* multi_scrblt);
Packit 1fb8d4
typedef BOOL (*pMultiOpaqueRect)(rdpContext* context,
Packit 1fb8d4
                                 const MULTI_OPAQUE_RECT_ORDER* multi_opaque_rect);
Packit 1fb8d4
typedef BOOL (*pMultiDrawNineGrid)(rdpContext* context,
Packit 1fb8d4
                                   const MULTI_DRAW_NINE_GRID_ORDER* multi_draw_nine_grid);
Packit 1fb8d4
typedef BOOL (*pLineTo)(rdpContext* context, const LINE_TO_ORDER* line_to);
Packit 1fb8d4
typedef BOOL (*pPolyline)(rdpContext* context, const POLYLINE_ORDER* polyline);
Packit 1fb8d4
typedef BOOL (*pMemBlt)(rdpContext* context, MEMBLT_ORDER* memblt);
Packit 1fb8d4
typedef BOOL (*pMem3Blt)(rdpContext* context, MEM3BLT_ORDER* memblt);
Packit 1fb8d4
typedef BOOL (*pSaveBitmap)(rdpContext* context,
Packit 1fb8d4
                            const SAVE_BITMAP_ORDER* save_bitmap);
Packit 1fb8d4
typedef BOOL (*pGlyphIndex)(rdpContext* context,
Packit 1fb8d4
                            GLYPH_INDEX_ORDER* glyph_index);
Packit 1fb8d4
typedef BOOL (*pFastIndex)(rdpContext* context,
Packit 1fb8d4
                           const FAST_INDEX_ORDER* fast_index);
Packit 1fb8d4
typedef BOOL (*pFastGlyph)(rdpContext* context,
Packit 1fb8d4
                           const FAST_GLYPH_ORDER* fast_glyph);
Packit 1fb8d4
typedef BOOL (*pPolygonSC)(rdpContext* context,
Packit 1fb8d4
                           const POLYGON_SC_ORDER* polygon_sc);
Packit 1fb8d4
typedef BOOL (*pPolygonCB)(rdpContext* context, POLYGON_CB_ORDER* polygon_cb);
Packit 1fb8d4
typedef BOOL (*pEllipseSC)(rdpContext* context,
Packit 1fb8d4
                           const ELLIPSE_SC_ORDER* ellipse_sc);
Packit 1fb8d4
typedef BOOL (*pEllipseCB)(rdpContext* context,
Packit 1fb8d4
                           const ELLIPSE_CB_ORDER* ellipse_cb);
Packit 1fb8d4
Packit 1fb8d4
struct rdp_primary_update
Packit 1fb8d4
{
Packit 1fb8d4
	rdpContext* context; /* 0 */
Packit 1fb8d4
	UINT32 paddingA[16 - 1]; /* 1 */
Packit 1fb8d4
Packit 1fb8d4
	pDstBlt DstBlt; /* 16 */
Packit 1fb8d4
	pPatBlt PatBlt; /* 17 */
Packit 1fb8d4
	pScrBlt ScrBlt; /* 18 */
Packit 1fb8d4
	pOpaqueRect OpaqueRect; /* 19 */
Packit 1fb8d4
	pDrawNineGrid DrawNineGrid; /* 20 */
Packit 1fb8d4
	pMultiDstBlt MultiDstBlt; /* 21 */
Packit 1fb8d4
	pMultiPatBlt MultiPatBlt; /* 22 */
Packit 1fb8d4
	pMultiScrBlt MultiScrBlt; /* 23 */
Packit 1fb8d4
	pMultiOpaqueRect MultiOpaqueRect; /* 24 */
Packit 1fb8d4
	pMultiDrawNineGrid MultiDrawNineGrid; /* 25 */
Packit 1fb8d4
	pLineTo LineTo; /* 26 */
Packit 1fb8d4
	pPolyline Polyline; /* 27 */
Packit 1fb8d4
	pMemBlt MemBlt; /* 28 */
Packit 1fb8d4
	pMem3Blt Mem3Blt; /* 29 */
Packit 1fb8d4
	pSaveBitmap SaveBitmap; /* 30 */
Packit 1fb8d4
	pGlyphIndex GlyphIndex; /* 31 */
Packit 1fb8d4
	pFastIndex FastIndex; /* 32 */
Packit 1fb8d4
	pFastGlyph FastGlyph; /* 33 */
Packit 1fb8d4
	pPolygonSC PolygonSC; /* 34 */
Packit 1fb8d4
	pPolygonCB PolygonCB; /* 35 */
Packit 1fb8d4
	pEllipseSC EllipseSC; /* 36 */
Packit 1fb8d4
	pEllipseCB EllipseCB; /* 37 */
Packit 1fb8d4
	UINT32 paddingB[48 - 38]; /* 38 */
Packit 1fb8d4
Packit 1fb8d4
	/* internal */
Packit 1fb8d4
Packit 1fb8d4
	ORDER_INFO order_info;
Packit 1fb8d4
	DSTBLT_ORDER dstblt;
Packit 1fb8d4
	PATBLT_ORDER patblt;
Packit 1fb8d4
	SCRBLT_ORDER scrblt;
Packit 1fb8d4
	OPAQUE_RECT_ORDER opaque_rect;
Packit 1fb8d4
	DRAW_NINE_GRID_ORDER draw_nine_grid;
Packit 1fb8d4
	MULTI_DSTBLT_ORDER multi_dstblt;
Packit 1fb8d4
	MULTI_PATBLT_ORDER multi_patblt;
Packit 1fb8d4
	MULTI_SCRBLT_ORDER multi_scrblt;
Packit 1fb8d4
	MULTI_OPAQUE_RECT_ORDER multi_opaque_rect;
Packit 1fb8d4
	MULTI_DRAW_NINE_GRID_ORDER multi_draw_nine_grid;
Packit 1fb8d4
	LINE_TO_ORDER line_to;
Packit 1fb8d4
	POLYLINE_ORDER polyline;
Packit 1fb8d4
	MEMBLT_ORDER memblt;
Packit 1fb8d4
	MEM3BLT_ORDER mem3blt;
Packit 1fb8d4
	SAVE_BITMAP_ORDER save_bitmap;
Packit 1fb8d4
	GLYPH_INDEX_ORDER glyph_index;
Packit 1fb8d4
	FAST_INDEX_ORDER fast_index;
Packit 1fb8d4
	FAST_GLYPH_ORDER fast_glyph;
Packit 1fb8d4
	POLYGON_SC_ORDER polygon_sc;
Packit 1fb8d4
	POLYGON_CB_ORDER polygon_cb;
Packit 1fb8d4
	ELLIPSE_SC_ORDER ellipse_sc;
Packit 1fb8d4
	ELLIPSE_CB_ORDER ellipse_cb;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct rdp_primary_update rdpPrimaryUpdate;
Packit 1fb8d4
Packit 1fb8d4
#endif /* FREERDP_UPDATE_PRIMARY_H */