You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.6 KiB
75 lines
2.6 KiB
/****************************************************************************/
|
|
// 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 */
|
|
|