* crash fix in volume render, less reliance on global R
[blender.git] / source / blender / render / intern / include / pixelshading.h
1 /*
2  * $Id$
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version. 
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  *
20  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
21  * All rights reserved.
22  *
23  * Contributor(s): 2004-2006, Blender Foundation, full recode
24  *
25  * ***** END GPL LICENSE BLOCK *****
26  */
27
28 /* pixelshading.h
29 *
30 * These functions determine what actual color a pixel will have.
31 */
32
33
34 #ifndef PIXELSHADING_H
35 #define PIXELSHADING_H
36
37 /**
38  * Render the pixel at (x,y) for object ap. Apply the jitter mask. 
39  * Output is given in float collector[4]. The type vector:
40  * t[0] - min. distance
41  * t[1] - face/halo index
42  * t[2] - jitter mask                     
43  * t[3] - type ZB_POLY or ZB_HALO
44  * t[4] - max. distance
45  * mask is pixel coverage in bits
46  * @return pointer to the object
47  */
48 int shadeHaloFloat(HaloRen *har, 
49                                         float *col, int zz, 
50                                         float dist, float xn, 
51                                         float yn, short flarec);
52
53 /**
54  * Render the sky at pixel (x, y).
55  */
56 void shadeSkyPixel(float *collector, float fx, float fy, short thread);
57 void shadeSkyView(float *colf, float *rco, float *view, float *dxyview, short thread);
58 void shadeAtmPixel(struct SunSky *sunsky, float *collector, float fx, float fy, float distance);
59 void shadeSunView(float *colf, float *view);
60 /* ------------------------------------------------------------------------- */
61
62 #endif
63