Consolidated source files. Since the re-org a number of source files

only had one or two functions left in them.
This commit is contained in:
Brian Paul
2001-06-18 17:26:08 +00:00
parent 24ae7c4c1f
commit 1b25898946
18 changed files with 900 additions and 157 deletions

View File

@@ -1,4 +1,4 @@
# $Id: Makefile.X11,v 1.53 2001/06/01 22:22:41 keithw Exp $
# $Id: Makefile.X11,v 1.54 2001/06/18 17:26:08 brianp Exp $
# Mesa 3-D graphics library
# Version: 3.5
@@ -22,38 +22,11 @@ LIBDIR = ../lib
CORE_SOURCES = \
api_arrayelt.c \
tnl/t_array_api.c \
tnl/t_array_import.c \
tnl/t_context.c \
tnl/t_eval_api.c \
tnl/t_imm_alloc.c \
tnl/t_imm_api.c \
tnl/t_imm_debug.c \
tnl/t_imm_dlist.c \
tnl/t_imm_elt.c \
tnl/t_imm_eval.c \
tnl/t_imm_exec.c \
tnl/t_imm_fixup.c \
tnl/t_pipeline.c \
tnl/t_vb_fog.c \
tnl/t_vb_light.c \
tnl/t_vb_normals.c \
tnl/t_vb_points.c \
tnl/t_vb_render.c \
tnl/t_vb_texgen.c \
tnl/t_vb_texmat.c \
tnl/t_vb_vertex.c \
swrast_setup/ss_context.c \
swrast_setup/ss_triangle.c \
swrast_setup/ss_vb.c \
swrast_setup/ss_interp.c \
api_loopback.c \
api_noop.c \
api_validate.c \
accum.c \
alpha.c \
attrib.c \
bitmap.c \
blend.c \
buffers.c \
clip.c \
@@ -61,7 +34,6 @@ CORE_SOURCES = \
config.c \
context.c \
convolve.c \
copypix.c \
debug.c \
depth.c \
dispatch.c \
@@ -83,18 +55,13 @@ CORE_SOURCES = \
imports.c \
light.c \
lines.c \
logic.c \
masking.c \
matrix.c \
mem.c \
mmath.c \
pixel.c \
pixeltex.c \
points.c \
polygon.c \
rastpos.c \
readpix.c \
scissor.c \
state.c \
stencil.c \
texformat.c \
@@ -105,7 +72,6 @@ CORE_SOURCES = \
texutil.c \
varray.c \
vtxfmt.c \
winpos.c \
X86/x86.c \
X86/common_x86.c \
X86/3dnow.c \
@@ -151,7 +117,32 @@ CORE_SOURCES = \
swrast/s_texture.c \
swrast/s_texstore.c \
swrast/s_triangle.c \
swrast/s_zoom.c
swrast/s_zoom.c \
swrast_setup/ss_context.c \
swrast_setup/ss_triangle.c \
swrast_setup/ss_vb.c \
swrast_setup/ss_interp.c \
tnl/t_array_api.c \
tnl/t_array_import.c \
tnl/t_context.c \
tnl/t_eval_api.c \
tnl/t_imm_alloc.c \
tnl/t_imm_api.c \
tnl/t_imm_debug.c \
tnl/t_imm_dlist.c \
tnl/t_imm_elt.c \
tnl/t_imm_eval.c \
tnl/t_imm_exec.c \
tnl/t_imm_fixup.c \
tnl/t_pipeline.c \
tnl/t_vb_fog.c \
tnl/t_vb_light.c \
tnl/t_vb_normals.c \
tnl/t_vb_points.c \
tnl/t_vb_render.c \
tnl/t_vb_texgen.c \
tnl/t_vb_texmat.c \
tnl/t_vb_vertex.c
DRIVER_SOURCES = \

View File

@@ -1,4 +1,4 @@
# $Id: Makefile.OSMesa16,v 1.2 2001/05/29 22:06:13 brianp Exp $
# $Id: Makefile.OSMesa16,v 1.3 2001/06/18 17:26:08 brianp Exp $
# Mesa 3-D graphics library
# Version: 3.5
@@ -22,38 +22,11 @@ LIBDIR = ../lib
CORE_SOURCES = \
tnl/t_array_api.c \
tnl/t_array_import.c \
tnl/t_context.c \
tnl/t_eval_api.c \
tnl/t_imm_alloc.c \
tnl/t_imm_api.c \
tnl/t_imm_debug.c \
tnl/t_imm_dlist.c \
tnl/t_imm_elt.c \
tnl/t_imm_eval.c \
tnl/t_imm_exec.c \
tnl/t_imm_fixup.c \
tnl/t_pipeline.c \
tnl/t_vb_fog.c \
tnl/t_vb_light.c \
tnl/t_vb_normals.c \
tnl/t_vb_points.c \
tnl/t_vb_render.c \
tnl/t_vb_texgen.c \
tnl/t_vb_texmat.c \
tnl/t_vb_vertex.c \
swrast_setup/ss_context.c \
swrast_setup/ss_triangle.c \
swrast_setup/ss_vb.c \
swrast_setup/ss_interp.c \
api_loopback.c \
api_noop.c \
api_validate.c \
accum.c \
alpha.c \
attrib.c \
bitmap.c \
blend.c \
buffers.c \
clip.c \
@@ -61,7 +34,6 @@ CORE_SOURCES = \
config.c \
context.c \
convolve.c \
copypix.c \
debug.c \
depth.c \
dispatch.c \
@@ -83,18 +55,13 @@ CORE_SOURCES = \
imports.c \
light.c \
lines.c \
logic.c \
masking.c \
matrix.c \
mem.c \
mmath.c \
pixel.c \
pixeltex.c \
points.c \
polygon.c \
rastpos.c \
readpix.c \
scissor.c \
state.c \
stencil.c \
texformat.c \
@@ -105,7 +72,6 @@ CORE_SOURCES = \
texutil.c \
varray.c \
vtxfmt.c \
winpos.c \
X86/x86.c \
X86/common_x86.c \
X86/3dnow.c \
@@ -152,6 +118,31 @@ CORE_SOURCES = \
swrast/s_texstore.c \
swrast/s_triangle.c \
swrast/s_zoom.c \
swrast_setup/ss_context.c \
swrast_setup/ss_triangle.c \
swrast_setup/ss_vb.c \
swrast_setup/ss_interp.c \
tnl/t_array_api.c \
tnl/t_array_import.c \
tnl/t_context.c \
tnl/t_eval_api.c \
tnl/t_imm_alloc.c \
tnl/t_imm_api.c \
tnl/t_imm_debug.c \
tnl/t_imm_dlist.c \
tnl/t_imm_elt.c \
tnl/t_imm_eval.c \
tnl/t_imm_exec.c \
tnl/t_imm_fixup.c \
tnl/t_pipeline.c \
tnl/t_vb_fog.c \
tnl/t_vb_light.c \
tnl/t_vb_normals.c \
tnl/t_vb_points.c \
tnl/t_vb_render.c \
tnl/t_vb_texgen.c \
tnl/t_vb_texmat.c \
tnl/t_vb_vertex.c \
OSmesa/osmesa.c
ASM_SOURCES =

View File

@@ -1,4 +1,4 @@
# $Id: Makefile.X11,v 1.53 2001/06/01 22:22:41 keithw Exp $
# $Id: Makefile.X11,v 1.54 2001/06/18 17:26:08 brianp Exp $
# Mesa 3-D graphics library
# Version: 3.5
@@ -22,38 +22,11 @@ LIBDIR = ../lib
CORE_SOURCES = \
api_arrayelt.c \
tnl/t_array_api.c \
tnl/t_array_import.c \
tnl/t_context.c \
tnl/t_eval_api.c \
tnl/t_imm_alloc.c \
tnl/t_imm_api.c \
tnl/t_imm_debug.c \
tnl/t_imm_dlist.c \
tnl/t_imm_elt.c \
tnl/t_imm_eval.c \
tnl/t_imm_exec.c \
tnl/t_imm_fixup.c \
tnl/t_pipeline.c \
tnl/t_vb_fog.c \
tnl/t_vb_light.c \
tnl/t_vb_normals.c \
tnl/t_vb_points.c \
tnl/t_vb_render.c \
tnl/t_vb_texgen.c \
tnl/t_vb_texmat.c \
tnl/t_vb_vertex.c \
swrast_setup/ss_context.c \
swrast_setup/ss_triangle.c \
swrast_setup/ss_vb.c \
swrast_setup/ss_interp.c \
api_loopback.c \
api_noop.c \
api_validate.c \
accum.c \
alpha.c \
attrib.c \
bitmap.c \
blend.c \
buffers.c \
clip.c \
@@ -61,7 +34,6 @@ CORE_SOURCES = \
config.c \
context.c \
convolve.c \
copypix.c \
debug.c \
depth.c \
dispatch.c \
@@ -83,18 +55,13 @@ CORE_SOURCES = \
imports.c \
light.c \
lines.c \
logic.c \
masking.c \
matrix.c \
mem.c \
mmath.c \
pixel.c \
pixeltex.c \
points.c \
polygon.c \
rastpos.c \
readpix.c \
scissor.c \
state.c \
stencil.c \
texformat.c \
@@ -105,7 +72,6 @@ CORE_SOURCES = \
texutil.c \
varray.c \
vtxfmt.c \
winpos.c \
X86/x86.c \
X86/common_x86.c \
X86/3dnow.c \
@@ -151,7 +117,32 @@ CORE_SOURCES = \
swrast/s_texture.c \
swrast/s_texstore.c \
swrast/s_triangle.c \
swrast/s_zoom.c
swrast/s_zoom.c \
swrast_setup/ss_context.c \
swrast_setup/ss_triangle.c \
swrast_setup/ss_vb.c \
swrast_setup/ss_interp.c \
tnl/t_array_api.c \
tnl/t_array_import.c \
tnl/t_context.c \
tnl/t_eval_api.c \
tnl/t_imm_alloc.c \
tnl/t_imm_api.c \
tnl/t_imm_debug.c \
tnl/t_imm_dlist.c \
tnl/t_imm_elt.c \
tnl/t_imm_eval.c \
tnl/t_imm_exec.c \
tnl/t_imm_fixup.c \
tnl/t_pipeline.c \
tnl/t_vb_fog.c \
tnl/t_vb_light.c \
tnl/t_vb_normals.c \
tnl/t_vb_points.c \
tnl/t_vb_render.c \
tnl/t_vb_texgen.c \
tnl/t_vb_texmat.c \
tnl/t_vb_vertex.c
DRIVER_SOURCES = \

View File

@@ -34,9 +34,7 @@ CORE_SRCS = \
api_noop.c \
api_validate.c \
accum.c \
alpha.c \
attrib.c \
bitmap.c \
blend.c \
buffers.c \
clip.c \
@@ -44,7 +42,6 @@ CORE_SRCS = \
config.c \
context.c \
convolve.c \
copypix.c \
debug.c \
depth.c \
dispatch.c \
@@ -67,19 +64,14 @@ CORE_SRCS = \
imports.c \
light.c \
lines.c \
logic.c \
lowpc.c \
masking.c \
matrix.c \
mem.c \
mmath.c \
pixel.c \
pixeltex.c \
points.c \
polygon.c \
rastpos.c \
readpix.c \
scissor.c \
state.c \
stencil.c \
teximage.c \
@@ -89,7 +81,6 @@ CORE_SRCS = \
texutil.c \
varray.c \
vtxfmt.c \
winpos.c \
X86\x86.c \
X86\common_x86.c \
X86\3dnow.c \

View File

@@ -1,4 +1,4 @@
/* $Id: attrib.c,v 1.51 2001/05/29 15:23:48 brianp Exp $ */
/* $Id: attrib.c,v 1.52 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -30,7 +30,6 @@
#else
#include "glheader.h"
#include "accum.h"
#include "alpha.h"
#include "attrib.h"
#include "blend.h"
#include "buffers.h"
@@ -44,13 +43,10 @@
#include "hint.h"
#include "light.h"
#include "lines.h"
#include "logic.h"
#include "masking.h"
#include "matrix.h"
#include "mem.h"
#include "points.h"
#include "polygon.h"
#include "scissor.h"
#include "simple_list.h"
#include "stencil.h"
#include "texstate.h"

View File

@@ -1,4 +1,4 @@
/* $Id: blend.c,v 1.32 2001/03/29 16:50:31 brianp Exp $ */
/* $Id: blend.c,v 1.33 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -30,6 +30,7 @@
#else
#include "glheader.h"
#include "blend.h"
#include "colormac.h"
#include "context.h"
#include "enums.h"
#include "macros.h"
@@ -339,3 +340,127 @@ _mesa_BlendColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha )
if (ctx->Driver.BlendColor)
(*ctx->Driver.BlendColor)(ctx, tmp);
}
void
_mesa_AlphaFunc( GLenum func, GLclampf ref )
{
GET_CURRENT_CONTEXT(ctx);
GLchan cref;
ASSERT_OUTSIDE_BEGIN_END(ctx);
switch (func) {
case GL_NEVER:
case GL_LESS:
case GL_EQUAL:
case GL_LEQUAL:
case GL_GREATER:
case GL_NOTEQUAL:
case GL_GEQUAL:
case GL_ALWAYS:
/* convert float alpha ref to GLchan type */
UNCLAMPED_FLOAT_TO_CHAN(cref, ref);
if (ctx->Color.AlphaFunc == func && ctx->Color.AlphaRef == cref)
return;
FLUSH_VERTICES(ctx, _NEW_COLOR);
ctx->Color.AlphaFunc = func;
ctx->Color.AlphaRef = cref;
if (ctx->Driver.AlphaFunc)
ctx->Driver.AlphaFunc(ctx, func, cref);
return;
default:
_mesa_error( ctx, GL_INVALID_ENUM, "glAlphaFunc(func)" );
return;
}
}
void
_mesa_LogicOp( GLenum opcode )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
switch (opcode) {
case GL_CLEAR:
case GL_SET:
case GL_COPY:
case GL_COPY_INVERTED:
case GL_NOOP:
case GL_INVERT:
case GL_AND:
case GL_NAND:
case GL_OR:
case GL_NOR:
case GL_XOR:
case GL_EQUIV:
case GL_AND_REVERSE:
case GL_AND_INVERTED:
case GL_OR_REVERSE:
case GL_OR_INVERTED:
break;
default:
_mesa_error( ctx, GL_INVALID_ENUM, "glLogicOp" );
return;
}
if (ctx->Color.LogicOp == opcode)
return;
FLUSH_VERTICES(ctx, _NEW_COLOR);
ctx->Color.LogicOp = opcode;
if (ctx->Driver.LogicOpcode)
ctx->Driver.LogicOpcode( ctx, opcode );
}
void
_mesa_IndexMask( GLuint mask )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
if (ctx->Color.IndexMask == mask)
return;
FLUSH_VERTICES(ctx, _NEW_COLOR);
ctx->Color.IndexMask = mask;
if (ctx->Driver.IndexMask)
ctx->Driver.IndexMask( ctx, mask );
}
void
_mesa_ColorMask( GLboolean red, GLboolean green,
GLboolean blue, GLboolean alpha )
{
GET_CURRENT_CONTEXT(ctx);
GLubyte tmp[4];
ASSERT_OUTSIDE_BEGIN_END(ctx);
if (MESA_VERBOSE & VERBOSE_API)
fprintf(stderr, "glColorMask %d %d %d %d\n", red, green, blue, alpha);
/* Shouldn't have any information about channel depth in core mesa
* -- should probably store these as the native booleans:
*/
tmp[RCOMP] = red ? 0xff : 0x0;
tmp[GCOMP] = green ? 0xff : 0x0;
tmp[BCOMP] = blue ? 0xff : 0x0;
tmp[ACOMP] = alpha ? 0xff : 0x0;
if (TEST_EQ_4UBV(tmp, ctx->Color.ColorMask))
return;
FLUSH_VERTICES(ctx, _NEW_COLOR);
COPY_4UBV(ctx->Color.ColorMask, tmp);
if (ctx->Driver.ColorMask)
ctx->Driver.ColorMask( ctx, red, green, blue, alpha );
}

