Windows2003-3790/termsrv/drivers/rdp/rdpdd/nbadisp.h
2020-09-30 16:53:55 +02:00

76 lines
2.6 KiB
C

/****************************************************************************/
// nbadisp.h
//
// RDP Bounds Accumulator display driver header.
//
// Copyright (C) 1997-2000 Microsoft Corporation
/****************************************************************************/
#ifndef _H_NBADISP
#define _H_NBADISP
// Maximum recursion level for splitting rectangles, after which merges are
// done.
#define ADDR_RECURSE_LIMIT 20
#define MIN_OVERLAP_BYTES 100
// The following constants are used to determine overlaps.
// - OL_NONE through OL_MERGE_BOTTOM are return codes - which need to be
// distinct from all possible outcode combinations - allowing for the
// minus outcodes for enclosed cases.
// - EE_XMIN through EE_YMAX are outcodes - which need to be uniquely
// ORable binary constants within a single nibble.
// - OL_ENCLOSED through OL_SPLIT_XMAX_YMAX are outcode combinations for
// internal and external edge overlap cases.
#define OL_NONE -1
#define OL_MERGE_LEFT -2
#define OL_MERGE_TOP -3
#define OL_MERGE_RIGHT -4
#define OL_MERGE_BOTTOM -5
#define EE_LEFT 0x0001
#define EE_TOP 0x0002
#define EE_RIGHT 0x0004
#define EE_BOTTOM 0x0008
#define OL_ENCLOSED -(EE_LEFT | EE_TOP | EE_RIGHT | EE_BOTTOM)
#define OL_PART_ENCLOSED_LEFT -(EE_LEFT | EE_TOP | EE_BOTTOM)
#define OL_PART_ENCLOSED_TOP -(EE_LEFT | EE_TOP | EE_RIGHT)
#define OL_PART_ENCLOSED_RIGHT -(EE_TOP | EE_RIGHT | EE_BOTTOM)
#define OL_PART_ENCLOSED_BOTTOM -(EE_LEFT | EE_RIGHT | EE_BOTTOM)
#define OL_ENCLOSES (EE_LEFT | EE_RIGHT | EE_TOP | EE_BOTTOM)
#define OL_PART_ENCLOSES_LEFT (EE_RIGHT | EE_TOP | EE_BOTTOM)
#define OL_PART_ENCLOSES_RIGHT (EE_LEFT | EE_TOP | EE_BOTTOM)
#define OL_PART_ENCLOSES_TOP (EE_LEFT | EE_RIGHT | EE_BOTTOM)
#define OL_PART_ENCLOSES_BOTTOM (EE_LEFT | EE_RIGHT | EE_TOP)
#define OL_SPLIT_HORIZ (EE_TOP | EE_BOTTOM)
#define OL_SPLIT_VERT (EE_LEFT | EE_RIGHT)
#define OL_SPLIT_LEFT_TOP (EE_RIGHT | EE_BOTTOM)
#define OL_SPLIT_RIGHT_TOP (EE_LEFT | EE_BOTTOM)
#define OL_SPLIT_LEFT_BOTTOM (EE_RIGHT | EE_TOP)
#define OL_SPLIT_RIGHT_BOTTOM (EE_LEFT | EE_TOP)
/****************************************************************************/
// Prototypes and inlines
/****************************************************************************/
void RDPCALL BA_DDInit(void);
void RDPCALL BA_InitShm(void);
void RDPCALL BA_AddScreenData(PRECTL);
int RDPCALL BAOverlap(PRECTL, PRECTL);
void RDPCALL BARemoveRectList(unsigned);
BOOL RDPCALL BAAddRect(PRECTL, int);
#endif /* _H_NBADISP */