-/* $Id: s_span.c,v 1.6 2001/01/05 21:28:31 brianp Exp $ */
+/* $Id: s_span.c,v 1.10 2001/03/03 20:33:30 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
*
- * Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
}
else {
/* partially off left side */
- MEMSET(mask, 0, -x);
+ BZERO(mask, -x * sizeof(GLubyte));
}
}
* index - array of [n] color indexes
* primitive - either GL_POINT, GL_LINE, GL_POLYGON, or GL_BITMAP
*/
-void gl_write_index_span( GLcontext *ctx,
+void _mesa_write_index_span( GLcontext *ctx,
GLuint n, GLint x, GLint y, const GLdepth z[],
const GLfixed fog[],
GLuint indexIn[], GLenum primitive )
if ((swrast->_RasterMask & WINCLIP_BIT) || primitive==GL_BITMAP) {
if ((n = clip_span(ctx,n,x,y,mask)) == 0) {
- return;
+ return;
}
}
/* Do the scissor test */
if (ctx->Scissor.Enabled) {
- if (gl_scissor_span( ctx, n, x, y, mask ) == 0) {
- return;
+ if ((n = _mesa_scissor_span( ctx, n, x, y, mask )) == 0) {
+ return;
}
}
if (ctx->Stencil.Enabled) {
/* first stencil test */
if (_mesa_stencil_and_ztest_span(ctx, n, x, y, z, mask) == GL_FALSE) {
- return;
+ return;
}
}
else if (ctx->Depth.Test) {
-void gl_write_monoindex_span( GLcontext *ctx,
+void _mesa_write_monoindex_span( GLcontext *ctx,
GLuint n, GLint x, GLint y,
const GLdepth z[],
const GLfixed fog[],
/* Do the scissor test */
if (ctx->Scissor.Enabled) {
- if (gl_scissor_span( ctx, n, x, y, mask ) == 0) {
- return;
+ if ((n = _mesa_scissor_span( ctx, n, x, y, mask )) == 0) {
+ return;
}
}
_mesa_depth_fog_ci_pixels( ctx, n, z, indexes );
}
- if (ctx->Color.IndexLogicOpEnabled) {
- _mesa_logicop_ci_span( ctx, n, x, y, indexes, mask );
- }
-
if (swrast->_RasterMask & MULTI_DRAW_BIT) {
/* draw to zero or two or more buffers */
multi_write_index_span( ctx, n, x, y, indexes, mask );
-void gl_write_rgba_span( GLcontext *ctx,
+void _mesa_write_rgba_span( GLcontext *ctx,
GLuint n, GLint x, GLint y, const GLdepth z[],
const GLfixed *fog,
GLchan rgbaIn[][4],
/* Do the scissor test */
if (ctx->Scissor.Enabled) {
- if (gl_scissor_span( ctx, n, x, y, mask ) == 0) {
- return;
+ if ((n = _mesa_scissor_span( ctx, n, x, y, mask )) == 0) {
+ return;
}
- write_all = GL_FALSE;
+ if (mask[0] == 0)
+ write_all = GL_FALSE;
}
/* Polygon Stippling */
* r, g, b, a - the color of the pixels
* primitive - either GL_POINT, GL_LINE, GL_POLYGON or GL_BITMAP.
*/
-void gl_write_monocolor_span( GLcontext *ctx,
+void _mesa_write_monocolor_span( GLcontext *ctx,
GLuint n, GLint x, GLint y, const GLdepth z[],
const GLfixed fog[],
const GLchan color[4],
/* Do the scissor test */
if (ctx->Scissor.Enabled) {
- if (gl_scissor_span( ctx, n, x, y, mask ) == 0) {
- return;
+ if ((n = _mesa_scissor_span( ctx, n, x, y, mask )) == 0) {
+ return;
}
- write_all = GL_FALSE;
+ if (mask[0] == 0)
+ write_all = GL_FALSE;
}
/* Polygon Stippling */
* rgba - array of [n] color components
* primitive - either GL_POINT, GL_LINE, GL_POLYGON or GL_BITMAP.
*/
-void gl_write_texture_span( GLcontext *ctx,
+void _mesa_write_texture_span( GLcontext *ctx,
GLuint n, GLint x, GLint y, const GLdepth z[],
const GLfixed fog[],
const GLfloat s[], const GLfloat t[],
/* Do the scissor test */
if (ctx->Scissor.Enabled) {
- if (gl_scissor_span( ctx, n, x, y, mask ) == 0) {
- return;
+ if ((n = _mesa_scissor_span( ctx, n, x, y, mask )) == 0) {
+ return;
}
- write_all = GL_FALSE;
+ if (mask[0] == 0)
+ write_all = GL_FALSE;
}
/* Polygon Stippling */
/* Texturing without alpha is done after depth-testing which
gives a potential speed-up. */
ASSERT(ctx->Texture._ReallyEnabled);
- _swrast_texture_fragments( ctx, 0, n, s, t, u, lambda, rgba, rgba );
+ _swrast_texture_fragments( ctx, 0, n, s, t, u, lambda,
+ (CONST GLchan (*)[4]) rgba, rgba );
/* Do the alpha test */
if (_mesa_alpha_test( ctx, n, (const GLchan (*)[4]) rgba, mask ) == 0) {
/* Texture without alpha test */
if (! ctx->Color.AlphaEnabled) {
ASSERT(ctx->Texture._ReallyEnabled);
- _swrast_texture_fragments( ctx, 0, n, s, t, u, lambda, rgba, rgba );
+ _swrast_texture_fragments( ctx, 0, n, s, t, u, lambda,
+ (CONST GLchan (*)[4]) rgba, rgba );
}
/* Add base and specular colors */
* As above but perform multiple stages of texture application.
*/
void
-gl_write_multitexture_span( GLcontext *ctx,
+_mesa_write_multitexture_span( GLcontext *ctx,
GLuint n, GLint x, GLint y,
const GLdepth z[],
const GLfixed fog[],
/* Do the scissor test */
if (ctx->Scissor.Enabled) {
- if (gl_scissor_span( ctx, n, x, y, mask ) == 0) {
- return;
+ if ((n = _mesa_scissor_span( ctx, n, x, y, mask )) == 0) {
+ return;
}
- write_all = GL_FALSE;
+ if (mask[0] == 0)
+ write_all = GL_FALSE;
}
/* Polygon Stippling */
*/
ASSERT(ctx->Texture._ReallyEnabled);
for (i = 0; i < texUnits; i++)
- _swrast_texture_fragments( ctx, i, n, s[i], t[i], u[i],
- lambda[i], rgbaIn, rgba );
+ _swrast_texture_fragments( ctx, i, n, s[i], t[i], u[i], lambda[i],
+ (CONST GLchan (*)[4]) rgbaIn, rgba );
/* Do the alpha test */
if (_mesa_alpha_test( ctx, n, (const GLchan (*)[4])rgba, mask ) == 0) {
if (! ctx->Color.AlphaEnabled) {
ASSERT(ctx->Texture._ReallyEnabled);
for (i = 0; i < texUnits; i++)
- _swrast_texture_fragments( ctx, i, n, s[i], t[i], u[i],
- lambda[i], rgbaIn, rgba );
+ _swrast_texture_fragments( ctx, i, n, s[i], t[i], u[i], lambda[i],
+ (CONST GLchan (*)[4]) rgbaIn, rgba );
}
/* Add base and specular colors */
* Read RGBA pixels from frame buffer. Clipping will be done to prevent
* reading ouside the buffer's boundaries.
*/
-void gl_read_rgba_span( GLcontext *ctx, GLframebuffer *buffer,
+void _mesa_read_rgba_span( GLcontext *ctx, GLframebuffer *buffer,
GLuint n, GLint x, GLint y,
GLchan rgba[][4] )
{
* Read CI pixels from frame buffer. Clipping will be done to prevent
* reading ouside the buffer's boundaries.
*/
-void gl_read_index_span( GLcontext *ctx, GLframebuffer *buffer,
+void _mesa_read_index_span( GLcontext *ctx, GLframebuffer *buffer,
GLuint n, GLint x, GLint y, GLuint indx[] )
{
if (y < 0 || y >= buffer->Height