mirror of https://github.com/lianthony/NT4.0
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.
155 lines
2.9 KiB
155 lines
2.9 KiB
/*[
|
|
======================================================================
|
|
|
|
SoftPC Revision 3.0
|
|
|
|
Title:
|
|
gore.h
|
|
|
|
Description:
|
|
|
|
This is the header file for the Graphics Object Recognition
|
|
( GORE ) system for communicating update information from
|
|
the VGA emulation to the host graphics system.
|
|
|
|
Author:
|
|
John Shanly
|
|
|
|
Date:
|
|
6 November 1990
|
|
|
|
SccsID "@(#)gore.h 1.2 08/10/92 Copyright Insignia Solutions Ltd."
|
|
|
|
======================================================================
|
|
]*/
|
|
|
|
#ifdef INTERLEAVED
|
|
|
|
#define B_POS_UNIT_DIFF 4
|
|
#define B_NEG_UNIT_DIFF -4
|
|
#define W_POS_UNIT_DIFF 8
|
|
#define W_NEG_UNIT_DIFF -8
|
|
#define CURR_LINE_DIFF 320
|
|
|
|
#else
|
|
|
|
#define B_POS_UNIT_DIFF 1
|
|
#define B_NEG_UNIT_DIFF -1
|
|
#define W_POS_UNIT_DIFF 2
|
|
#define W_NEG_UNIT_DIFF -2
|
|
#define CURR_LINE_DIFF 80
|
|
|
|
#endif /* INTERLEAVED */
|
|
|
|
|
|
typedef struct
|
|
{
|
|
VOID (*b_wrt)();
|
|
VOID (*w_wrt)();
|
|
VOID (*b_str)();
|
|
VOID (*w_str)();
|
|
} GU_HANDLER;
|
|
|
|
typedef struct
|
|
{
|
|
ULONG obj_type;
|
|
ULONG offset;
|
|
ULONG tlx;
|
|
ULONG tly;
|
|
ULONG width;
|
|
ULONG height;
|
|
} OBJ_DATA;
|
|
|
|
typedef struct _OBJECT
|
|
{
|
|
OBJ_DATA data;
|
|
struct _OBJECT *next;
|
|
struct _OBJECT *prev;
|
|
} OBJECT, *OBJ_PTR;
|
|
|
|
typedef struct
|
|
{
|
|
ULONG curr_addr;
|
|
ULONG obj_start;
|
|
ULONG start;
|
|
ULONG end;
|
|
ULONG curr_line_end;
|
|
ULONG prev_line_start;
|
|
ULONG rect_width;
|
|
ULONG rect_height;
|
|
OBJ_PTR obj_ptr;
|
|
OBJ_PTR obj_ptr2;
|
|
ULONG count;
|
|
} GORE_DATA_WRT;
|
|
|
|
typedef struct
|
|
{
|
|
ULONG start;
|
|
ULONG end;
|
|
ULONG width;
|
|
OBJ_PTR obj_ptr;
|
|
} GORE_DATA_STR;
|
|
|
|
typedef struct
|
|
{
|
|
ULONG curr_line_diff;
|
|
ULONG max_vis_addr;
|
|
ULONG shift_count;
|
|
GORE_DATA_WRT gd_b_wrt;
|
|
GORE_DATA_WRT gd_w_wrt;
|
|
GORE_DATA_STR gd_b_str;
|
|
GORE_DATA_STR gd_w_str;
|
|
} GORE_DATA;
|
|
|
|
typedef UTINY OBJ_TYPE;
|
|
|
|
#define OBJ_PTR_NULL ((OBJ_PTR) 0)
|
|
|
|
#define INITIAL_MAX_LIST_SIZE 1000 /* Arbitrary */
|
|
|
|
#define RANDOM_BW 0
|
|
#define RANDOM_WW 1
|
|
#define LINE_RIGHT_BW 2
|
|
#define LINE_RIGHT_WW 3
|
|
#define LINE_RIGHT_BS 4
|
|
#define LINE_RIGHT_WS 5
|
|
#define LINE_LEFT_BW 6
|
|
#define LINE_LEFT_WW 7
|
|
#define LINE_LEFT_BS 8
|
|
#define LINE_LEFT_WS 9
|
|
#define LINE_DOWN_BW 10
|
|
#define LINE_DOWN_WW 11
|
|
#define LINE_UP_BW 12
|
|
#define LINE_UP_WW 13
|
|
#define RECT_RIGHT_DOWN_BW 14
|
|
#define RECT_RIGHT_DOWN_WW 15
|
|
#define RECT_RIGHT_DOWN_BS 16
|
|
#define RECT_RIGHT_DOWN_WS 17
|
|
#define RECT_LEFT_DOWN_BW 18
|
|
#define RECT_LEFT_DOWN_WW 19
|
|
#define RECT_RIGHT_UP_BS 20
|
|
#define RECT_RIGHT_UP_WS 21
|
|
#define RECT_LEFT_UP_BS 22
|
|
#define RECT_LEFT_UP_WS 23
|
|
#define LINE_DOWN_LEFT_BW 24
|
|
#define LINE_DOWN_RIGHT_BW 25
|
|
#define LINE_DOWN_LEFT_WW 26
|
|
#define LINE_DOWN_RIGHT_WW 27
|
|
#define RECT_DOWN_RIGHT_BW 28
|
|
#define RECT_DOWN_RIGHT_WW 29
|
|
#define ANNULLED 30
|
|
#define MAX_OBJ_TYPES 31
|
|
|
|
#define NOT_PENDING 0
|
|
#define BW 1
|
|
#define WW 2
|
|
#define BS 3
|
|
#define WS 4
|
|
|
|
IMPORT GU_HANDLER gu_handler;
|
|
IMPORT GORE_DATA gd;
|
|
IMPORT VOID (*paint_screen)();
|
|
IMPORT VOID process_object_list();
|
|
IMPORT ULONG trace_gore;
|
|
IMPORT ULONG stat_gore;
|
|
IMPORT OBJ_PTR start_object();
|