home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NeXTSTEP 3.2 (Developer)
/
NS_dev_3.2.iso
/
NextDeveloper
/
Headers
/
bsd
/
dev
/
m68k
/
video.h
< prev
Wrap
Text File
|
1993-10-19
|
4KB
|
152 lines
/*
* Copyright (C) 1989, NeXT, Inc.
*
* HISTORY
*
* 01-Mar-90 Ted Cohn (tcohn) at NeXT
* Added DKIOCREGISTER ioctl to register the MegaPixel with ev driver.
*
* 28-Feb-90 John Seamons (jks) at NeXT
* Added STOP_ANIM flag.
*
* 12-Aug-87 John Seamons (jks) at NeXT
* Created.
*/
#ifndef _M68K_DEV_VIDEO_PRIV_
#define _M68K_DEV_VIDEO_PRIV_
#import <sys/ioctl.h>
/* 2 bit display parameters */
#define PIXPERXFER 16 /* pixel alignment of a transfer */
#define PPXMASK ((unsigned int)0x0000000f)
#define LONGSIZE 32 /* pixel width of saved rect */
#define NPPB 4 /* Pixels per byte */
#define VIDEO_W 1120 /* Visible pixels per scanline */
#define VIDEO_MW ((dma_chip == 313)? 1152 : 1120) /* Actual pixels per scanline */
#define VIDEO_H 832 /* Visible scanlines */
#define VIDEO_MH ((dma_chip == 313)? 910 : 936)
#define VIDEO_NBPL (VIDEO_MW >> 2)
#define WHITE 0x00000000
#define LT_GRAY 0x55555555
#define DK_GRAY 0xaaaaaaaa
#define BLACK 0xffffffff
#define RETRACE_START 0x00
#define RETRACE_LIMIT 0xea /* limit reg value to int @ retrace */
#define RETRACE_MAX 0xfc
#define CONTINUE_ANIM 0x12345678 /* continue animation (if any) */
#define STOP_ANIM 0x87654321
/*
* Size of video memory area to be mapped. The lower limit is the
* minimum size that can be transparently translated, which is 16 Mbytes
* on the 68030 and 68040.
*/
#define VID_MAPPED_SIZE 0x01000000
/* 16 bit color display parameters */
#define C16_VIDEO_1120x832_W 1120
#define C16_VIDEO_1120x832_MW ((dma_chip == 313)? 1152 : 1120)
#define C16_VIDEO_1120x832_H 832
#define C16_VIDEO_1120x832_MH ((dma_chip == 313)? 910 : 936)
#define C16_VIDEO_832x624_W 832
#define C16_VIDEO_832x624_MW 832
#define C16_VIDEO_832x624_H 624
#define C16_VIDEO_832x624_MH 1260
#define C16_VIDEO_NBPP 2 /* 2 bytes/pixel */
#define C16_VID_SIZE 0x00200000 /* 2 Mbytes of VRAM */
#define C16_VID_MAPPED_SIZE 0x01000000
#define C16_NPPW 2 /* 2 pixels per word. */
#define C16_WHITE 0xFFF0FFF0
#define C16_LT_GRAY 0xAAA0AAA0
#define C16_DK_GRAY 0x55505550
#define C16_BLACK 0
/* Bits for the write-only P_C16_CMD_REG register (Warp9C only). */
#define C16_CMD_CLRINTR 1
#define C16_CMD_INTRENA 2
#define C16_CMD_UNBLANK 4
#define C16_CMD_FASTWRITE 8
#define C16_CMD_DFLT C16_CMD_UNBLANK
#define DKIOCGADDR _IOWR('v', 0, int) /* get address of video mem */
#define DKIOCSMWF _IOWR('v', 1, struct mwf) /* set mwf bounds */
#define DKIOCBRIGHT _IOWR('v', 2, int) /* get/set brightness */
#define DKIOCDISABLE _IO('v', 3) /* disable translation */
#define DKIOCGNVRAM _IOR('v', 4, struct nvram_info) /* get NVRAM */
#define DKIOCSNVRAM _IOW('v', 4, struct nvram_info) /* set NVRAM */
#define DKIOCREGISTER _IO('v', 5) /* register screen */
#define DKIOCGFBINFO _IO('v', 6) /* Get info on built-in frame buffer */
#define DKIOCGALARM _IOR('v', 7, struct alarm) /* get RTC alarm */
#define DKIOCSALARM _IOW('v', 7, struct alarm) /* set RTC alarm */
#ifndef ASSEMBLER
struct alarm {
int alarm_enabled;
int alarm_time;
};
#if !defined(__Bounds__) && !defined(BINTREE_H)
#define __Bounds__
typedef struct { short minx, maxx, miny, maxy; } Bounds;
#endif
#if !defined(__Point__) && !defined(BINTREE_H)
#define __Point__
typedef struct { short x, y; } Point;
#endif
struct mp12Cursor {
unsigned int image[4][16];
unsigned int mask[4][16];
unsigned int save[16];
};
struct mp18Cursor {
unsigned char image[4][256];
unsigned char mask[4][256];
unsigned char save[256];
};
struct mp34Cursor {
unsigned short image[4][256];
unsigned short save[256];
};
struct mp38Cursor {
unsigned int image[4][256];
unsigned int save[256];
};
typedef struct {
int frame;
int cursorSema;
char cursorShow;
char cursorObscured;
char shieldFlag;
char shielded;
Bounds saveRect;
Bounds shieldRect;
Point cursorLoc;
Bounds cursorRect;
Bounds oldCursorRect;
Bounds screenBounds;
Point hotSpot[4];
union {
struct mp12Cursor bw;
struct mp18Cursor bw8;
struct mp34Cursor rgb;
struct mp38Cursor rgb24;
} cursor;
} vidShmemStruct;
#define VIDSETSEMA() if (msp->cursorSema) return 1; else msp->cursorSema = 1
#define VIDCLEARSEMA() msp->cursorSema = 0
#endif ASSEMBLER
#endif _M68K_DEV_VIDEO_PRIV_