-# $Id: Makefile.X11,v 1.74 2003/03/01 01:50:20 brianp Exp $
+# $Id: Makefile.X11,v 1.75 2003/03/25 02:26:29 brianp Exp $
# Mesa 3-D graphics library
# Version: 5.0
swrast/s_drawpix.c \
swrast/s_feedback.c \
swrast/s_fog.c \
- swrast/s_histogram.c \
swrast/s_imaging.c \
swrast/s_lines.c \
swrast/s_logic.c \
-/* $Id: xm_dd.c,v 1.42 2003/01/16 19:10:46 alanh Exp $ */
+/* $Id: xm_dd.c,v 1.43 2003/03/25 02:26:30 brianp Exp $ */
/*
* Mesa 3-D graphics library
#include "imports.h"
#include "mtypes.h"
#include "state.h"
+#include "texobj.h"
#include "texstore.h"
#include "texformat.h"
#include "xmesaP.h"
if ((mask & (DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT)) &&
xmesa->xm_draw_buffer->mesa_buffer.UseSoftwareAlphaBuffers &&
ctx->Color.ColorMask[ACOMP]) {
- _mesa_clear_alpha_buffers(ctx);
+ _swrast_clear_alpha_buffers(ctx);
}
/* we can't handle color or index masking */
ctx->Driver.CopyTexSubImage2D = _swrast_copy_texsubimage2d;
ctx->Driver.CopyTexSubImage3D = _swrast_copy_texsubimage3d;
+ ctx->Driver.NewTextureObject = _mesa_alloc_texture_object;
+ ctx->Driver.DeleteTexture = _mesa_free_texture_object;
+
ctx->Driver.CompressedTexImage1D = _mesa_store_compressed_teximage1d;
ctx->Driver.CompressedTexImage2D = _mesa_store_compressed_teximage2d;
ctx->Driver.CompressedTexImage3D = _mesa_store_compressed_teximage3d;
swrast/s_drawpix.c \
swrast/s_feedback.c \
swrast/s_fog.c \
- swrast/s_histogram.c \
swrast/s_imaging.c \
swrast/s_lines.c \
swrast/s_logic.c \
swrast/s_drawpix.c \\r
swrast/s_feedback.c \\r
swrast/s_fog.c \\r
- swrast/s_histogram.c \\r
swrast/s_imaging.c \\r
swrast/s_lines.c \\r
swrast/s_logic.c \\r
-# $Id: Makefile.OSMesa16,v 1.12 2003/03/01 01:50:20 brianp Exp $
+# $Id: Makefile.OSMesa16,v 1.13 2003/03/25 02:26:29 brianp Exp $
# Mesa 3-D graphics library
# Version: 5.0
swrast/s_drawpix.c \
swrast/s_feedback.c \
swrast/s_fog.c \
- swrast/s_histogram.c \
swrast/s_imaging.c \
swrast/s_lines.c \
swrast/s_logic.c \
-# $Id: Makefile.X11,v 1.74 2003/03/01 01:50:20 brianp Exp $
+# $Id: Makefile.X11,v 1.75 2003/03/25 02:26:29 brianp Exp $
# Mesa 3-D graphics library
# Version: 5.0
swrast/s_drawpix.c \
swrast/s_feedback.c \
swrast/s_fog.c \
- swrast/s_histogram.c \
swrast/s_imaging.c \
swrast/s_lines.c \
swrast/s_logic.c \
swrast/s_drawpix.c \
swrast/s_feedback.c \
swrast/s_fog.c \
- swrast/s_histogram.c \
swrast/s_imaging.c \
swrast/s_lines.c \
swrast/s_logic.c \
swrast\s_drawpix.c \
swrast\s_feedback.c \
swrast\s_fog.c \
- swrast\s_histogram.c \
swrast\s_imaging.c \
swrast\s_lines.c \
swrast\s_logic.c \
[.swrast]s_drawpix.c \
[.swrast]s_fog.c \
[.swrast]s_feedback.c \
-[.swrast]s_histogram.c \
[.swrast]s_imaging.c \
[.swrast]s_lines.c \
[.swrast]s_logic.c \
OBJECTS9=[.swrast]s_drawpix.obj,\
[.swrast]s_fog.obj,\
-[.swrast]s_histogram.obj,\
[.swrast]s_imaging.obj,\
[.swrast]s_lines.obj,\
[.swrast]s_logic.obj,\
$(CC) $(CFLAGS) /obj=[.swrast]s_feedback.obj [.swrast]s_feedback.c
[.swrast]s_fog.obj : [.swrast]s_fog.c
$(CC) $(CFLAGS) /obj=[.swrast]s_fog.obj [.swrast]s_fog.c
-[.swrast]s_histogram.obj : [.swrast]s_histogram.c
- $(CC) $(CFLAGS) /obj=[.swrast]s_histogram.obj [.swrast]s_histogram.c
[.swrast]s_imaging.obj : [.swrast]s_imaging.c
$(CC) $(CFLAGS) /obj=[.swrast]s_imaging.obj [.swrast]s_imaging.c
[.swrast]s_lines.obj : [.swrast]s_lines.c
-/* $Id: histogram.c,v 1.12 2003/03/01 01:50:21 brianp Exp $ */
+/* $Id: histogram.c,v 1.13 2003/03/25 02:26:29 brianp Exp $ */
/*
* Mesa 3-D graphics library
#include "histogram.h"
+/**********************************************************************
+ * Internal functions
+ */
+
+
+/*
+ * Update the min/max values from an array of fragment colors.
+ */
+void
+_mesa_update_minmax(GLcontext *ctx, GLuint n, const GLfloat rgba[][4])
+{
+ GLuint i;
+ for (i = 0; i < n; i++) {
+ /* update mins */
+ if (rgba[i][RCOMP] < ctx->MinMax.Min[RCOMP])
+ ctx->MinMax.Min[RCOMP] = rgba[i][RCOMP];
+ if (rgba[i][GCOMP] < ctx->MinMax.Min[GCOMP])
+ ctx->MinMax.Min[GCOMP] = rgba[i][GCOMP];
+ if (rgba[i][BCOMP] < ctx->MinMax.Min[BCOMP])
+ ctx->MinMax.Min[BCOMP] = rgba[i][BCOMP];
+ if (rgba[i][ACOMP] < ctx->MinMax.Min[ACOMP])
+ ctx->MinMax.Min[ACOMP] = rgba[i][ACOMP];
+
+ /* update maxs */
+ if (rgba[i][RCOMP] > ctx->MinMax.Max[RCOMP])
+ ctx->MinMax.Max[RCOMP] = rgba[i][RCOMP];
+ if (rgba[i][GCOMP] > ctx->MinMax.Max[GCOMP])
+ ctx->MinMax.Max[GCOMP] = rgba[i][GCOMP];
+ if (rgba[i][BCOMP] > ctx->MinMax.Max[BCOMP])
+ ctx->MinMax.Max[BCOMP] = rgba[i][BCOMP];
+ if (rgba[i][ACOMP] > ctx->MinMax.Max[ACOMP])
+ ctx->MinMax.Max[ACOMP] = rgba[i][ACOMP];
+ }
+}
+
+
+/*
+ * Update the histogram values from an array of fragment colors.
+ */
+void
+_mesa_update_histogram(GLcontext *ctx, GLuint n, const GLfloat rgba[][4])
+{
+ const GLint max = ctx->Histogram.Width - 1;
+ GLfloat w = (GLfloat) max;
+ GLuint i;
+
+ if (ctx->Histogram.Width == 0)
+ return;
+
+ for (i = 0; i < n; i++) {
+ GLint ri = IROUND(rgba[i][RCOMP] * w);
+ GLint gi = IROUND(rgba[i][GCOMP] * w);
+ GLint bi = IROUND(rgba[i][BCOMP] * w);
+ GLint ai = IROUND(rgba[i][ACOMP] * w);
+ ri = CLAMP(ri, 0, max);
+ gi = CLAMP(gi, 0, max);
+ bi = CLAMP(bi, 0, max);
+ ai = CLAMP(ai, 0, max);
+ ctx->Histogram.Count[ri][RCOMP]++;
+ ctx->Histogram.Count[gi][GCOMP]++;
+ ctx->Histogram.Count[bi][BCOMP]++;
+ ctx->Histogram.Count[ai][ACOMP]++;
+ }
+}
+
+
/*
* XXX the packed pixel formats haven't been tested.
*/
}
+
+/**********************************************************************
+ * API functions
+ */
+
+
void
_mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
{
-/* $Id: histogram.h,v 1.4 2002/10/24 23:57:21 brianp Exp $ */
+/* $Id: histogram.h,v 1.5 2003/03/25 02:26:29 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 4.1
+ * Version: 5.1
*
- * Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2003 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"),
#include "mtypes.h"
+extern void
+_mesa_update_minmax(GLcontext *ctx, GLuint n, const GLfloat rgba[][4]);
+
+extern void
+_mesa_update_histogram(GLcontext *ctx, GLuint n, const GLfloat rgba[][4]);
+
+
extern void _mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values);
extern void _mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
extern void _mesa_ResetMinmax(GLenum target);
-extern void
-_mesa_update_minmax(GLcontext *ctx, GLuint n, const GLfloat rgba[][4]);
-
-extern void
-_mesa_update_histogram(GLcontext *ctx, GLuint n, const GLfloat rgba[][4]);
-
-
#endif