View File

@@ -1,4 +1,4 @@
/* $Id: blend.h,v 1.8 2001/03/12 00:48:37 gareth Exp $ */
/* $Id: blend.h,v 1.9 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -31,6 +31,7 @@
#include "mtypes.h"
extern void
_mesa_BlendFunc( GLenum sfactor, GLenum dfactor );
@@ -48,4 +49,20 @@ extern void
_mesa_BlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
extern void
_mesa_AlphaFunc( GLenum func, GLclampf ref );
extern void
_mesa_LogicOp( GLenum opcode );
extern void
_mesa_IndexMask( GLuint mask );
extern void
_mesa_ColorMask( GLboolean red, GLboolean green,
GLboolean blue, GLboolean alpha );
#endif

View File

@@ -1,4 +1,4 @@
/* $Id: buffers.c,v 1.29 2001/05/29 15:23:48 brianp Exp $ */
/* $Id: buffers.c,v 1.30 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -36,7 +36,6 @@
#include "depth.h"
#include "enums.h"
#include "macros.h"
#include "masking.h"
#include "mem.h"
#include "stencil.h"
#include "state.h"
@@ -372,6 +371,37 @@ _mesa_ResizeBuffersMESA( void )
}
void
_mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
if (width < 0 || height < 0) {
_mesa_error( ctx, GL_INVALID_VALUE, "glScissor" );
return;
}
if (MESA_VERBOSE & VERBOSE_API)
fprintf(stderr, "glScissor %d %d %d %d\n", x, y, width, height);
if (x == ctx->Scissor.X &&
y == ctx->Scissor.Y &&
width == ctx->Scissor.Width &&
height == ctx->Scissor.Height)
return;
FLUSH_VERTICES(ctx, _NEW_SCISSOR);
ctx->Scissor.X = x;
ctx->Scissor.Y = y;
ctx->Scissor.Width = width;
ctx->Scissor.Height = height;
if (ctx->Driver.Scissor)
ctx->Driver.Scissor( ctx, x, y, width, height );
}
/*
* XXX move somewhere else someday?
*/

View File

