mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 02:10:11 +01:00
Get trident building and -Werror clean.
- Added Makefile - Deleted references to old headers - Added prototypes all over the place - Lots of type updates (drmHandle -> drm_handle_t etc.) - Added __driCreateNewScreen(), deleted __driCreateScreen() - Fixed context creation to match other drivers - Fixed various bitfield names - Bumped driver date Still nowhere close to usable, the DDX isn't DRI-aware and there's no DRM.
This commit is contained in:
parent
1c86c7ad9c
commit
46a35b2284
9 changed files with 211 additions and 85 deletions
36
src/mesa/drivers/dri/trident/Makefile
Normal file
36
src/mesa/drivers/dri/trident/Makefile
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# src/mesa/drivers/dri/trident/Makefile
|
||||
|
||||
TOP = ../../../../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
LIBNAME = trident_dri.so
|
||||
|
||||
# Not yet
|
||||
# MINIGLX_SOURCES = server/trident_dri.c
|
||||
|
||||
COMMON_SOURCES = \
|
||||
../../common/driverfuncs.c \
|
||||
../common/mm.c \
|
||||
../common/utils.c \
|
||||
../common/texmem.c \
|
||||
../common/vblank.c \
|
||||
../common/xmlconfig.c \
|
||||
../common/dri_util.c \
|
||||
../common/glcontextmodes.c
|
||||
|
||||
DRIVER_SOURCES = \
|
||||
trident_context.c \
|
||||
trident_state.c \
|
||||
trident_vb.c \
|
||||
trident_dd.c \
|
||||
trident_tris.c
|
||||
|
||||
C_SOURCES = \
|
||||
$(COMMON_SOURCES) \
|
||||
$(DRIVER_SOURCES)
|
||||
|
||||
ASM_SOURCES =
|
||||
|
||||
include ../Makefile.template
|
||||
|
||||
symlinks:
|
||||
|
|
@ -37,17 +37,18 @@
|
|||
|
||||
#include "context.h"
|
||||
#include "simple_list.h"
|
||||
#include "mem.h"
|
||||
#include "matrix.h"
|
||||
#include "extensions.h"
|
||||
#if defined(USE_X86_ASM)
|
||||
#include "X86/common_x86_asm.h"
|
||||
#endif
|
||||
#include "simple_list.h"
|
||||
#include "mem.h"
|
||||
#include "mm.h"
|
||||
|
||||
static const struct gl_pipeline_stage *trident_pipeline[] = {
|
||||
#include "drivers/common/driverfuncs.h"
|
||||
#include "dri_util.h"
|
||||
|
||||
static const struct tnl_pipeline_stage *trident_pipeline[] = {
|
||||
&_tnl_vertex_transform_stage,
|
||||
&_tnl_normal_transform_stage,
|
||||
&_tnl_lighting_stage,
|
||||
|
|
@ -58,7 +59,7 @@ static const struct gl_pipeline_stage *trident_pipeline[] = {
|
|||
};
|
||||
|
||||
|
||||
GLboolean tridentCreateContext( Display *dpy, const __GLcontextModes *glVisual,
|
||||
GLboolean tridentCreateContext( const __GLcontextModes *glVisual,
|
||||
__DRIcontextPrivate *driContextPriv,
|
||||
void *sharedContextPrivate)
|
||||
{
|
||||
|
|
@ -66,6 +67,7 @@ GLboolean tridentCreateContext( Display *dpy, const __GLcontextModes *glVisual,
|
|||
__DRIscreenPrivate *sPriv = driContextPriv->driScreenPriv;
|
||||
tridentContextPtr tmesa;
|
||||
tridentScreenPtr tridentscrn;
|
||||
struct dd_function_table functions;
|
||||
#if 0
|
||||
drm_trident_sarea_t *saPriv=(drm_trident_sarea_t *)(((char*)sPriv->pSAREA)+
|
||||
sizeof(XF86DRISAREARec));
|
||||
|
|
@ -80,20 +82,22 @@ GLboolean tridentCreateContext( Display *dpy, const __GLcontextModes *glVisual,
|
|||
else
|
||||
shareCtx = NULL;
|
||||
|
||||
tmesa->glCtx = _mesa_create_context(glVisual, shareCtx, tmesa, GL_TRUE);
|
||||
_mesa_init_driver_functions(&functions);
|
||||
|
||||
tmesa->glCtx =
|
||||
_mesa_create_context(glVisual, shareCtx, &functions, (void *)tmesa);
|
||||
|
||||
if (!tmesa->glCtx) {
|
||||
FREE(tmesa);
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
tmesa->display = dpy;
|
||||
|
||||
tmesa->driContext = driContextPriv;
|
||||
tmesa->driScreen = sPriv;
|
||||
tmesa->driDrawable = NULL; /* Set by XMesaMakeCurrent */
|
||||
|
||||
tmesa->hHWContext = driContextPriv->hHWContext;
|
||||
tmesa->driHwLock = &sPriv->pSAREA->lock;
|
||||
tmesa->driHwLock = (drmLock *)&sPriv->pSAREA->lock;
|
||||
tmesa->driFd = sPriv->fd;
|
||||
#if 0
|
||||
tmesa->sarea = saPriv;
|
||||
|
|
@ -159,11 +163,11 @@ GLboolean tridentCreateContext( Display *dpy, const __GLcontextModes *glVisual,
|
|||
tridentDDInitTriFuncs( ctx );
|
||||
tridentDDInitState( tmesa );
|
||||
|
||||
driContextPriv->driverPrivate = (void *)tmesa;
|
||||
driContextPriv->driverPrivate = (void *)tmesa;
|
||||
|
||||
UNLOCK_HARDWARE(tmesa);
|
||||
|
||||
return GL_TRUE;
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -181,15 +185,14 @@ tridentDestroyContext(__DRIcontextPrivate *driContextPriv)
|
|||
tmesa->glCtx->DriverCtx = NULL;
|
||||
_mesa_destroy_context(tmesa->glCtx);
|
||||
|
||||
Xfree(tmesa);
|
||||
_mesa_free(tmesa);
|
||||
driContextPriv->driverPrivate = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static GLboolean
|
||||
tridentCreateBuffer( Display *dpy,
|
||||
__DRIscreenPrivate *driScrnPriv,
|
||||
tridentCreateBuffer( __DRIscreenPrivate *driScrnPriv,
|
||||
__DRIdrawablePrivate *driDrawPriv,
|
||||
const __GLcontextModes *mesaVis,
|
||||
GLboolean isPixmap )
|
||||
|
|
@ -217,10 +220,9 @@ tridentDestroyBuffer(__DRIdrawablePrivate *driDrawPriv)
|
|||
}
|
||||
|
||||
static void
|
||||
tridentSwapBuffers(Display *dpy, void *drawablePrivate)
|
||||
tridentSwapBuffers(__DRIdrawablePrivate *drawablePrivate)
|
||||
{
|
||||
__DRIdrawablePrivate *dPriv = (__DRIdrawablePrivate *) drawablePrivate;
|
||||
(void) dpy;
|
||||
|
||||
if (dPriv->driContextPriv && dPriv->driContextPriv->driverPrivate) {
|
||||
tridentContextPtr tmesa;
|
||||
|
|
@ -228,7 +230,7 @@ tridentSwapBuffers(Display *dpy, void *drawablePrivate)
|
|||
tmesa = (tridentContextPtr) dPriv->driContextPriv->driverPrivate;
|
||||
ctx = tmesa->glCtx;
|
||||
if (ctx->Visual.doubleBufferMode) {
|
||||
_mesa_swapbuffers( ctx ); /* flush pending rendering comands */
|
||||
_mesa_notifySwapBuffers( ctx ); /* flush pending rendering comands */
|
||||
tridentCopyBuffer( dPriv );
|
||||
}
|
||||
}
|
||||
|
|
@ -284,24 +286,11 @@ tridentUnbindContext( __DRIcontextPrivate *driContextPriv )
|
|||
return GL_TRUE;
|
||||
}
|
||||
|
||||
static GLboolean
|
||||
tridentOpenFullScreen(__DRIcontextPrivate *driContextPriv)
|
||||
{
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
static GLboolean
|
||||
tridentCloseFullScreen(__DRIcontextPrivate *driContextPriv)
|
||||
{
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
tridentScreenPtr tridentCreateScreen( __DRIscreenPrivate *sPriv )
|
||||
{
|
||||
TRIDENTDRIPtr tDRIPriv = (TRIDENTDRIPtr)sPriv->pDevPriv;
|
||||
tridentScreenPtr tridentScreen;
|
||||
int i;
|
||||
|
||||
#if 0
|
||||
/* Check the DRI version */
|
||||
|
|
@ -360,7 +349,7 @@ printf("offset 0x%x 0x%x\n",tridentScreen->backOffset,tridentScreen->depthOffset
|
|||
FREE(tridentScreen);
|
||||
return GL_FALSE;
|
||||
}
|
||||
printf("MAPPED at 0x%x\n",tridentScreen->mmio.map);
|
||||
printf("MAPPED at %p\n", tridentScreen->mmio.map);
|
||||
|
||||
return tridentScreen;
|
||||
}
|
||||
|
|
@ -396,23 +385,49 @@ static struct __DriverAPIRec tridentAPI = {
|
|||
tridentSwapBuffers,
|
||||
tridentMakeCurrent,
|
||||
tridentUnbindContext,
|
||||
tridentOpenFullScreen,
|
||||
tridentCloseFullScreen
|
||||
};
|
||||
|
||||
/*
|
||||
* This is the bootstrap function for the driver.
|
||||
* The __driCreateScreen name is the symbol that libGL.so fetches.
|
||||
* Return: pointer to a __DRIscreenPrivate.
|
||||
*/
|
||||
void *__driCreateScreen(Display *dpy, int scrn, __DRIscreen *psc,
|
||||
int numConfigs, __GLXvisualConfig *config)
|
||||
#ifndef USE_NEW_INTERFACE
|
||||
#error trident_dri.so is new-interface only.
|
||||
#else
|
||||
|
||||
static PFNGLXCREATECONTEXTMODES create_context_modes = NULL;
|
||||
|
||||
PUBLIC void *__driCreateNewScreen( __DRInativeDisplay *dpy, int scrn,
|
||||
__DRIscreen *psc,
|
||||
const __GLcontextModes * modes,
|
||||
const __DRIversion * ddx_version,
|
||||
const __DRIversion * dri_version,
|
||||
const __DRIversion * drm_version,
|
||||
const __DRIframebuffer * frame_buffer,
|
||||
drmAddress pSAREA, int fd,
|
||||
int internal_api_version,
|
||||
__GLcontextModes ** driver_modes )
|
||||
{
|
||||
__DRIscreenPrivate *psp;
|
||||
psp = __driUtilCreateScreen(dpy, scrn, psc, numConfigs, config, &tridentAPI);
|
||||
return (void *) psp;
|
||||
__DRIscreenPrivate *psp;
|
||||
/* XXX version checks */
|
||||
|
||||
psp = __driUtilCreateNewScreen(dpy, scrn, psc, NULL,
|
||||
ddx_version, dri_version, drm_version,
|
||||
frame_buffer, pSAREA, fd,
|
||||
internal_api_version, &tridentAPI);
|
||||
|
||||
if ( psp != NULL ) {
|
||||
create_context_modes = (PFNGLXCREATECONTEXTMODES)
|
||||
glXGetProcAddress( (const GLubyte *) "__glXCreateContextModes" );
|
||||
#if 0
|
||||
if ( create_context_modes != NULL ) {
|
||||
TRIDENTDRIPtr dri_priv = (TRIDENTDRIPtr) psp->pDevPriv;
|
||||
*driver_modes = tridentFillInModes( dri_priv->bytesPerPixel * 8,
|
||||
GL_TRUE );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return (void *) psp;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void __driRegisterExtensions(void)
|
||||
{
|
||||
/* No extensions */
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
#ifndef _TRIDENT_CONTEXT_H_
|
||||
#define _TRIDENT_CONTEXT_H_
|
||||
|
||||
#include "compiler.h"
|
||||
#include "dri_util.h"
|
||||
#include "macros.h"
|
||||
#include "mtypes.h"
|
||||
|
|
@ -54,6 +53,23 @@
|
|||
#include "tnl_dd/t_dd_vertex.h"
|
||||
#undef TAG
|
||||
|
||||
/* these require that base be dword-aligned */
|
||||
static inline void MMIO_OUT32(unsigned char *base, unsigned int offset,
|
||||
unsigned int val)
|
||||
{
|
||||
unsigned int *addr = (unsigned int *)(base + offset);
|
||||
*addr = val;
|
||||
}
|
||||
|
||||
static inline unsigned int MMIO_IN32(unsigned char *base, unsigned int offset)
|
||||
{
|
||||
unsigned int *addr = (unsigned int *)(base + offset);
|
||||
return *addr;
|
||||
}
|
||||
|
||||
#define MMIO_OUT8(base, offset, val) *((base) + (offset)) = (val)
|
||||
#define MMIO_IN8(base, offset) *((base) + (offset))
|
||||
|
||||
struct trident_context;
|
||||
typedef struct trident_context tridentContextRec;
|
||||
typedef struct trident_context *tridentContextPtr;
|
||||
|
|
@ -74,7 +90,7 @@ typedef void (*trident_point_func)( tridentContextPtr,
|
|||
const tridentVertex * );
|
||||
|
||||
typedef struct {
|
||||
drmHandle handle; /* Handle to the DRM region */
|
||||
drm_handle_t handle; /* Handle to the DRM region */
|
||||
drmSize size; /* Size of the DRM region */
|
||||
unsigned char *map; /* Mapping of the DRM region */
|
||||
} tridentRegionRec, *tridentRegionPtr;
|
||||
|
|
@ -123,11 +139,9 @@ struct trident_context {
|
|||
|
||||
/* Mirrors of some DRI state
|
||||
*/
|
||||
Display *display; /* X server display */
|
||||
|
||||
int lastStamp; /* mirror driDrawable->lastStamp */
|
||||
|
||||
drmContext hHWContext;
|
||||
drm_context_t hHWContext;
|
||||
drmLock *driHwLock;
|
||||
int driFd;
|
||||
|
||||
|
|
@ -141,10 +155,10 @@ struct trident_context {
|
|||
GLint readOffset, readPitch;
|
||||
|
||||
GLuint numClipRects; /* Cliprects for the draw buffer */
|
||||
XF86DRIClipRectPtr pClipRects;
|
||||
drm_clip_rect_t *pClipRects;
|
||||
|
||||
GLint scissor;
|
||||
XF86DRIClipRectRec ScissorRect; /* Current software scissor */
|
||||
drm_clip_rect_t ScissorRect; /* Current software scissor */
|
||||
|
||||
GLuint Fallback;
|
||||
GLuint RenderIndex;
|
||||
|
|
@ -199,10 +213,19 @@ void tridentInitHW( tridentContextPtr tmesa );
|
|||
void tridentDDInitStateFuncs( GLcontext *ctx );
|
||||
void tridentDDInitTextureFuncs( GLcontext *ctx );
|
||||
void tridentDDInitTriFuncs( GLcontext *ctx );
|
||||
|
||||
extern void tridentBuildVertices( GLcontext *ctx,
|
||||
GLuint start,
|
||||
GLuint count,
|
||||
GLuint newinputs );
|
||||
extern void tridentInitVB( GLcontext *ctx );
|
||||
extern void tridentCopyBuffer( const __DRIdrawablePrivate *dPriv );
|
||||
extern void tridentFallback( tridentContextPtr tmesa, GLuint bit,
|
||||
GLboolean mode );
|
||||
extern void tridentCheckTexSizes( GLcontext *ctx );
|
||||
extern void tridentChooseVertexState( GLcontext *ctx );
|
||||
extern void tridentDDUpdateHWState( GLcontext *ctx );
|
||||
extern void tridentUploadHwStateLocked( tridentContextPtr tmesa );
|
||||
|
||||
#define TRIDENT_CONTEXT(ctx) ((tridentContextPtr)(ctx->DriverCtx))
|
||||
|
||||
|
|
|
|||
|
|
@ -33,8 +33,7 @@
|
|||
#include "swrast/swrast.h"
|
||||
#include "context.h"
|
||||
|
||||
#define TRIDENT_DATE "20020318"
|
||||
|
||||
#define TRIDENT_DATE "20041223"
|
||||
|
||||
/* Return the width and height of the current color buffer.
|
||||
*/
|
||||
|
|
|
|||
28
src/mesa/drivers/dri/trident/trident_dri.h
Normal file
28
src/mesa/drivers/dri/trident/trident_dri.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#ifndef _TRIDENT_DRI_
|
||||
#define _TRIDENT_DRI_
|
||||
|
||||
#include "xf86drm.h"
|
||||
|
||||
typedef struct {
|
||||
drm_handle_t regs;
|
||||
drmSize regsSize;
|
||||
drmAddress regsMap;
|
||||
int deviceID;
|
||||
int width;
|
||||
int height;
|
||||
int mem;
|
||||
int frontOffset;
|
||||
int frontPitch;
|
||||
int backOffset;
|
||||
int backPitch;
|
||||
int depthOffset;
|
||||
int depthPitch;
|
||||
int cpp;
|
||||
#if 0
|
||||
int textureOffset;
|
||||
int textureSize;
|
||||
#endif
|
||||
unsigned int sarea_priv_offset;
|
||||
} TRIDENTDRIRec, *TRIDENTDRIPtr;
|
||||
|
||||
#endif
|
||||
11
src/mesa/drivers/dri/trident/trident_lock.h
Normal file
11
src/mesa/drivers/dri/trident/trident_lock.h
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
/* XXX tridentGetLock doesn't exist... */
|
||||
|
||||
#define LOCK_HARDWARE(tmesa) \
|
||||
do { \
|
||||
char __ret = 0; \
|
||||
DRM_CAS(tmesa->driHwLock, tmesa->hHWContext, \
|
||||
DRM_LOCK_HELD | tmesa->hHWContext, __ret); \
|
||||
} while (0)
|
||||
|
||||
#define UNLOCK_HARDWARE(tmesa) \
|
||||
DRM_UNLOCK(tmesa->driFd, tmesa->driHwLock, tmesa->hHWContext)
|
||||
|
|
@ -26,7 +26,10 @@
|
|||
*/
|
||||
#include "trident_context.h"
|
||||
#include "trident_lock.h"
|
||||
#include "array_cache/acache.h"
|
||||
#include "swrast/swrast.h"
|
||||
#include "swrast_setup/swrast_setup.h"
|
||||
#include "tnl/tnl.h"
|
||||
|
||||
#define TRIDENTPACKCOLOR332(r, g, b) \
|
||||
(((r) & 0xe0) | (((g) & 0xe0) >> 3) | (((b) & 0xc0) >> 6))
|
||||
|
|
@ -90,9 +93,9 @@ void tridentCopyBuffer( const __DRIdrawablePrivate *dPriv )
|
|||
{
|
||||
unsigned char *MMIO;
|
||||
tridentContextPtr tmesa;
|
||||
GLint nbox, i, ret;
|
||||
GLint nbox, i;
|
||||
int busy;
|
||||
XF86DRIClipRectPtr pbox;
|
||||
drm_clip_rect_t *pbox;
|
||||
|
||||
assert(dPriv);
|
||||
assert(dPriv->driContextPriv);
|
||||
|
|
@ -110,7 +113,7 @@ void tridentCopyBuffer( const __DRIdrawablePrivate *dPriv )
|
|||
for ( i = 0 ; i < nbox ; i++ ) {
|
||||
#if 0
|
||||
GLint nr = MIN2( i + MACH64_NR_SAREA_CLIPRECTS , nbox );
|
||||
XF86DRIClipRectPtr b = tmesa->sarea->boxes;
|
||||
drm_clip_rect_t *b = tmesa->sarea->boxes;
|
||||
GLint n = 0;
|
||||
|
||||
for ( ; i < nr ; i++ ) {
|
||||
|
|
@ -151,11 +154,9 @@ static void tridentDDClear( GLcontext *ctx, GLbitfield mask, GLboolean all,
|
|||
{
|
||||
tridentContextPtr tmesa = TRIDENT_CONTEXT(ctx);
|
||||
unsigned char *MMIO = tmesa->tridentScreen->mmio.map;
|
||||
__DRIdrawablePrivate *dPriv = tmesa->driDrawable;
|
||||
int busy;
|
||||
GLuint flags = 0;
|
||||
GLint i;
|
||||
GLint ret;
|
||||
|
||||
#define DRM_TRIDENT_FRONT 0x01
|
||||
#define DRM_TRIDENT_BACK 0x02
|
||||
|
|
@ -195,8 +196,8 @@ static void tridentDDClear( GLcontext *ctx, GLbitfield mask, GLboolean all,
|
|||
for ( i = 0 ; i < tmesa->numClipRects ; i++ ) {
|
||||
#if 0
|
||||
int nr = MIN2( i + TRIDENT_NR_SAREA_CLIPRECTS, tmesa->numClipRects );
|
||||
XF86DRIClipRectPtr box = tmesa->pClipRects;
|
||||
XF86DRIClipRectPtr b = tmesa->sarea->boxes;
|
||||
drm_clip_rect_t *box = tmesa->pClipRects;
|
||||
drm_clip_rect_t *b = tmesa->sarea->boxes;
|
||||
GLint n = 0;
|
||||
|
||||
if ( !all ) {
|
||||
|
|
@ -363,12 +364,12 @@ void tridentSetCliprects( tridentContextPtr tmesa, GLenum mode )
|
|||
switch ( mode ) {
|
||||
case GL_FRONT_LEFT:
|
||||
if (dPriv->numClipRects == 0) {
|
||||
static XF86DRIClipRectRec zeroareacliprect = {0,0,0,0};
|
||||
static drm_clip_rect_t zeroareacliprect = {0,0,0,0};
|
||||
tmesa->numClipRects = 1;
|
||||
tmesa->pClipRects = &zeroareacliprect;
|
||||
} else {
|
||||
tmesa->numClipRects = dPriv->numClipRects;
|
||||
tmesa->pClipRects = (XF86DRIClipRectPtr)dPriv->pClipRects;
|
||||
tmesa->pClipRects = (drm_clip_rect_t *)dPriv->pClipRects;
|
||||
}
|
||||
tmesa->drawX = dPriv->x;
|
||||
tmesa->drawY = dPriv->y;
|
||||
|
|
@ -376,19 +377,19 @@ void tridentSetCliprects( tridentContextPtr tmesa, GLenum mode )
|
|||
case GL_BACK_LEFT:
|
||||
if ( dPriv->numBackClipRects == 0 ) {
|
||||
if (dPriv->numClipRects == 0) {
|
||||
static XF86DRIClipRectRec zeroareacliprect = {0,0,0,0};
|
||||
static drm_clip_rect_t zeroareacliprect = {0,0,0,0};
|
||||
tmesa->numClipRects = 1;
|
||||
tmesa->pClipRects = &zeroareacliprect;
|
||||
} else {
|
||||
tmesa->numClipRects = dPriv->numClipRects;
|
||||
tmesa->pClipRects = (XF86DRIClipRectPtr)dPriv->pClipRects;
|
||||
tmesa->pClipRects = (drm_clip_rect_t *)dPriv->pClipRects;
|
||||
tmesa->drawX = dPriv->x;
|
||||
tmesa->drawY = dPriv->y;
|
||||
}
|
||||
}
|
||||
else {
|
||||
tmesa->numClipRects = dPriv->numBackClipRects;
|
||||
tmesa->pClipRects = (XF86DRIClipRectPtr)dPriv->pBackClipRects;
|
||||
tmesa->pClipRects = (drm_clip_rect_t *)dPriv->pBackClipRects;
|
||||
tmesa->drawX = dPriv->backX;
|
||||
tmesa->drawY = dPriv->backY;
|
||||
}
|
||||
|
|
@ -402,6 +403,7 @@ void tridentSetCliprects( tridentContextPtr tmesa, GLenum mode )
|
|||
#endif
|
||||
}
|
||||
|
||||
#if 0
|
||||
static GLboolean tridentDDSetDrawBuffer( GLcontext *ctx, GLenum mode )
|
||||
{
|
||||
tridentContextPtr tmesa = TRIDENT_CONTEXT(ctx);
|
||||
|
|
@ -450,7 +452,7 @@ static void tridentDDClearColor( GLcontext *ctx,
|
|||
color[0], color[1],
|
||||
color[2], color[3] );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void tridentDDUpdateState( GLcontext *ctx, GLuint new_state )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include "tnl/t_context.h"
|
||||
#include "tnl/t_pipeline.h"
|
||||
#include "swrast/swrast.h"
|
||||
#include "swrast_setup/swrast_setup.h"
|
||||
|
||||
static int first = 1;
|
||||
|
||||
|
|
@ -277,7 +278,7 @@ void Init3D( tridentContextPtr tmesa )
|
|||
|
||||
int DrawTriangle( tridentContextPtr tmesa)
|
||||
{
|
||||
volatile unsigned char *MMIO = tmesa->tridentScreen->mmio.map;
|
||||
unsigned char *MMIO = tmesa->tridentScreen->mmio.map;
|
||||
dmaBufRec clr;
|
||||
|
||||
printf("DRAW TRI\n");
|
||||
|
|
@ -416,6 +417,7 @@ static INLINE void trident_draw_point(tridentContextPtr tmesa,
|
|||
const tridentVertex *v0 )
|
||||
{
|
||||
unsigned char *MMIO = tmesa->tridentScreen->mmio.map;
|
||||
(void) MMIO;
|
||||
}
|
||||
|
||||
static INLINE void trident_draw_line( tridentContextPtr tmesa,
|
||||
|
|
@ -423,6 +425,7 @@ static INLINE void trident_draw_line( tridentContextPtr tmesa,
|
|||
const tridentVertex *v1 )
|
||||
{
|
||||
unsigned char *MMIO = tmesa->tridentScreen->mmio.map;
|
||||
(void) MMIO;
|
||||
}
|
||||
|
||||
static INLINE void trident_draw_triangle( tridentContextPtr tmesa,
|
||||
|
|
@ -547,6 +550,7 @@ if (vertsize == 4) {
|
|||
* primitives are being drawn, and only for the unaccelerated
|
||||
* primitives.
|
||||
*/
|
||||
#if 0
|
||||
static void
|
||||
trident_fallback_quad( tridentContextPtr tmesa,
|
||||
const tridentVertex *v0,
|
||||
|
|
@ -562,6 +566,11 @@ trident_fallback_quad( tridentContextPtr tmesa,
|
|||
trident_translate_vertex( ctx, v3, &v[3] );
|
||||
_swrast_Quad( ctx, &v[0], &v[1], &v[2], &v[3] );
|
||||
}
|
||||
#endif
|
||||
|
||||
/* XXX hack to get the prototype defined in time... */
|
||||
void trident_translate_vertex(GLcontext *ctx, const tridentVertex *src,
|
||||
SWvertex *dst);
|
||||
|
||||
static void
|
||||
trident_fallback_tri( tridentContextPtr tmesa,
|
||||
|
|
@ -649,10 +658,10 @@ do { \
|
|||
|
||||
|
||||
static struct {
|
||||
points_func points;
|
||||
line_func line;
|
||||
triangle_func triangle;
|
||||
quad_func quad;
|
||||
tnl_points_func points;
|
||||
tnl_line_func line;
|
||||
tnl_triangle_func triangle;
|
||||
tnl_quad_func quad;
|
||||
} rast_tab[TRIDENT_MAX_TRIFUNC];
|
||||
|
||||
|
||||
|
|
@ -733,7 +742,9 @@ static const GLuint hw_prim[GL_POLYGON+1] = {
|
|||
#endif
|
||||
|
||||
static void tridentResetLineStipple( GLcontext *ctx );
|
||||
#if 0
|
||||
static void tridentRasterPrimitive( GLcontext *ctx, GLuint hwprim );
|
||||
#endif
|
||||
static void tridentRenderPrimitive( GLcontext *ctx, GLenum prim );
|
||||
|
||||
#define RASTERIZE(x) /*if (tmesa->hw_primitive != hw_prim[x]) \
|
||||
|
|
@ -985,13 +996,14 @@ static void tridentChooseRenderState(GLcontext *ctx)
|
|||
* which renders strips as strips, the equivalent calculations are
|
||||
* performed in tridentrender.c.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
static void tridentRasterPrimitive( GLcontext *ctx, GLuint hwprim )
|
||||
{
|
||||
tridentContextPtr tmesa = TRIDENT_CONTEXT(ctx);
|
||||
if (tmesa->hw_primitive != hwprim)
|
||||
tmesa->hw_primitive = hwprim;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void tridentRenderPrimitive( GLcontext *ctx, GLenum prim )
|
||||
{
|
||||
|
|
@ -1043,6 +1055,7 @@ static void tridentRenderFinish( GLcontext *ctx )
|
|||
static void tridentResetLineStipple( GLcontext *ctx )
|
||||
{
|
||||
tridentContextPtr tmesa = TRIDENT_CONTEXT(ctx);
|
||||
(void) tmesa;
|
||||
|
||||
/* Reset the hardware stipple counter.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -26,10 +26,8 @@
|
|||
*/
|
||||
#include "glheader.h"
|
||||
#include "mtypes.h"
|
||||
#include "mem.h"
|
||||
#include "macros.h"
|
||||
#include "colormac.h"
|
||||
#include "mmath.h"
|
||||
|
||||
#include "swrast_setup/swrast_setup.h"
|
||||
#include "swrast/swrast.h"
|
||||
|
|
@ -49,8 +47,8 @@
|
|||
|
||||
static struct {
|
||||
void (*emit)( GLcontext *, GLuint, GLuint, void *, GLuint );
|
||||
interp_func interp;
|
||||
copy_pv_func copy_pv;
|
||||
tnl_interp_func interp;
|
||||
tnl_copy_pv_func copy_pv;
|
||||
GLboolean (*check_tex_sizes)( GLcontext *ctx );
|
||||
GLuint vertex_size;
|
||||
GLuint vertex_stride_shift;
|
||||
|
|
@ -77,10 +75,12 @@ static struct {
|
|||
#define DO_PTEX (IND & TRIDENT_PTEX_BIT)
|
||||
|
||||
#define VERTEX tridentVertex
|
||||
#define VERTEX_COLOR trident_color_t
|
||||
#define LOCALVARS tridentContextPtr tmesa = TRIDENT_CONTEXT(ctx);
|
||||
#define GET_VIEWPORT_MAT() tmesa->hw_viewport
|
||||
#define GET_TEXSOURCE(n) tmesa->tmu_source[n]
|
||||
#define GET_VERTEX_FORMAT() tmesa->vertex_format
|
||||
#define GET_VERTEX_SIZE() tmesa->vertex_size
|
||||
#define GET_VERTEX_STORE() tmesa->verts
|
||||
#define GET_VERTEX_STRIDE_SHIFT() tmesa->vertex_stride_shift
|
||||
#define GET_UBYTE_COLOR_STORE() &tmesa->UbyteColor
|
||||
|
|
@ -310,24 +310,24 @@ void tridentBuildVertices( GLcontext *ctx,
|
|||
if (!newinputs)
|
||||
return;
|
||||
|
||||
if (newinputs & VERT_CLIP) {
|
||||
if (newinputs & VERT_BIT_POS) {
|
||||
setup_tab[tmesa->SetupIndex].emit( ctx, start, count, v, stride );
|
||||
} else {
|
||||
GLuint ind = 0;
|
||||
|
||||
if (newinputs & VERT_RGBA)
|
||||
if (newinputs & VERT_BIT_COLOR0)
|
||||
ind |= TRIDENT_RGBA_BIT;
|
||||
|
||||
if (newinputs & VERT_SPEC_RGB)
|
||||
if (newinputs & VERT_BIT_COLOR1)
|
||||
ind |= TRIDENT_SPEC_BIT;
|
||||
|
||||
if (newinputs & VERT_TEX0)
|
||||
if (newinputs & VERT_BIT_TEX0)
|
||||
ind |= TRIDENT_TEX0_BIT;
|
||||
|
||||
if (newinputs & VERT_TEX1)
|
||||
if (newinputs & VERT_BIT_TEX1)
|
||||
ind |= TRIDENT_TEX1_BIT;
|
||||
|
||||
if (newinputs & VERT_FOG_COORD)
|
||||
if (newinputs & VERT_BIT_FOG)
|
||||
ind |= TRIDENT_FOG_BIT;
|
||||
|
||||
if (tmesa->SetupIndex & TRIDENT_PTEX_BIT)
|
||||
|
|
@ -373,10 +373,9 @@ void tridentChooseVertexState( GLcontext *ctx )
|
|||
if (ctx->Fog.Enabled)
|
||||
ind |= TRIDENT_FOG_BIT;
|
||||
|
||||
if (ctx->Texture._ReallyEnabled) {
|
||||
if (ctx->Texture.Unit[0]._ReallyEnabled) {
|
||||
ind |= TRIDENT_TEX0_BIT;
|
||||
if (ctx->Texture.Unit[0]._ReallyEnabled &&
|
||||
ctx->Texture.Unit[1]._ReallyEnabled) {
|
||||
if (ctx->Texture.Unit[1]._ReallyEnabled) {
|
||||
ind |= TRIDENT_TEX1_BIT;
|
||||
}
|
||||
}
|
||||
|
|
@ -424,12 +423,12 @@ void tridentFreeVB( GLcontext *ctx )
|
|||
}
|
||||
|
||||
if (tmesa->UbyteSecondaryColor.Ptr) {
|
||||
ALIGN_FREE(tmesa->UbyteSecondaryColor.Ptr);
|
||||
ALIGN_FREE((void *)tmesa->UbyteSecondaryColor.Ptr);
|
||||
tmesa->UbyteSecondaryColor.Ptr = 0;
|
||||
}
|
||||
|
||||
if (tmesa->UbyteColor.Ptr) {
|
||||
ALIGN_FREE(tmesa->UbyteColor.Ptr);
|
||||
ALIGN_FREE((void *)tmesa->UbyteColor.Ptr);
|
||||
tmesa->UbyteColor.Ptr = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue