summaryrefslogtreecommitdiffstats
path: root/src/mesa/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/Makefile.BeOS-R51
-rw-r--r--src/mesa/main/Makefile.DJ1
-rw-r--r--src/mesa/main/Makefile.OSMesa163
-rw-r--r--src/mesa/main/Makefile.X113
-rw-r--r--src/mesa/main/Makefile.ugl1
-rw-r--r--src/mesa/main/Makefile.win1
-rw-r--r--src/mesa/main/descrip.mms4
-rw-r--r--src/mesa/main/histogram.c74
-rw-r--r--src/mesa/main/histogram.h20
9 files changed, 85 insertions, 23 deletions
diff --git a/src/mesa/main/Makefile.BeOS-R5 b/src/mesa/main/Makefile.BeOS-R5
index 8ae0efcf1da..c1da7f3f072 100644
--- a/src/mesa/main/Makefile.BeOS-R5
+++ b/src/mesa/main/Makefile.BeOS-R5
@@ -132,7 +132,6 @@ MESA_CORE_SRCS = \
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 \
diff --git a/src/mesa/main/Makefile.DJ b/src/mesa/main/Makefile.DJ
index 33e6ca5d448..971769d779f 100644
--- a/src/mesa/main/Makefile.DJ
+++ b/src/mesa/main/Makefile.DJ
@@ -173,7 +173,6 @@ CORE_SOURCES = \
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 \
diff --git a/src/mesa/main/Makefile.OSMesa16 b/src/mesa/main/Makefile.OSMesa16
index 7a7b0f11bfb..3ed54c4969a 100644
--- a/src/mesa/main/Makefile.OSMesa16
+++ b/src/mesa/main/Makefile.OSMesa16
@@ -1,4 +1,4 @@
-# $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
@@ -103,7 +103,6 @@ CORE_SOURCES = \
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 \
diff --git a/src/mesa/main/Makefile.X11 b/src/mesa/main/Makefile.X11
index 7a8e8f0b415..d95a565a16e 100644
--- a/src/mesa/main/Makefile.X11
+++ b/src/mesa/main/Makefile.X11
@@ -1,4 +1,4 @@
-# $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
@@ -102,7 +102,6 @@ CORE_SOURCES = \
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 \
diff --git a/src/mesa/main/Makefile.ugl b/src/mesa/main/Makefile.ugl
index bcecd7afb7c..20452e44a43 100644
--- a/src/mesa/main/Makefile.ugl
+++ b/src/mesa/main/Makefile.ugl
@@ -130,7 +130,6 @@ GL_SOURCES = \
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 \
diff --git a/src/mesa/main/Makefile.win b/src/mesa/main/Makefile.win
index 2acbce0ced1..d4a45547c6c 100644
--- a/src/mesa/main/Makefile.win
+++ b/src/mesa/main/Makefile.win
@@ -91,7 +91,6 @@ CORE_SRCS = \
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 \
diff --git a/src/mesa/main/descrip.mms b/src/mesa/main/descrip.mms
index f0c8a1c34ec..345c3e61301 100644
--- a/src/mesa/main/descrip.mms
+++ b/src/mesa/main/descrip.mms
@@ -97,7 +97,6 @@ RASTER_SOURCES = [.swrast]s_aatriangle.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 \
@@ -239,7 +238,6 @@ OBJECTS8=[.swrast]s_aatriangle.obj,\
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,\
@@ -435,8 +433,6 @@ imports.obj : imports.c
$(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
diff --git a/src/mesa/main/histogram.c b/src/mesa/main/histogram.c
index 2eca44f02ff..e96c990f584 100644
--- a/src/mesa/main/histogram.c
+++ b/src/mesa/main/histogram.c
@@ -1,4 +1,4 @@
-/* $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
@@ -32,6 +32,72 @@
#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.
*/
@@ -591,6 +657,12 @@ base_histogram_format( GLenum format )
}
+
+/**********************************************************************
+ * API functions
+ */
+
+
void
_mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
{
diff --git a/src/mesa/main/histogram.h b/src/mesa/main/histogram.h
index 3cff4d0db5e..f929b0513c2 100644
--- a/src/mesa/main/histogram.h
+++ b/src/mesa/main/histogram.h
@@ -1,10 +1,10 @@
-/* $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"),
@@ -32,6 +32,13 @@
#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);
@@ -52,11 +59,4 @@ extern void _mesa_ResetHistogram(GLenum target);
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