@@ -1,4 +1,4 @@
/* $Id: buffers.h,v 1.4 2001/05/29 15:23:48 brianp Exp $ */
/* $Id: buffers.h,v 1.5 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -51,6 +51,9 @@ _mesa_ReadBuffer( GLenum mode );
extern void
_mesa_ResizeBuffersMESA( void );
extern void
_mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height );
extern void
_mesa_SampleCoverageARB(GLclampf value, GLboolean invert);

View File

@@ -16,12 +16,10 @@ LIBDIR = [-.lib]
CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)
CORE_SOURCES =accum.c \
alpha.c \
api_loopback.c \
api_noop.c \
api_validate.c \
attrib.c \
bitmap.c \
blend.c \
buffers.c \
clip.c \
@@ -29,7 +27,6 @@ CORE_SOURCES =accum.c \
config.c \
context.c \
convolve.c \
copypix.c \
debug.c \
depth.c \
dispatch.c \
@@ -52,19 +49,14 @@ CORE_SOURCES =accum.c \
imports.c \
light.c \
lines.c \
logic.c \
lowpc.c \
masking.c \
matrix.c \
mem.c \
mmath.c \
pixel.c \
pixeltex.c \
points.c \
polygon.c \
rastpos.c \
readpix.c \
scissor.c \
state.c \
stencil.c \
texformat.c \
@@ -75,7 +67,6 @@ CORE_SOURCES =accum.c \
texutil.c \
varray.c \
vtxfmt.c \
winpos.c \
[.x86]x86.c
DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]xfonts.c \

View File

@@ -1,4 +1,4 @@
/* $Id: dlist.c,v 1.74 2001/06/12 22:06:10 brianp Exp $ */
/* $Id: dlist.c,v 1.75 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -29,10 +29,8 @@
#include "all.h"
#else
#include "glheader.h"
#include "accum.h"
#include "api_loopback.h"
#include "attrib.h"
#include "bitmap.h"
#include "blend.h"
#include "buffers.h"
#include "clip.h"
@@ -40,7 +38,6 @@
#include "colortab.h"
#include "context.h"
#include "convolve.h"
#include "copypix.h"
#include "depth.h"
#include "dlist.h"
#include "enable.h"
@@ -60,10 +57,8 @@
#include "matrix.h"
#include "mem.h"
#include "pixel.h"
#include "pixeltex.h"
#include "points.h"
#include "polygon.h"
#include "readpix.h"
#include "state.h"
#include "texobj.h"
#include "teximage.h"

View File

@@ -1,4 +1,4 @@
/* $Id: drawpix.c,v 1.53 2001/04/28 08:39:17 keithw Exp $ */
/* $Id: drawpix.c,v 1.54 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -95,3 +95,134 @@ _mesa_DrawPixels( GLsizei width, GLsizei height,
}
}
}
void
_mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLvoid *pixels )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
if (!pixels) {
_mesa_error( ctx, GL_INVALID_VALUE, "glReadPixels(pixels)" );
return;
}
if (ctx->NewState)
_mesa_update_state(ctx);
ctx->Driver.ReadPixels(ctx, x, y, width, height,
format, type, &ctx->Pack, pixels);
}
void
_mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height,
GLenum type )
{
GET_CURRENT_CONTEXT(ctx);
GLint destx, desty;
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
if (width < 0 || height < 0) {
_mesa_error( ctx, GL_INVALID_VALUE, "glCopyPixels" );
return;
}
if (ctx->NewState) {
_mesa_update_state(ctx);
}
if (ctx->RenderMode==GL_RENDER) {
/* Destination of copy: */
if (!ctx->Current.RasterPosValid) {
return;
}
destx = IROUND(ctx->Current.RasterPos[0]);
desty = IROUND(ctx->Current.RasterPos[1]);
ctx->OcclusionResult = GL_TRUE;
ctx->Driver.CopyPixels( ctx, srcx, srcy, width, height, destx, desty,
type );
}
else if (ctx->RenderMode == GL_FEEDBACK) {
FLUSH_CURRENT( ctx, 0 );
FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_COPY_PIXEL_TOKEN );
_mesa_feedback_vertex( ctx,
ctx->Current.RasterPos,
ctx->Current.Color,
ctx->Current.Index,
ctx->Current.Texcoord[0] );
}
else if (ctx->RenderMode == GL_SELECT) {
_mesa_update_hitflag( ctx, ctx->Current.RasterPos[2] );
}
}
void
_mesa_Bitmap( GLsizei width, GLsizei height,
GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove,
const GLubyte *bitmap )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
/* Error checking */
if (width < 0 || height < 0) {
_mesa_error( ctx, GL_INVALID_VALUE, "glBitmap" );
return;
}
if (ctx->Current.RasterPosValid == GL_FALSE) {
return; /* do nothing */
}
if (ctx->RenderMode==GL_RENDER) {
if (bitmap) {
GLint x = (GLint) ( (ctx->Current.RasterPos[0] - xorig) + 0.0F );
GLint y = (GLint) ( (ctx->Current.RasterPos[1] - yorig) + 0.0F );
if (ctx->NewState) {
_mesa_update_state(ctx);
}
ctx->OcclusionResult = GL_TRUE;
ctx->Driver.Bitmap( ctx, x, y, width, height, &ctx->Unpack, bitmap );
}
}
else if (ctx->RenderMode==GL_FEEDBACK) {
GLfloat color[4], texcoord[4], invq;
color[0] = ctx->Current.RasterColor[0];
color[1] = ctx->Current.RasterColor[1];
color[2] = ctx->Current.RasterColor[2];
color[3] = ctx->Current.RasterColor[3];
if (ctx->Current.Texcoord[0][3] == 0.0)
invq = 1.0F;
else
invq = 1.0F / ctx->Current.RasterTexCoord[3];
texcoord[0] = ctx->Current.RasterTexCoord[0] * invq;
texcoord[1] = ctx->Current.RasterTexCoord[1] * invq;
texcoord[2] = ctx->Current.RasterTexCoord[2] * invq;
texcoord[3] = ctx->Current.RasterTexCoord[3];
FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_BITMAP_TOKEN );
_mesa_feedback_vertex( ctx,
ctx->Current.RasterPos,
color, ctx->Current.RasterIndex, texcoord );
}
else if (ctx->RenderMode==GL_SELECT) {
/* Bitmaps don't generate selection hits. See appendix B of 1.1 spec. */
}
/* update raster position */
ctx->Current.RasterPos[0] += xmove;
ctx->Current.RasterPos[1] += ymove;
}

View File

