Leaked source code of windows server 2003
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

  1. /****************************************************************************/
  2. // nbadisp.h
  3. //
  4. // RDP Bounds Accumulator display driver header.
  5. //
  6. // Copyright (C) 1997-2000 Microsoft Corporation
  7. /****************************************************************************/
  8. #ifndef _H_NBADISP
  9. #define _H_NBADISP
  10. // Maximum recursion level for splitting rectangles, after which merges are
  11. // done.
  12. #define ADDR_RECURSE_LIMIT 20
  13. #define MIN_OVERLAP_BYTES 100
  14. // The following constants are used to determine overlaps.
  15. // - OL_NONE through OL_MERGE_BOTTOM are return codes - which need to be
  16. // distinct from all possible outcode combinations - allowing for the
  17. // minus outcodes for enclosed cases.
  18. // - EE_XMIN through EE_YMAX are outcodes - which need to be uniquely
  19. // ORable binary constants within a single nibble.
  20. // - OL_ENCLOSED through OL_SPLIT_XMAX_YMAX are outcode combinations for
  21. // internal and external edge overlap cases.
  22. #define OL_NONE -1
  23. #define OL_MERGE_LEFT -2
  24. #define OL_MERGE_TOP -3
  25. #define OL_MERGE_RIGHT -4
  26. #define OL_MERGE_BOTTOM -5
  27. #define EE_LEFT 0x0001
  28. #define EE_TOP 0x0002
  29. #define EE_RIGHT 0x0004
  30. #define EE_BOTTOM 0x0008
  31. #define OL_ENCLOSED -(EE_LEFT | EE_TOP | EE_RIGHT | EE_BOTTOM)
  32. #define OL_PART_ENCLOSED_LEFT -(EE_LEFT | EE_TOP | EE_BOTTOM)
  33. #define OL_PART_ENCLOSED_TOP -(EE_LEFT | EE_TOP | EE_RIGHT)
  34. #define OL_PART_ENCLOSED_RIGHT -(EE_TOP | EE_RIGHT | EE_BOTTOM)
  35. #define OL_PART_ENCLOSED_BOTTOM -(EE_LEFT | EE_RIGHT | EE_BOTTOM)
  36. #define OL_ENCLOSES (EE_LEFT | EE_RIGHT | EE_TOP | EE_BOTTOM)
  37. #define OL_PART_ENCLOSES_LEFT (EE_RIGHT | EE_TOP | EE_BOTTOM)
  38. #define OL_PART_ENCLOSES_RIGHT (EE_LEFT | EE_TOP | EE_BOTTOM)
  39. #define OL_PART_ENCLOSES_TOP (EE_LEFT | EE_RIGHT | EE_BOTTOM)
  40. #define OL_PART_ENCLOSES_BOTTOM (EE_LEFT | EE_RIGHT | EE_TOP)
  41. #define OL_SPLIT_HORIZ (EE_TOP | EE_BOTTOM)
  42. #define OL_SPLIT_VERT (EE_LEFT | EE_RIGHT)
  43. #define OL_SPLIT_LEFT_TOP (EE_RIGHT | EE_BOTTOM)
  44. #define OL_SPLIT_RIGHT_TOP (EE_LEFT | EE_BOTTOM)
  45. #define OL_SPLIT_LEFT_BOTTOM (EE_RIGHT | EE_TOP)
  46. #define OL_SPLIT_RIGHT_BOTTOM (EE_LEFT | EE_TOP)
  47. /****************************************************************************/
  48. // Prototypes and inlines
  49. /****************************************************************************/
  50. void RDPCALL BA_DDInit(void);
  51. void RDPCALL BA_InitShm(void);
  52. void RDPCALL BA_AddScreenData(PRECTL);
  53. int RDPCALL BAOverlap(PRECTL, PRECTL);
  54. void RDPCALL BARemoveRectList(unsigned);
  55. BOOL RDPCALL BAAddRect(PRECTL, int);
  56. #endif /* _H_NBADISP */