* Volume rendering
[blender-staging.git] / source / blender / render / intern / include / texture.h
index c10e7a61851119be604423ab3e74891ef7005dc3..08c4ee5df98140b067cb9c523ba29c547e3e577a 100644 (file)
@@ -3,15 +3,12 @@
  *
  * $Id$
  *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 
 #ifndef TEXTURE_EXT_H
-#define TEXTURE_EXT_H "$Id$"
-#define TEXTURE_EXT_H "Copyright (C) 2001 NaN Technologies B.V.
+#define TEXTURE_EXT_H
 
-/* no types!!! */
-/*  #include "texture_types.h" */
+#define BRICONT                texres->tin= (texres->tin-0.5)*tex->contrast+tex->bright-0.5; \
+if(texres->tin<0.0) texres->tin= 0.0; else if(texres->tin>1.0) texres->tin= 1.0;
+
+#define BRICONTRGB     texres->tr= tex->rfac*((texres->tr-0.5)*tex->contrast+tex->bright-0.5); \
+if(texres->tr<0.0) texres->tr= 0.0; \
+texres->tg= tex->gfac*((texres->tg-0.5)*tex->contrast+tex->bright-0.5); \
+if(texres->tg<0.0) texres->tg= 0.0; \
+texres->tb= tex->bfac*((texres->tb-0.5)*tex->contrast+tex->bright-0.5); \
+if(texres->tb<0.0) texres->tb= 0.0; 
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
 
-struct Tex;
-struct MTex;
 struct HaloRen;
-struct LampRen;
-/**
- * Takes uv coordinates (R.uv[], O.dxuv, O.dyuv), find texture colour
- * at that spot (using imagewrap()). 
- * Result is kept in R.vcol (float vector 3)
- */
-void render_realtime_texture(void);
+struct ShadeInput;
+struct TexResult;
+struct Tex;
+struct Image;
+struct ImBuf;
 
-/**
- * Do texture mapping for materials. Communicates with R.... variables.
- */
-void do_material_tex(void);
+/* texture.h */
 
-/* unsorted */
-int blend(struct Tex *tex, float *texvec);
-int clouds(struct Tex *tex, float *texvec);
-int cubemap(struct MTex *mtex, float x, float y, float z, float *adr1, float *adr2);
-int cubemap_glob(struct MTex *mtex, float x, float y, float z, float *adr1, float *adr2);
-int cubemap_ob(struct MTex *mtex, float x, float y, float z, float *adr1, float *adr2);
-void do_2d_mapping(struct MTex *mtex, float *t, float *dxt, float *dyt);
 void do_halo_tex(struct HaloRen *har, float xn, float yn, float *colf);
-void do_lamp_tex(struct LampRen *la, float *lavec);
-void do_sky_tex(void);
-int magic(struct Tex *tex, float *texvec);
-int marble(struct Tex *tex, float *texvec);
-int multitex(struct Tex *tex, float *texvec, float *dxt, float *dyt);
-int plugintex(struct Tex *tex, float *texvec, float *dxt, float *dyt);
-int stucci(struct Tex *tex, float *texvec);
-int texnoise(struct Tex *tex);
-int wood(struct Tex *tex, float *texvec);
+void do_sky_tex(float *rco, float *lo, float *dxyview, float *hor, float *zen, float *blend, int skyflag);
+void do_material_tex(struct ShadeInput *shi);
+void do_lamp_tex(LampRen *la, float *lavec, struct ShadeInput *shi, float *colf);
+void do_volume_tex(ShadeInput *shi, float *xyz, float *col, float *alpha, float *emit);
+
+void init_render_textures(Render *re);
+
+void render_realtime_texture(struct ShadeInput *shi, struct Image *ima);
+
+/* imagetexture.h */
+
+int imagewraposa(struct Tex *tex, struct Image *ima, struct ImBuf *ibuf, float *texvec, float *dxt, float *dyt, struct TexResult *texres);
+int imagewrap(struct Tex *tex, struct Image *ima, struct ImBuf *ibuf, float *texvec, struct TexResult *texres);
+void image_sample(struct Image *ima, float fx, float fy, float dx, float dy, float *result);
 
 #endif /* TEXTURE_EXT_H */