Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/render/intern/include/rendercore.h')
-rw-r--r--source/blender/render/intern/include/rendercore.h117
1 files changed, 117 insertions, 0 deletions
diff --git a/source/blender/render/intern/include/rendercore.h b/source/blender/render/intern/include/rendercore.h
new file mode 100644
index 00000000000..6138fbc3e3a
--- /dev/null
+++ b/source/blender/render/intern/include/rendercore.h
@@ -0,0 +1,117 @@
+/*
+ * rendercore_ext.h
+ *
+ * $Id$
+ *
+ * ***** BEGIN GPL/BL DUAL 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ */
+
+#ifndef RENDERCORE_H
+#define RENDERCORE_H
+#include "render_types.h"
+
+struct HaloRen;
+
+float mistfactor(float *co); /* dist en hoogte, return alpha */
+/* void sky(char *col); */
+void renderspothalo(unsigned short *col);
+void render_lighting_halo(struct HaloRen *har, float *colf);
+unsigned int calchalo_z(struct HaloRen *har, unsigned int zz);
+float CookTorr(float *n, float *l, float *v, int hard);
+void shadelamplus(void);
+/* void renderflare(struct HaloRen *har); */
+void add_halo_flare(void);
+
+/**
+ * Apply the background (sky). Depending on the active alphamode and
+ * worldmode, different filling strategies are applied.
+ * Active alphamode = R.r.alphamode
+ * Active worldmode = R.wrld.mode
+ * <LI>
+ * <IT> R_ALPHAPREMUL - do not fill sky, but apply alpha to colours
+ * <IT> R_ALPHAKEY - do not fill sky, do not apply alpha to colours
+ * <IT> R_ADDSKY - fill skycolour in the background, blend
+ * transparent colours with the background
+ * (there's also a world dependency here?
+ * <LI>
+ * <IT> R.wrld.mode == WO_MIST
+ * <IT> R.r.bufflag == 1, R.flag == R_SEC_FIELD
+ * <IT> R.wrld.skytype == ( WO_SKYBLEND ^ WO_SKYTEX)
+ * <IT> R.wrld.skytype == WO_SKYPAPER
+ * <IT> R.r.mode == R_PANORAMA )
+ * </LI>
+ * </LI>
+ * @param rect
+ * @param y
+ */
+void scanlinesky(char *rect, int y);
+
+/**
+ * Do z buffer stuff.
+ */
+void zbufshade(void);
+
+/**
+ * Insert transparent faces into the z buffer?
+ */
+void zbufshadeDA(void); /* Delta Accum Pixel Struct */
+
+/**
+ * Also called in: zbuf.c
+ */
+void shadepixel(float x, float y, int vlaknr);
+
+/**
+ * Shade the pixel at xn, yn for halo har, and write the result to col.
+ * Also called in: previewrender.c
+ * @param har The halo to be rendered on this location
+ * @param col [unsigned int 3] The destination colour vector
+ * @param zz Some kind of distance
+ * @param dist Square of the distance of this coordinate to the halo's center
+ * @param x [f] Pixel x relative to center
+ * @param y [f] Pixel y relative to center
+ * @param flarec Flare counter? Always har->flarec...
+ */
+/* void shadehalo(struct HaloRen *har, char *col, unsigned int zz, float dist, float x, float y, short flarec); */
+
+/**
+ * A cryptic but very efficient way of counting the number of bits that
+ * is set in the unsigned short.
+ */
+int count_mask(unsigned short mask);
+
+/* These defines are only used internally :) */
+/* dirty hack: pointers are negative, indices positive */
+/* pointers should be converted to positive numbers */
+
+#define IS_A_POINTER_CODE(a) ((a)<0)
+#define POINTER_FROM_CODE(a) ((void *)(-(a)))
+#define POINTER_TO_CODE(a) (-(long)(a))
+
+#endif /* RENDER_EXT_H */