@@ -1,4 +1,4 @@
/* $Id: drawpix.h,v 1.6 2001/03/12 00:48:37 gareth Exp $ */
/* $Id: drawpix.h,v 1.7 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -31,9 +31,26 @@
#include "mtypes.h"
extern void
_mesa_DrawPixels( GLsizei width, GLsizei height,
GLenum format, GLenum type, const GLvoid *pixels );
extern void
_mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLvoid *pixels );
extern void
_mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height,
GLenum type );
extern void
_mesa_Bitmap( GLsizei width, GLsizei height,
GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove,
const GLubyte *bitmap );
#endif

View File

@@ -1,4 +1,4 @@
/* $Id: rastpos.c,v 1.25 2001/05/30 15:22:04 brianp Exp $ */
/* $Id: rastpos.c,v 1.26 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -482,3 +482,239 @@ _mesa_RasterPos4sv(const GLshort *v)
{
_mesa_RasterPos4f(v[0], v[1], v[2], v[3]);
}
/**********************************************************************/
/*** GL_MESA_window_pos ***/
/**********************************************************************/
/*
* This is a MESA extension function. Pretty much just like glRasterPos
* except we don't apply the modelview or projection matrices; specify a
* window coordinate directly.
* Caller: context->API.WindowPos4fMESA pointer.
*/
void
_mesa_WindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
FLUSH_CURRENT(ctx, 0);
/* set raster position */
ctx->Current.RasterPos[0] = x;
ctx->Current.RasterPos[1] = y;
ctx->Current.RasterPos[2] = CLAMP( z, 0.0F, 1.0F );
ctx->Current.RasterPos[3] = w;
ctx->Current.RasterPosValid = GL_TRUE;
ctx->Current.RasterDistance = 0.0F;
ctx->Current.RasterFogCoord = 0.0F;
/* raster color = current color or index */
if (ctx->Visual.rgbMode) {
ctx->Current.RasterColor[0] = (ctx->Current.Color[0]);
ctx->Current.RasterColor[1] = (ctx->Current.Color[1]);
ctx->Current.RasterColor[2] = (ctx->Current.Color[2]);
ctx->Current.RasterColor[3] = (ctx->Current.Color[3]);
}
else {
ctx->Current.RasterIndex = ctx->Current.Index;
}
/* raster texcoord = current texcoord */
{
GLuint texSet;
for (texSet = 0; texSet < ctx->Const.MaxTextureUnits; texSet++) {
COPY_4FV( ctx->Current.RasterMultiTexCoord[texSet],
ctx->Current.Texcoord[texSet] );
}
}
if (ctx->RenderMode==GL_SELECT) {
_mesa_update_hitflag( ctx, ctx->Current.RasterPos[2] );
}
}
void
_mesa_WindowPos2dMESA(GLdouble x, GLdouble y)
{
_mesa_WindowPos4fMESA(x, y, 0.0F, 1.0F);
}
void
_mesa_WindowPos2fMESA(GLfloat x, GLfloat y)
{
_mesa_WindowPos4fMESA(x, y, 0.0F, 1.0F);
}
void
_mesa_WindowPos2iMESA(GLint x, GLint y)
{
_mesa_WindowPos4fMESA(x, y, 0.0F, 1.0F);
}
void
_mesa_WindowPos2sMESA(GLshort x, GLshort y)
{
_mesa_WindowPos4fMESA(x, y, 0.0F, 1.0F);
}
void
_mesa_WindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z)
{
_mesa_WindowPos4fMESA(x, y, z, 1.0F);
}
void
_mesa_WindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z)
{
_mesa_WindowPos4fMESA(x, y, z, 1.0F);
}
void
_mesa_WindowPos3iMESA(GLint x, GLint y, GLint z)
{
_mesa_WindowPos4fMESA(x, y, z, 1.0F);
}
void
_mesa_WindowPos3sMESA(GLshort x, GLshort y, GLshort z)
{
_mesa_WindowPos4fMESA(x, y, z, 1.0F);
}
void
_mesa_WindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
{
_mesa_WindowPos4fMESA(x, y, z, w);
}
void
_mesa_WindowPos4iMESA(GLint x, GLint y, GLint z, GLint w)
{
_mesa_WindowPos4fMESA(x, y, z, w);
}
void
_mesa_WindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w)
{
_mesa_WindowPos4fMESA(x, y, z, w);
}
void
_mesa_WindowPos2dvMESA(const GLdouble *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
}
void
_mesa_WindowPos2fvMESA(const GLfloat *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
}
void
_mesa_WindowPos2ivMESA(const GLint *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
}
void
_mesa_WindowPos2svMESA(const GLshort *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], 0.0F, 1.0F);
}
void
_mesa_WindowPos3dvMESA(const GLdouble *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
}
void
_mesa_WindowPos3fvMESA(const GLfloat *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
}
void
_mesa_WindowPos3ivMESA(const GLint *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
}
void
_mesa_WindowPos3svMESA(const GLshort *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], v[2], 1.0F);
}
void
_mesa_WindowPos4dvMESA(const GLdouble *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
}
void
_mesa_WindowPos4fvMESA(const GLfloat *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
}
void
_mesa_WindowPos4ivMESA(const GLint *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
}
void
_mesa_WindowPos4svMESA(const GLshort *v)
{
_mesa_WindowPos4fMESA(v[0], v[1], v[2], v[3]);
}
#if 0
/*
* OpenGL implementation of glWindowPos*MESA()
*/
void glWindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w )
{
GLfloat fx, fy;
/* Push current matrix mode and viewport attributes */
glPushAttrib( GL_TRANSFORM_BIT | GL_VIEWPORT_BIT );
/* Setup projection parameters */
glMatrixMode( GL_PROJECTION );
glPushMatrix();
glLoadIdentity();
glMatrixMode( GL_MODELVIEW );
glPushMatrix();
glLoadIdentity();
glDepthRange( z, z );
glViewport( (int) x - 1, (int) y - 1, 2, 2 );
/* set the raster (window) position */
fx = x - (int) x;
fy = y - (int) y;
glRasterPos4f( fx, fy, 0.0, w );
/* restore matrices, viewport and matrix mode */
glPopMatrix();
glMatrixMode( GL_PROJECTION );
glPopMatrix();
glPopAttrib();
}
#endif

View File

@@ -1,4 +1,4 @@
/* $Id: rastpos.h,v 1.3 2001/03/12 00:48:38 gareth Exp $ */
/* $Id: rastpos.h,v 1.4 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -105,4 +105,81 @@ extern void
_mesa_RasterPos4sv(const GLshort *v);
/**********************************************************************/
/*** GL_MESA_window_pos ***/
/**********************************************************************/
extern void
_mesa_WindowPos2dMESA(GLdouble x, GLdouble y);
extern void
_mesa_WindowPos2fMESA(GLfloat x, GLfloat y);
extern void
_mesa_WindowPos2iMESA(GLint x, GLint y);
extern void
_mesa_WindowPos2sMESA(GLshort x, GLshort y);
extern void
_mesa_WindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z);
extern void
_mesa_WindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z);
extern void
_mesa_WindowPos3iMESA(GLint x, GLint y, GLint z);
extern void
_mesa_WindowPos3sMESA(GLshort x, GLshort y, GLshort z);
extern void
_mesa_WindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
extern void
_mesa_WindowPos4fMESA(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
extern void
_mesa_WindowPos4iMESA(GLint x, GLint y, GLint z, GLint w);
extern void
_mesa_WindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w);
extern void
_mesa_WindowPos2dvMESA(const GLdouble *v);
extern void
_mesa_WindowPos2fvMESA(const GLfloat *v);
extern void
_mesa_WindowPos2ivMESA(const GLint *v);
extern void
_mesa_WindowPos2svMESA(const GLshort *v);
extern void
_mesa_WindowPos3dvMESA(const GLdouble *v);
extern void
_mesa_WindowPos3fvMESA(const GLfloat *v);
extern void
_mesa_WindowPos3ivMESA(const GLint *v);
extern void
_mesa_WindowPos3svMESA(const GLshort *v);
extern void
_mesa_WindowPos4dvMESA(const GLdouble *v);
extern void
_mesa_WindowPos4fvMESA(const GLfloat *v);
extern void
_mesa_WindowPos4ivMESA(const GLint *v);
extern void
_mesa_WindowPos4svMESA(const GLshort *v);
#endif

View File

