⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trident_tris.c

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 C
📖 第 1 页 / 共 3 页
字号:
/* * Copyright 2002 by Alan Hourihane, Sychdyn, North Wales, UK. * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of Alan Hourihane not be used in * advertising or publicity pertaining to distribution of the software without * specific, written prior permission.  Alan Hourihane makes no representations * about the suitability of this software for any purpose.  It is provided * "as is" without express or implied warranty. * * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. * * Authors:  Alan Hourihane, <alanh@fairlite.demon.co.uk> * * Trident CyberBladeXP driver. * */#include "trident_context.h"#include "trident_lock.h"#include "tnl/tnl.h"#include "tnl/t_context.h"#include "tnl/t_pipeline.h"#include "swrast/swrast.h"#include "swrast_setup/swrast_setup.h"static int first = 1;typedef struct reg {	int addr;	int data;} RegData;RegData initRegData[]={    {0x2804,  0x19980824},    {0x2F70,  0x46455858},    {0x2F74,    0x41584998},    {0x2F00,    0x00000000},    {0x2F04,    0x80000800},    {0x2F08,    0x00550200},    {0x2F40,    0x00000001},    {0x2F40,    0x00000001},    {0x2F44,    0x00830097},    {0x2F48,    0x0087009F},    {0x2F4C,    0x00BF0003},    {0x2F50,    0xF00B6C1B},    {0x2C04,    0x00000000},    {0x2D00,    0x00000080},    {0x2D00,    0x00000000},    {0x2DD4,    0x00100000},    {0x2DD4,    0x00100010},    {0x2DD8,    0x00100000},    {0x2DD8,    0x00100010},    {0x2C88,    0xFFFFFFFF},    {0x2C94 ,   0xFFFFFFFF},    {0x281C,    0x00008000},    {0x2C80,    0x00000000},    {0x2C80,    0x00000000},    {0x2C80 ,   0x00008000},    {0x2C00  ,  0x00000000},    {0x2C04  ,  0x00000000},    {0x2C08  ,  0x00000000},    {0x2C0C  ,  0x00000000},    {0x2C10  ,  0x00000000},    {0x2C14  ,  0x00000000},    {0x2C18  ,  0x00000000},    {0x2C1C  ,  0x00000000},    {0x2C20  ,  0x00000000},    {0x2C24  ,  0x00000000},    {0x2C2C  ,  0x00000000},    {0x2C30  ,  0x00000000},    {0x2C34  ,  0x00000000},    {0x2C38  ,  0x00000000},    {0x2C3C  ,  0x00000000},    {0x2C40  ,  0x00000000},    {0x2C44  ,  0x00000000},    {0x2C48  ,  0x00000000},    {0x2C4C  ,  0x00000000},    {0x2C50  ,  0x00000000},    {0x2C54  ,  0x00000000},    {0x2C58  ,  0x00000000},    {0x2C5C  ,  0x00000000},    {0x2C60  ,  0x00000000},    {0x2C64  ,  0x00000000},    {0x2C68  ,  0x00000000},    {0x2C6C  ,  0x00000000},    {0x2C70  ,  0x00000000},    {0x2C74  ,  0x00000000},    {0x2C78  ,  0x00000000},    {0x2C7C  ,  0x00000000},    {0x2C80  ,  0x00008000},    {0x2C84  ,  0x00000000},    {0x2C88  ,  0xFFFFFFFF},    {0x2C8C  ,  0x00000000},    {0x2C90  ,  0x00000000},    {0x2C94  ,  0xFFFFFFFF},    {0x2C98  ,  0x00000000},    {0x2C9C  ,  0x00000000},    {0x2CA0  ,  0x00000000},    {0x2CA4   , 0x00000000},    {0x2CA8   , 0x00000000},    {0x2CAC  ,  0x00000000},    {0x2CB0  ,  0x00000000},    {0x2CB4  ,  0x00000000},    {0x2CB8  ,  0x00000000},    {0x2CBC  ,  0x00000000},    {0x2CC0  ,  0x00000000},    {0x2CC4  ,  0x00000000},    {0x2CC8  ,  0x00000000},    {0x2CCC  ,  0x00000000},    {0x2CD0  ,  0x00000000},    {0x2CD4  ,  0x00000000},    {0x2CD8  ,  0x00000000},    {0x2CDC  ,  0x00000000},    {0x2CE0  ,  0x00000000},    {0x2CE4  ,  0x00000000},    {0x2CE8  ,  0x00000000},    {0x2CEC  ,  0x00000000},    {0x2CF0  ,  0x00000000},    {0x2CF4  ,  0x00000000},    {0x2CF8  ,  0x00000000},    {0x2CFC  ,  0x00000000},    {0x2D00  ,  0x00000000},    {0x2D04  ,  0x00000000},    {0x2D08  ,  0x00000000},    {0x2D0C  ,  0x00000000},    {0x2D10  ,  0x00000000},    {0x2D14  ,  0x00000000},    {0x2D18  ,  0x00000000},    {0x2D1C  ,  0x00000000},    {0x2D20  ,  0x00000000},    {0x2D24  ,  0x00000000},    {0x2D28  ,  0x00000000},    {0x2D2C  ,  0x00000000},    {0x2D30  ,  0x00000000},    {0x2D34  ,  0x00000000},    {0x2D38   , 0x00000000},    {0x2D3C   , 0x00000000},    {0x2D40   , 0x00000000},    {0x2D44   , 0x00000000},    {0x2D48   , 0x00000000},    {0x2D4C   , 0x00000000},    {0x2D50   , 0x00000000},    {0x2D54  ,  0x00000000},    {0x2D58  ,  0x00000000},    {0x2D5C  ,  0x00000000},    {0x2D60  ,  0x00000000},    {0x2D64  ,  0x00000000},    {0x2D68  ,  0x00000000},    {0x2D6C  ,  0x00000000},    {0x2D70   , 0x00000000},    {0x2D74   , 0x00000000},    {0x2D78   , 0x00000000},    {0x2D7C   , 0x00000000},    {0x2D80   , 0x00000000},    {0x2D84   , 0x00000000},    {0x2D88   , 0x00000000},    {0x2D8C   , 0x00000000},    {0x2D90   , 0x00000000},    {0x2D94   , 0x00000000},    {0x2D98   , 0x00000000},    {0x2D9C   , 0x00000000},    {0x2DA0   , 0x00000000},    {0x2DA4   , 0x00000000},    {0x2DA8   , 0x00000000},    {0x2DAC   , 0x00000000},    {0x2DB0   , 0x00000000},    {0x2DB4   , 0x00000000},    {0x2DB8   , 0x00000000},    {0x2DBC   , 0x00000000},    {0x2DC0   , 0x00000000},    {0x2DC4   , 0x00000000},    {0x2DC8   , 0x00000000},    {0x2DCC   , 0x00000000},    {0x2DD0   , 0x00000000},    {0x2DD4   , 0x00100010},    {0x2DD8   , 0x00100010},    {0x2DDC   , 0x00000000},    {0x2DE0   , 0x00000000},    {0x2DE4   , 0x00000000},    {0x2DE8   , 0x00000000},    {0x2DEC   , 0x00000000},    {0x2DF0   , 0x00000000},    {0x2DF4   , 0x00000000},    {0x2DF8   , 0x00000000},    {0x2DFC   , 0x00000000},    {0x2E00   , 0x00000000},    {0x2E04   , 0x00000000},    {0x2E08   , 0x00000000},    {0x2E0C   , 0x00000000},    {0x2E10   , 0x00000000},    {0x2E14   , 0x00000000},    {0x2E18   , 0x00000000},    {0x2E1C   , 0x00000000},    {0x2E20   , 0x00000000},    {0x2E24   , 0x00000000},    {0x2E28   , 0x00000000},    {0x2E2C   , 0x00000000},    {0x2E30   , 0x00000000},    {0x2E34   , 0x00000000},    {0x2E38   , 0x00000000},    {0x2E3C   , 0x00000000},    {0x2E40   , 0x00000000},    {0x2E44   , 0x00000000},    {0x2E48   , 0x00000000},    {0x2E4C   , 0x00000000},    {0x2E50   , 0x00000000},    {0x2E54   , 0x00000000},    {0x2E58   , 0x00000000},    {0x2E5C   , 0x00000000},    {0x2E60   , 0x00000000},    {0x2E64   , 0x00000000},    {0x2E68   , 0x00000000},    {0x2E6C   , 0x00000000},    {0x2E70   , 0x00000000},    {0x2E74   , 0x00000000},    {0x2E78   , 0x00000000},    {0x2E7C   , 0x00000000},    {0x2E80   , 0x00000000},    {0x2E84   , 0x00000000},    {0x2E88   , 0x00000000},    {0x2E8C   , 0x00000000},    {0x2E90   , 0x00000000},    {0x2E94   , 0x00000000},    {0x2E98   , 0x00000000},    {0x2E9C   , 0x00000000},    {0x2EA0   , 0x00000000},    {0x2EA4   , 0x00000000},    {0x2EA8   , 0x00000000},    {0x2EAC   , 0x00000000},    {0x2EB0   , 0x00000000},    {0x2EB4   , 0x00000000},    {0x2EB8   , 0x00000000},    {0x2EBC   , 0x00000000},    {0x2EC0   , 0x00000000},    {0x2EC4   , 0x00000000},    {0x2EC8   , 0x00000000},    {0x2ECC   , 0x00000000},    {0x2ED0   , 0x00000000},    {0x2ED4   , 0x00000000},    {0x2ED8   , 0x00000000},    {0x2EDC   , 0x00000000},    {0x2EE0   , 0x00000000},    {0x2EE4    ,0x00000000},    {0x2EE8    ,0x00000000},    {0x2EEC   , 0x00000000},    {0x2EF0   , 0x00000000},    {0x2EF4   , 0x00000000},    {0x2EF8   , 0x00000000},    {0x2EFC   , 0x00000000},    /*{0x2F60   , 0x00000000},*/};int initRegDataNum=sizeof(initRegData)/sizeof(RegData);typedef union {    unsigned int i;    float        f;} dmaBufRec, *dmaBuf;void Init3D( tridentContextPtr tmesa ){   unsigned char *MMIO = tmesa->tridentScreen->mmio.map;    int i;    for(i=0;i<initRegDataNum;++i)       MMIO_OUT32(MMIO, initRegData[i].addr, initRegData[i].data);}int DrawTriangle( tridentContextPtr tmesa){   unsigned char *MMIO = tmesa->tridentScreen->mmio.map;   dmaBufRec clr;printf("DRAW TRI\n");	Init3D(tmesa);printf("ENGINE STATUS 0x%x\n",MMIO_IN32(MMIO, 0x2800));    MMIO_OUT32(MMIO,  0x002800, 0x00000000 );#if 0    MMIO_OUT32(MMIO,  0x002368 , MMIO_IN32(MMIO,0x002368)|1 );#endif    MMIO_OUT32(MMIO, 0x002C00 , 0x00000014 );#if 0    MMIO_OUT32(MMIO, 0x002C04 , 0x0A8004C0 );#else    MMIO_OUT32(MMIO, 0x002C04 , 0x0A8000C0 );#endif#if 0    MMIO_OUT32(MMIO, 0x002C08 , 0x00000000 );    MMIO_OUT32(MMIO, 0x002C0C , 0xFFCCCCCC );    MMIO_OUT32(MMIO, 0x002C10 , 0x3F800000 );    MMIO_OUT32(MMIO, 0x002C14 , 0x3D0D3DCB );    MMIO_OUT32(MMIO, 0x002C2C , 0x70000000 );    MMIO_OUT32(MMIO, 0x002C24 , 0x00202C00 );    MMIO_OUT32(MMIO, 0x002C28 , 0xE0002500 );    MMIO_OUT32(MMIO, 0x002C30 , 0x00000000 );    MMIO_OUT32(MMIO, 0x002C34 , 0xE0000000 );    MMIO_OUT32(MMIO, 0x002C38 , 0x00000000 );#endif    MMIO_OUT32(MMIO, 0x002C50 , 0x00000000 );    MMIO_OUT32(MMIO, 0x002C54 , 0x0C320C80 );        MMIO_OUT32(MMIO, 0x002C50 , 0x00000000 );    MMIO_OUT32(MMIO, 0x002C54 , 0x0C320C80 );        MMIO_OUT32(MMIO, 0x002C80 , 0x20008258 );        MMIO_OUT32(MMIO, 0x002C84 , 0x20000320 );        MMIO_OUT32(MMIO, 0x002C94 , 0xFFFFFFFF );#if 0    MMIO_OUT32(MMIO, 0x002D00 , 0x00009009 );        MMIO_OUT32(MMIO, 0x002D38 , 0x00000000 );    MMIO_OUT32(MMIO, 0x002D94 , 0x20002000 );    MMIO_OUT32(MMIO, 0x002D50 , 0xf0000000 );    MMIO_OUT32(MMIO, 0x002D80 , 0x24002000 );            MMIO_OUT32(MMIO, 0x002D98 , 0x81000000 );            MMIO_OUT32(MMIO, 0x002DB0 , 0x81000000 );            MMIO_OUT32(MMIO, 0x002DC8 , 0x808000FF );    MMIO_OUT32(MMIO, 0x002DD4 , 0x02000200 );    MMIO_OUT32(MMIO, 0x002DD8 , 0x02000200 );    MMIO_OUT32(MMIO, 0x002D30 , 0x02092400 );        MMIO_OUT32(MMIO, 0x002D04 , 0x00102120 );        MMIO_OUT32(MMIO, 0x002D08 , 0xFFFFFFFF );    MMIO_OUT32(MMIO, 0x002D0C , 0xF00010D0 );        MMIO_OUT32(MMIO, 0x002D10 , 0xC0000400 );#endif    MMIO_OUT32(MMIO, 0x002814,  0x00000000 );#if 0    MMIO_OUT32(MMIO, 0x002818 , 0x00036C20 );        #else    MMIO_OUT32(MMIO, 0x002818 , 0x00036020 );        #endif    MMIO_OUT32(MMIO, 0x00281C , 0x00098081 );	printf("first TRI\n");    clr.f = 5.0;    MMIO_OUT32(MMIO, 0x002820 , clr.i );                   clr.f = 595.0;    MMIO_OUT32(MMIO, 0x002824 , clr.i );                   clr.f = 1.0;    MMIO_OUT32(MMIO, 0x002828 , clr.i );    MMIO_OUT32(MMIO, 0x00282C , 0x00FF00 );        #if 0    clr.f = 0.0;    MMIO_OUT32(MMIO, 0x002830 , clr.i );    clr.f = 1.0;    MMIO_OUT32(MMIO, 0x002834 , clr.i );#endif    clr.f = 5.0;    MMIO_OUT32(MMIO, 0x002820 , clr.i );                   clr.f = 5.0;    MMIO_OUT32(MMIO, 0x002824 , clr.i );                   clr.f = 1.0;    MMIO_OUT32(MMIO, 0x002828 , clr.i );    MMIO_OUT32(MMIO, 0x00282C , 0xFF0000 );        #if 0    clr.f = 0.0;    MMIO_OUT32(MMIO, 0x002830 , clr.i );    clr.f = 0.0;    MMIO_OUT32(MMIO, 0x002834 , clr.i );#endif    clr.f = 395.0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -