Merge branch 'origin'
[mesa.git] / src / mesa / math / m_translate.h
index 55ac887e2411012046e20bf2a4abdb5d5f6fe2e9..0bcf96005c79213251899d12148b7c0376e9dedb 100644 (file)
@@ -1,21 +1,19 @@
-/* $Id: m_translate.h,v 1.5 2001/02/20 18:28:52 keithw Exp $ */
-
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
- * 
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
- * 
+ * Version:  6.5.1
+ *
+ * Copyright (C) 1999-2006  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"),
  * to deal in the Software without restriction, including without limitation
  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  * and/or sell copies of the Software, and to permit persons to whom the
  * Software is furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included
  * in all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 #include "mtypes.h"            /* hack for GLchan */
 
 
+/**
+ * Array translation.
+ * For example, convert array of GLushort[3] to GLfloat[4].
+ * The function name specifies the destination format/size.
+ * \param  to  the destination address
+ * \param  ptr  the source address
+ * \param  stride  the source stride (in bytes) between elements
+ * \param  type  the source datatype (GL_SHORT, GL_UNSIGNED_INT, etc)
+ * \param  size  number of values per element in source array (1,2,3 or 4)
+ * \param  start  first element in source array to convert
+ * \param  n  number of elements to convert
+ *
+ * Note: "element" means a tuple like GLfloat[3] or GLubyte[4].
+ */
+
 
 extern void _math_trans_1f(GLfloat *to,
                           CONST void *ptr,
@@ -78,6 +91,7 @@ extern void _math_trans_4us(GLushort (*to)[4],
                            GLuint start,
                            GLuint n );
 
+/** Convert to floats w/out normalization (i.e. just cast) */
 extern void _math_trans_4f(GLfloat (*to)[4],
                           CONST void *ptr,
                           GLuint stride,
@@ -86,7 +100,16 @@ extern void _math_trans_4f(GLfloat (*to)[4],
                           GLuint start,
                           GLuint n );
 
-extern void _math_trans_3f(GLfloat (*to)[3],
+/** Convert to normalized floats in [0,1] or [-1, 1] */
+extern void _math_trans_4fn(GLfloat (*to)[4],
+                           CONST void *ptr,
+                           GLuint stride,
+                           GLenum type,
+                           GLuint size,
+                           GLuint start,
+                           GLuint n );
+
+extern void _math_trans_3fn(GLfloat (*to)[3],
                           CONST void *ptr,
                           GLuint stride,
                           GLenum type,