@@ -1,4 +1,4 @@
/* $Id: state.c,v 1.67 2001/06/15 14:18:46 brianp Exp $ */
/* $Id: state.c,v 1.68 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -36,17 +36,14 @@
#else
#include "glheader.h"
#include "accum.h"
#include "alpha.h"
#include "api_loopback.h"
#include "attrib.h"
#include "bitmap.h"
#include "blend.h"
#include "buffers.h"
#include "clip.h"
#include "colortab.h"
#include "context.h"
#include "convolve.h"
#include "copypix.h"
#include "depth.h"
#include "dlist.h"
#include "drawpix.h"
@@ -59,17 +56,12 @@
#include "histogram.h"
#include "light.h"
#include "lines.h"
#include "logic.h"
#include "masking.h"
#include "matrix.h"
#include "mmath.h"
#include "pixel.h"
#include "pixeltex.h"
#include "points.h"
#include "polygon.h"
#include "rastpos.h"
#include "readpix.h"
#include "scissor.h"
#include "state.h"
#include "stencil.h"
#include "teximage.h"
@@ -77,7 +69,6 @@
#include "texstate.h"
#include "mtypes.h"
#include "varray.h"
#include "winpos.h"
#include "math/m_matrix.h"
#include "math/m_xform.h"

View File

@@ -1,4 +1,4 @@
/* $Id: texstate.c,v 1.53 2001/06/13 14:56:14 brianp Exp $ */
/* $Id: texstate.c,v 1.54 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -2062,3 +2062,135 @@ _mesa_ClientActiveTextureARB( GLenum target )
FLUSH_VERTICES(ctx, _NEW_ARRAY);
ctx->Array.ActiveTexture = texUnit;
}
/**********************************************************************/
/* Pixel Texgen Extensions */
/**********************************************************************/
void
_mesa_PixelTexGenSGIX(GLenum mode)
{
GLenum newRgbSource, newAlphaSource;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
switch (mode) {
case GL_NONE:
newRgbSource = GL_PIXEL_GROUP_COLOR_SGIS;
newAlphaSource = GL_PIXEL_GROUP_COLOR_SGIS;
break;
case GL_ALPHA:
newRgbSource = GL_PIXEL_GROUP_COLOR_SGIS;
newAlphaSource = GL_CURRENT_RASTER_COLOR;
break;
case GL_RGB:
newRgbSource = GL_CURRENT_RASTER_COLOR;
newAlphaSource = GL_PIXEL_GROUP_COLOR_SGIS;
break;
case GL_RGBA:
newRgbSource = GL_CURRENT_RASTER_COLOR;
newAlphaSource = GL_CURRENT_RASTER_COLOR;
break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glPixelTexGenSGIX(mode)");
return;
}
if (newRgbSource == ctx->Pixel.FragmentRgbSource &&
newAlphaSource == ctx->Pixel.FragmentAlphaSource)
return;
FLUSH_VERTICES(ctx, _NEW_PIXEL);
ctx->Pixel.FragmentRgbSource = newRgbSource;
ctx->Pixel.FragmentAlphaSource = newAlphaSource;
}
void
_mesa_PixelTexGenParameterfSGIS(GLenum target, GLfloat value)
{
_mesa_PixelTexGenParameteriSGIS(target, (GLint) value);
}
void
_mesa_PixelTexGenParameterfvSGIS(GLenum target, const GLfloat *value)
{
_mesa_PixelTexGenParameteriSGIS(target, (GLint) *value);
}
void
_mesa_PixelTexGenParameteriSGIS(GLenum target, GLint value)
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
if (value != GL_CURRENT_RASTER_COLOR && value != GL_PIXEL_GROUP_COLOR_SGIS) {
_mesa_error(ctx, GL_INVALID_ENUM, "glPixelTexGenParameterSGIS(value)");
return;
}
switch (target) {
case GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS:
if (ctx->Pixel.FragmentRgbSource == (GLenum) value)
return;
FLUSH_VERTICES(ctx, _NEW_PIXEL);
ctx->Pixel.FragmentRgbSource = (GLenum) value;
break;
case GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS:
if (ctx->Pixel.FragmentAlphaSource == (GLenum) value)
return;
FLUSH_VERTICES(ctx, _NEW_PIXEL);
ctx->Pixel.FragmentAlphaSource = (GLenum) value;
break;
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glPixelTexGenParameterSGIS(target)");
return;
}
}
void
_mesa_PixelTexGenParameterivSGIS(GLenum target, const GLint *value)
{
_mesa_PixelTexGenParameteriSGIS(target, *value);
}
void
_mesa_GetPixelTexGenParameterfvSGIS(GLenum target, GLfloat *value)
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
if (target == GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS) {
*value = (GLfloat) ctx->Pixel.FragmentRgbSource;
}
else if (target == GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS) {
*value = (GLfloat) ctx->Pixel.FragmentAlphaSource;
}
else {
_mesa_error(ctx, GL_INVALID_ENUM, "glGetPixelTexGenParameterfvSGIS(target)");
}
}
void
_mesa_GetPixelTexGenParameterivSGIS(GLenum target, GLint *value)
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
if (target == GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS) {
*value = (GLint) ctx->Pixel.FragmentRgbSource;
}
else if (target == GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS) {
*value = (GLint) ctx->Pixel.FragmentAlphaSource;
}
else {
_mesa_error(ctx, GL_INVALID_ENUM, "glGetPixelTexGenParameterivSGIS(target)");
}
}

View File

@@ -1,4 +1,4 @@
/* $Id: texstate.h,v 1.7 2001/03/12 00:48:39 gareth Exp $ */
/* $Id: texstate.h,v 1.8 2001/06/18 17:26:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -122,4 +122,42 @@ extern void
_mesa_ClientActiveTextureARB( GLenum target );
/*
* Pixel Texture Extensions
*/
extern void
_mesa_PixelTexGenSGIX(GLenum mode);
extern void
_mesa_PixelTexGenParameterfSGIS(GLenum target, GLfloat value);
#ifdef VMS
#define _mesa_PixelTexGenParameterfvSGIS _mesa_PixelTexGenParameterfv
#endif
extern void
_mesa_PixelTexGenParameterfvSGIS(GLenum target, const GLfloat *value);
extern void
_mesa_PixelTexGenParameteriSGIS(GLenum target, GLint value);
#ifdef VMS
#define _mesa_PixelTexGenParameterivSGIS _mesa_PixelTexGenParameteriv
#endif
extern void
_mesa_PixelTexGenParameterivSGIS(GLenum target, const GLint *value);
#ifdef VMS
#define _mesa_GetPixelTexGenParameterfvSGIS _mesa_GetPixelTexGenParameterfv
#endif
extern void
_mesa_GetPixelTexGenParameterfvSGIS(GLenum target, GLfloat *value);
#ifdef VMS
#define _mesa_GetPixelTexGenParameterivSGIS _mesa_GetPixelTexGenParameteriv
#endif
extern void
_mesa_GetPixelTexGenParameterivSGIS(GLenum target, GLint *value);
#endif