mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
comments, clean-ups, added lots of const qualifiers
This commit is contained in:
parent
cab83b8aa9
commit
ca209ae1f9
1 changed files with 78 additions and 53 deletions
|
|
@ -1,10 +1,10 @@
|
|||
/* $Id: m_norm_tmp.h,v 1.8 2001/06/28 17:34:14 keithw Exp $ */
|
||||
/* $Id: m_norm_tmp.h,v 1.9 2002/01/05 14:12:24 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 3.5
|
||||
* Version: 4.1
|
||||
*
|
||||
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 1999-2002 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"),
|
||||
|
|
@ -28,9 +28,22 @@
|
|||
* New (3.1) transformation code written by Keith Whitwell.
|
||||
*/
|
||||
|
||||
/* Functions to tranform a vector of normals. This includes applying
|
||||
* the transformation matrix, rescaling and normalization.
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
#include "m_vertices.h"
|
||||
|
||||
|
||||
/*
|
||||
* mat - the 4x4 transformation matrix
|
||||
* scale - uniform scale factor of the transformation matrix (not always used)
|
||||
* in - the source vector of normals
|
||||
* lengths - length of each incoming normal (may be NULL) (a display list
|
||||
* optimization)
|
||||
* dest - the destination vector of normals
|
||||
*/
|
||||
static void _XFORMAPI
|
||||
TAG(transform_normalize_normals)( const GLmatrix *mat,
|
||||
GLfloat scale,
|
||||
|
|
@ -38,15 +51,15 @@ TAG(transform_normalize_normals)( const GLmatrix *mat,
|
|||
const GLfloat *lengths,
|
||||
GLvector3f *dest )
|
||||
{
|
||||
GLuint i;
|
||||
const GLfloat *from = in->start;
|
||||
GLuint stride = in->stride;
|
||||
GLuint count = in->count;
|
||||
GLfloat (*out)[3] = (GLfloat (*)[3])dest->start;
|
||||
GLfloat *m = mat->inv;
|
||||
const GLfloat *from = in->start;
|
||||
const GLuint stride = in->stride;
|
||||
const GLuint count = in->count;
|
||||
const GLfloat *m = mat->inv;
|
||||
GLfloat m0 = m[0], m4 = m[4], m8 = m[8];
|
||||
GLfloat m1 = m[1], m5 = m[5], m9 = m[9];
|
||||
GLfloat m2 = m[2], m6 = m[6], m10 = m[10];
|
||||
GLuint i;
|
||||
|
||||
if (!lengths) {
|
||||
STRIDE_LOOP {
|
||||
|
|
@ -65,8 +78,7 @@ TAG(transform_normalize_normals)( const GLmatrix *mat,
|
|||
out[i][1] = (GLfloat) (ty * scale);
|
||||
out[i][2] = (GLfloat) (tz * scale);
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
out[i][0] = out[i][1] = out[i][2] = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -106,15 +118,16 @@ TAG(transform_normalize_normals_no_rot)( const GLmatrix *mat,
|
|||
const GLfloat *lengths,
|
||||
GLvector3f *dest )
|
||||
{
|
||||
GLuint i;
|
||||
const GLfloat *from = in->start;
|
||||
GLuint stride = in->stride;
|
||||
GLuint count = in->count;
|
||||
GLfloat (*out)[3] = (GLfloat (*)[3])dest->start;
|
||||
GLfloat *m = mat->inv;
|
||||
const GLfloat *from = in->start;
|
||||
const GLuint stride = in->stride;
|
||||
const GLuint count = in->count;
|
||||
const GLfloat *m = mat->inv;
|
||||
GLfloat m0 = m[0];
|
||||
GLfloat m5 = m[5];
|
||||
GLfloat m10 = m[10];
|
||||
GLuint i;
|
||||
|
||||
if (!lengths) {
|
||||
STRIDE_LOOP {
|
||||
GLfloat tx, ty, tz;
|
||||
|
|
@ -132,8 +145,7 @@ TAG(transform_normalize_normals_no_rot)( const GLmatrix *mat,
|
|||
out[i][1] = (GLfloat) (ty * scale);
|
||||
out[i][2] = (GLfloat) (tz * scale);
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
out[i][0] = out[i][1] = out[i][2] = 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -171,16 +183,18 @@ TAG(transform_rescale_normals_no_rot)( const GLmatrix *mat,
|
|||
const GLfloat *lengths,
|
||||
GLvector3f *dest )
|
||||
{
|
||||
GLuint i;
|
||||
const GLfloat *from = in->start;
|
||||
GLuint stride = in->stride;
|
||||
GLuint count = in->count;
|
||||
GLfloat (*out)[3] = (GLfloat (*)[3])dest->start;
|
||||
const GLfloat *from = in->start;
|
||||
const GLuint stride = in->stride;
|
||||
const GLuint count = in->count;
|
||||
const GLfloat *m = mat->inv;
|
||||
GLfloat m0 = scale*m[0];
|
||||
GLfloat m5 = scale*m[5];
|
||||
GLfloat m10 = scale*m[10];
|
||||
const GLfloat m0 = scale*m[0];
|
||||
const GLfloat m5 = scale*m[5];
|
||||
const GLfloat m10 = scale*m[10];
|
||||
GLuint i;
|
||||
|
||||
(void) lengths;
|
||||
|
||||
STRIDE_LOOP {
|
||||
GLfloat ux = from[0], uy = from[1], uz = from[2];
|
||||
out[i][0] = ux * m0;
|
||||
|
|
@ -190,6 +204,7 @@ TAG(transform_rescale_normals_no_rot)( const GLmatrix *mat,
|
|||
dest->count = in->count;
|
||||
}
|
||||
|
||||
|
||||
static void _XFORMAPI
|
||||
TAG(transform_rescale_normals)( const GLmatrix *mat,
|
||||
GLfloat scale,
|
||||
|
|
@ -197,19 +212,21 @@ TAG(transform_rescale_normals)( const GLmatrix *mat,
|
|||
const GLfloat *lengths,
|
||||
GLvector3f *dest )
|
||||
{
|
||||
GLuint i;
|
||||
const GLfloat *from = in->start;
|
||||
GLuint stride = in->stride;
|
||||
GLuint count = in->count;
|
||||
GLfloat (*out)[3] = (GLfloat (*)[3])dest->start;
|
||||
const GLfloat *from = in->start;
|
||||
const GLuint stride = in->stride;
|
||||
const GLuint count = in->count;
|
||||
/* Since we are unlikely to have < 3 vertices in the buffer,
|
||||
* it makes sense to pre-multiply by scale.
|
||||
*/
|
||||
const GLfloat *m = mat->inv;
|
||||
GLfloat m0 = scale*m[0], m4 = scale*m[4], m8 = scale*m[8];
|
||||
GLfloat m1 = scale*m[1], m5 = scale*m[5], m9 = scale*m[9];
|
||||
GLfloat m2 = scale*m[2], m6 = scale*m[6], m10 = scale*m[10];
|
||||
const GLfloat m0 = scale*m[0], m4 = scale*m[4], m8 = scale*m[8];
|
||||
const GLfloat m1 = scale*m[1], m5 = scale*m[5], m9 = scale*m[9];
|
||||
const GLfloat m2 = scale*m[2], m6 = scale*m[6], m10 = scale*m[10];
|
||||
GLuint i;
|
||||
|
||||
(void) lengths;
|
||||
|
||||
STRIDE_LOOP {
|
||||
GLfloat ux = from[0], uy = from[1], uz = from[2];
|
||||
out[i][0] = ux * m0 + uy * m1 + uz * m2;
|
||||
|
|
@ -227,17 +244,19 @@ TAG(transform_normals_no_rot)( const GLmatrix *mat,
|
|||
const GLfloat *lengths,
|
||||
GLvector3f *dest )
|
||||
{
|
||||
GLuint i;
|
||||
const GLfloat *from = in->start;
|
||||
GLuint stride = in->stride;
|
||||
GLuint count = in->count;
|
||||
GLfloat (*out)[3] = (GLfloat (*)[3])dest->start;
|
||||
const GLfloat *from = in->start;
|
||||
const GLuint stride = in->stride;
|
||||
const GLuint count = in->count;
|
||||
const GLfloat *m = mat->inv;
|
||||
GLfloat m0 = m[0];
|
||||
GLfloat m5 = m[5];
|
||||
GLfloat m10 = m[10];
|
||||
const GLfloat m0 = m[0];
|
||||
const GLfloat m5 = m[5];
|
||||
const GLfloat m10 = m[10];
|
||||
GLuint i;
|
||||
|
||||
(void) scale;
|
||||
(void) lengths;
|
||||
|
||||
STRIDE_LOOP {
|
||||
GLfloat ux = from[0], uy = from[1], uz = from[2];
|
||||
out[i][0] = ux * m0;
|
||||
|
|
@ -255,17 +274,19 @@ TAG(transform_normals)( const GLmatrix *mat,
|
|||
const GLfloat *lengths,
|
||||
GLvector3f *dest )
|
||||
{
|
||||
GLuint i;
|
||||
const GLfloat *from = in->start;
|
||||
GLuint stride = in->stride;
|
||||
GLuint count = in->count;
|
||||
GLfloat (*out)[3] = (GLfloat (*)[3])dest->start;
|
||||
const GLfloat *from = in->start;
|
||||
const GLuint stride = in->stride;
|
||||
const GLuint count = in->count;
|
||||
const GLfloat *m = mat->inv;
|
||||
GLfloat m0 = m[0], m4 = m[4], m8 = m[8];
|
||||
GLfloat m1 = m[1], m5 = m[5], m9 = m[9];
|
||||
GLfloat m2 = m[2], m6 = m[6], m10 = m[10];
|
||||
const GLfloat m0 = m[0], m4 = m[4], m8 = m[8];
|
||||
const GLfloat m1 = m[1], m5 = m[5], m9 = m[9];
|
||||
const GLfloat m2 = m[2], m6 = m[6], m10 = m[10];
|
||||
GLuint i;
|
||||
|
||||
(void) scale;
|
||||
(void) lengths;
|
||||
|
||||
STRIDE_LOOP {
|
||||
GLfloat ux = from[0], uy = from[1], uz = from[2];
|
||||
out[i][0] = ux * m0 + uy * m1 + uz * m2;
|
||||
|
|
@ -283,13 +304,15 @@ TAG(normalize_normals)( const GLmatrix *mat,
|
|||
const GLfloat *lengths,
|
||||
GLvector3f *dest )
|
||||
{
|
||||
GLuint i;
|
||||
const GLfloat *from = in->start;
|
||||
GLuint stride = in->stride;
|
||||
GLuint count = in->count;
|
||||
GLfloat (*out)[3] = (GLfloat (*)[3])dest->start;
|
||||
const GLfloat *from = in->start;
|
||||
const GLuint stride = in->stride;
|
||||
const GLuint count = in->count;
|
||||
GLuint i;
|
||||
|
||||
(void) mat;
|
||||
(void) scale;
|
||||
|
||||
if (lengths) {
|
||||
STRIDE_LOOP {
|
||||
const GLfloat x = from[0], y = from[1], z = from[2];
|
||||
|
|
@ -327,13 +350,15 @@ TAG(rescale_normals)( const GLmatrix *mat,
|
|||
const GLfloat *lengths,
|
||||
GLvector3f *dest )
|
||||
{
|
||||
GLuint i;
|
||||
const GLfloat *from = in->start;
|
||||
GLuint stride = in->stride;
|
||||
GLuint count = in->count;
|
||||
GLfloat (*out)[3] = (GLfloat (*)[3])dest->start;
|
||||
const GLfloat *from = in->start;
|
||||
const GLuint stride = in->stride;
|
||||
const GLuint count = in->count;
|
||||
GLuint i;
|
||||
|
||||
(void) mat;
|
||||
(void) lengths;
|
||||
|
||||
STRIDE_LOOP {
|
||||
SCALE_SCALAR_3V( out[i], scale, from );
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue