diff options
author | Adam Jackson <[email protected]> | 2004-12-16 19:26:23 +0000 |
---|---|---|
committer | Adam Jackson <[email protected]> | 2004-12-16 19:26:23 +0000 |
commit | c403bcb8a7be437976d5adce41189fff1e7f690f (patch) | |
tree | fcd53d612d1725eb2609c49031e04da54a52370b /src/mesa/drivers/dri/s3v/s3v_dd.c | |
parent | 8662c5d98febd8efaf5f8ee47d34c7fcfd597ce3 (diff) |
Import s3virge and trident drivers. Not functional yet; no Makefile, no DRI-aware DDX.
Diffstat (limited to 'src/mesa/drivers/dri/s3v/s3v_dd.c')
-rw-r--r-- | src/mesa/drivers/dri/s3v/s3v_dd.c | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/s3v/s3v_dd.c b/src/mesa/drivers/dri/s3v/s3v_dd.c new file mode 100644 index 00000000000..683ae3412a9 --- /dev/null +++ b/src/mesa/drivers/dri/s3v/s3v_dd.c @@ -0,0 +1,107 @@ +/* + * Author: Max Lingua <[email protected]> + */ + +#include "s3v_context.h" +#include "s3v_vb.h" +#include "s3v_lock.h" +#if defined(USE_X86_ASM) +#include "X86/common_x86_asm.h" +#endif + +#include "context.h" +#include "swrast/swrast.h" + +#define S3V_DATE "20020207" + + +/* Return the width and height of the current color buffer. + */ +static void s3vDDGetBufferSize( GLframebuffer *buffer, + GLuint *width, GLuint *height ) +{ + GET_CURRENT_CONTEXT(ctx); + s3vContextPtr vmesa = S3V_CONTEXT(ctx); + +/* S3VHW_LOCK( vmesa ); */ + *width = vmesa->driDrawable->w; + *height = vmesa->driDrawable->h; +/* S3VHW_UNLOCK( vmesa ); */ +} + + +/* Return various strings for glGetString(). + */ +static const GLubyte *s3vDDGetString( GLcontext *ctx, GLenum name ) +{ + static char buffer[128]; + + switch ( name ) { + case GL_VENDOR: + return (GLubyte *)"Max Lingua (ladybug)"; + + case GL_RENDERER: + sprintf( buffer, "Mesa DRI S3 Virge " S3V_DATE ); + + /* Append any CPU-specific information. + */ +#ifdef USE_X86_ASM + if ( _mesa_x86_cpu_features ) { + strncat( buffer, " x86", 4 ); + +} +#ifdef USE_MMX_ASM + if ( cpu_has_mmx ) { + strncat( buffer, "/MMX", 4 ); + } +#endif +#ifdef USE_3DNOW_ASM + if ( cpu_has_3dnow ) { + strncat( buffer, "/3DNow!", 7 ); + } +#endif +#ifdef USE_SSE_ASM + if ( cpu_has_xmm ) { + strncat( buffer, "/SSE", 4 ); + } +#endif +#endif + return (GLubyte *)buffer; + + default: + return NULL; + } +} + +/* Enable the extensions supported by this driver. + */ +void s3vInitExtensions( GLcontext *ctx ) +{ + /* None... */ +} + +/* Initialize the driver's misc functions. + */ +void s3vInitDriverFuncs( GLcontext *ctx ) +{ + ctx->Driver.GetBufferSize = s3vDDGetBufferSize; + ctx->Driver.GetString = s3vDDGetString; + + ctx->Driver.Error = NULL; + + /* Pixel path fallbacks + */ + ctx->Driver.Accum = _swrast_Accum; + ctx->Driver.Bitmap = _swrast_Bitmap; + ctx->Driver.CopyPixels = _swrast_CopyPixels; + ctx->Driver.DrawPixels = _swrast_DrawPixels; + ctx->Driver.ReadPixels = _swrast_ReadPixels; + ctx->Driver.ResizeBuffers = _swrast_alloc_buffers; + + /* Swrast hooks for imaging extensions: + */ + ctx->Driver.CopyColorTable = _swrast_CopyColorTable; + ctx->Driver.CopyColorSubTable = _swrast_CopyColorSubTable; + ctx->Driver.CopyConvolutionFilter1D = _swrast_CopyConvolutionFilter1D; + ctx->Driver.CopyConvolutionFilter2D = _swrast_CopyConvolutionFilter2D; +} |