189 lines
3.8 KiB
C
189 lines
3.8 KiB
C
|
/******************************************************************************
|
||
|
/
|
||
|
/ File: GraphicsCard.h
|
||
|
/
|
||
|
/ Description: App Server interface for graphics card add-ons.
|
||
|
/
|
||
|
/ Copyright 1993-98, Be Incorporated
|
||
|
/
|
||
|
*******************************************************************************/
|
||
|
|
||
|
#ifndef _GRAPHICS_CARD_H
|
||
|
#define _GRAPHICS_CARD_H
|
||
|
|
||
|
#include <BeBuild.h>
|
||
|
#include <GraphicsDefs.h>
|
||
|
#include <SupportDefs.h>
|
||
|
|
||
|
/*-------------------------------------------------------------*/
|
||
|
/*----- Command Constants -------------------------------------*/
|
||
|
|
||
|
enum {
|
||
|
B_OPEN_GRAPHICS_CARD,
|
||
|
B_CLOSE_GRAPHICS_CARD,
|
||
|
B_GET_GRAPHICS_CARD_INFO,
|
||
|
B_GET_GRAPHICS_CARD_HOOKS,
|
||
|
B_SET_INDEXED_COLOR,
|
||
|
B_GET_SCREEN_SPACES,
|
||
|
B_CONFIG_GRAPHICS_CARD,
|
||
|
B_GET_REFRESH_RATES,
|
||
|
B_SET_SCREEN_GAMMA,
|
||
|
|
||
|
B_GET_INFO_FOR_CLONE_SIZE,
|
||
|
B_GET_INFO_FOR_CLONE,
|
||
|
B_SET_CLONED_GRAPHICS_CARD,
|
||
|
B_CLOSE_CLONED_GRAPHICS_CARD,
|
||
|
B_PROPOSE_FRAME_BUFFER,
|
||
|
B_SET_FRAME_BUFFER,
|
||
|
B_SET_DISPLAY_AREA,
|
||
|
B_MOVE_DISPLAY_AREA}
|
||
|
;
|
||
|
|
||
|
/*----- Optional ---------------*/
|
||
|
|
||
|
enum {
|
||
|
B_CRT_CONTROL = 0x0001,
|
||
|
B_GAMMA_CONTROL = 0x0002,
|
||
|
B_FRAME_BUFFER_CONTROL = 0x0004,
|
||
|
B_PARALLEL_BUFFER_ACCESS = 0x0008,
|
||
|
B_LAME_ASS_CARD = 0x0010
|
||
|
};
|
||
|
|
||
|
/*-------------------------------------------------------------*/
|
||
|
/*----- Structures --------------------------------------------*/
|
||
|
|
||
|
typedef struct {
|
||
|
int16 version;
|
||
|
int16 id;
|
||
|
void *frame_buffer;
|
||
|
char rgba_order[4];
|
||
|
int16 flags;
|
||
|
int16 bits_per_pixel;
|
||
|
int16 bytes_per_row;
|
||
|
int16 width;
|
||
|
int16 height;
|
||
|
} graphics_card_info;
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
int32 index;
|
||
|
rgb_color color;
|
||
|
} indexed_color;
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
uint32 space;
|
||
|
float refresh_rate;
|
||
|
uchar h_position;
|
||
|
uchar v_position;
|
||
|
uchar h_size;
|
||
|
uchar v_size;
|
||
|
} graphics_card_config;
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
float min;
|
||
|
float max;
|
||
|
float current;
|
||
|
} refresh_rate_info;
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
void *screen_base;
|
||
|
void *io_base;
|
||
|
uint32 vendor_id;
|
||
|
uint32 device_id;
|
||
|
uint32 _reserved1_;
|
||
|
uint32 _reserved2_;
|
||
|
} graphics_card_spec;
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
int16 x1;
|
||
|
int16 y1;
|
||
|
int16 x2;
|
||
|
int16 y2;
|
||
|
rgb_color color;
|
||
|
} rgb_color_line;
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
int16 x1;
|
||
|
int16 y1;
|
||
|
int16 x2;
|
||
|
int16 y2;
|
||
|
uchar color;
|
||
|
} indexed_color_line;
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
int16 bits_per_pixel;
|
||
|
int16 bytes_per_row;
|
||
|
int16 width;
|
||
|
int16 height;
|
||
|
int16 display_width;
|
||
|
int16 display_height;
|
||
|
int16 display_x;
|
||
|
int16 display_y;
|
||
|
} frame_buffer_info;
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
uchar red[256];
|
||
|
uchar green[256];
|
||
|
uchar blue[256];
|
||
|
} screen_gamma;
|
||
|
|
||
|
|
||
|
/*-------------------------------------------------------------*/
|
||
|
/*----- Hook Function -----------------------------------------*/
|
||
|
|
||
|
typedef void (*graphics_card_hook) ();
|
||
|
|
||
|
#define B_GRAPHICS_HOOK_COUNT 48
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
_EXPORT int32 control_graphics_card(uint32, void*);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
|
||
|
/*-------------------------------------------------------------*/
|
||
|
/*----- Debugging Functions ------------------------------------*/
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
void dprintf(const char *format, ...);
|
||
|
bool set_dprintf_enabled(bool); /* returns old enable flag */
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
|
||
|
/*-------------------------------------------------------------*/
|
||
|
/*----- Obsolete ---------------------------------------------*/
|
||
|
#define B_HOOK_COUNT B_GRAPHICS_HOOK_COUNT
|
||
|
|
||
|
|
||
|
/*-------------------------------------------------------------*/
|
||
|
/*-------------------------------------------------------------*/
|
||
|
|
||
|
#endif /* _GRAPHICS_CARD_H */
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|