mirror of https://github.com/mpv-player/mpv
155 lines
3.8 KiB
C
155 lines
3.8 KiB
C
|
/*
|
||
|
* 3dfx.h
|
||
|
*
|
||
|
* Copyright (C) Colin Cross Apr 2000
|
||
|
*
|
||
|
* mpeg2dec is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License as published by
|
||
|
* the Free Software Foundation; either version 2, or (at your option)
|
||
|
* any later version.
|
||
|
*
|
||
|
* mpeg2dec is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU General Public License
|
||
|
* along with GNU Make; see the file COPYING. If not, write to
|
||
|
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
|
||
|
#define VOODOO_IO_REG_OFFSET ((unsigned long int)0x0000000)
|
||
|
#define VOODOO_YUV_REG_OFFSET ((unsigned long int)0x0080100)
|
||
|
#define VOODOO_AGP_REG_OFFSET ((unsigned long int)0x0080000)
|
||
|
#define VOODOO_2D_REG_OFFSET ((unsigned long int)0x0100000)
|
||
|
#define VOODOO_YUV_PLANE_OFFSET ((unsigned long int)0x0C00000)
|
||
|
|
||
|
#define VOODOO_BLT_FORMAT_YUYV (8<<16)
|
||
|
#define VOODOO_BLT_FORMAT_16 (3<<16)
|
||
|
|
||
|
#define VOODOO_YUV_STRIDE (1024>>2)
|
||
|
|
||
|
struct voodoo_yuv_fb_t {
|
||
|
uint32_t Y[0x0040000];
|
||
|
uint32_t U[0x0040000];
|
||
|
uint32_t V[0x0040000];
|
||
|
};
|
||
|
|
||
|
struct voodoo_yuv_reg_t {
|
||
|
uint32_t yuvBaseAddr;
|
||
|
uint32_t yuvStride;
|
||
|
};
|
||
|
|
||
|
struct voodoo_2d_reg_t {
|
||
|
uint32_t status;
|
||
|
uint32_t intCtrl;
|
||
|
uint32_t clip0Min;
|
||
|
uint32_t clip0Max;
|
||
|
uint32_t dstBaseAddr;
|
||
|
uint32_t dstFormat;
|
||
|
uint32_t srcColorkeyMin;
|
||
|
uint32_t srcColorkeyMax;
|
||
|
uint32_t dstColorkeyMin;
|
||
|
uint32_t dstColorkeyMax;
|
||
|
signed long bresError0;
|
||
|
signed long bresError1;
|
||
|
uint32_t rop;
|
||
|
uint32_t srcBaseAddr;
|
||
|
uint32_t commandExtra;
|
||
|
uint32_t lineStipple;
|
||
|
uint32_t lineStyle;
|
||
|
uint32_t pattern0Alias;
|
||
|
uint32_t pattern1Alias;;
|
||
|
uint32_t clip1Min;
|
||
|
uint32_t clip1Max;
|
||
|
uint32_t srcFormat;
|
||
|
uint32_t srcSize;
|
||
|
uint32_t srcXY;
|
||
|
uint32_t colorBack;
|
||
|
uint32_t colorFore;
|
||
|
uint32_t dstSize;
|
||
|
uint32_t dstXY;
|
||
|
uint32_t command;
|
||
|
uint32_t RESERVED1;
|
||
|
uint32_t RESERVED2;
|
||
|
uint32_t RESERVED3;
|
||
|
uint8_t launchArea[128];
|
||
|
};
|
||
|
|
||
|
|
||
|
struct voodoo_io_reg_t {
|
||
|
uint32_t status;
|
||
|
uint32_t pciInit0;
|
||
|
uint32_t sipMonitor;
|
||
|
uint32_t lfbMemoryConfig;
|
||
|
uint32_t miscInit0;
|
||
|
uint32_t miscInit1;
|
||
|
uint32_t dramInit0;
|
||
|
uint32_t dramInit1;
|
||
|
uint32_t agpInit;
|
||
|
uint32_t tmuGbeInit;
|
||
|
uint32_t vgaInit0;
|
||
|
uint32_t vgaInit1;
|
||
|
uint32_t dramCommand;
|
||
|
uint32_t dramData;
|
||
|
uint32_t RESERVED1;
|
||
|
uint32_t RESERVED2;
|
||
|
|
||
|
uint32_t pllCtrl0;
|
||
|
uint32_t pllCtrl1;
|
||
|
uint32_t pllCtrl2;
|
||
|
uint32_t dacMode;
|
||
|
uint32_t dacAddr;
|
||
|
uint32_t dacData;
|
||
|
|
||
|
uint32_t rgbMaxDelta;
|
||
|
uint32_t vidProcCfg;
|
||
|
uint32_t hwCurPatAddr;
|
||
|
uint32_t hwCurLoc;
|
||
|
uint32_t hwCurC0;
|
||
|
uint32_t hwCurC1;
|
||
|
uint32_t vidInFormat;
|
||
|
uint32_t vidInStatus;
|
||
|
uint32_t vidSerialParallelPort;
|
||
|
uint32_t vidInXDecimDeltas;
|
||
|
uint32_t vidInDecimInitErrs;
|
||
|
uint32_t vidInYDecimDeltas;
|
||
|
uint32_t vidPixelBufThold;
|
||
|
uint32_t vidChromaMin;
|
||
|
uint32_t vidChromaMax;
|
||
|
uint32_t vidCurrentLine;
|
||
|
uint32_t vidScreenSize;
|
||
|
uint32_t vidOverlayStartCoords;
|
||
|
uint32_t vidOverlayEndScreenCoord;
|
||
|
uint32_t vidOverlayDudx;
|
||
|
uint32_t vidOverlayDudxOffsetSrcWidth;
|
||
|
uint32_t vidOverlayDvdy;
|
||
|
|
||
|
uint32_t vga_registers_not_mem_mapped[12];
|
||
|
uint32_t vidOverlayDvdyOffset;
|
||
|
uint32_t vidDesktopStartAddr;
|
||
|
uint32_t vidDesktopOverlayStride;
|
||
|
uint32_t vidInAddr0;
|
||
|
uint32_t vidInAddr1;
|
||
|
uint32_t vidInAddr2;
|
||
|
uint32_t vidInStride;
|
||
|
uint32_t vidCurrOverlayStartAddr;
|
||
|
};
|
||
|
|
||
|
|
||
|
struct pioData_t {
|
||
|
short port;
|
||
|
short size;
|
||
|
int device;
|
||
|
void *value;
|
||
|
};
|
||
|
|
||
|
typedef struct pioData_t pioData;
|
||
|
typedef struct voodoo_2d_reg_t voodoo_2d_reg;
|
||
|
typedef struct voodoo_io_reg_t voodoo_io_reg;
|
||
|
typedef struct voodoo_yuv_reg_t voodoo_yuv_reg;
|
||
|
typedef struct voodoo_yuv_fb_t voodoo_yuv_fb;
|
||
|
|