[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [10843] branches/soc-2007-maike/source/ blender/include: GLSL structures and prototypes
Miguel Torres Lima
torreslima at gmail.com
Fri Jun 1 18:39:04 CEST 2007
Revision: 10843
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10843
Author: maike
Date: 2007-06-01 18:39:04 +0200 (Fri, 01 Jun 2007)
Log Message:
-----------
GLSL structures and prototypes
Modified Paths:
--------------
branches/soc-2007-maike/source/blender/include/BIF_glsl_light.h
Added Paths:
-----------
branches/soc-2007-maike/source/blender/include/BIF_glsl_diffuse.h
branches/soc-2007-maike/source/blender/include/BIF_glsl_material.h
branches/soc-2007-maike/source/blender/include/BIF_glsl_program.h
branches/soc-2007-maike/source/blender/include/BIF_glsl_specular.h
branches/soc-2007-maike/source/blender/include/BIF_glsl_util.h
Added: branches/soc-2007-maike/source/blender/include/BIF_glsl_diffuse.h
===================================================================
--- branches/soc-2007-maike/source/blender/include/BIF_glsl_diffuse.h (rev 0)
+++ branches/soc-2007-maike/source/blender/include/BIF_glsl_diffuse.h 2007-06-01 16:39:04 UTC (rev 10843)
@@ -0,0 +1,8 @@
+
+char *set_diffuse(short lamp);
+
+char *glsl_lambert(short lamp);
+char *glsl_orennayar(short lamp);
+char *glsl_difftoon(short lamp);
+char *glsl_minnaert(short lamp);
+char *glsl_fresnel(short lamp);
Modified: branches/soc-2007-maike/source/blender/include/BIF_glsl_light.h
===================================================================
--- branches/soc-2007-maike/source/blender/include/BIF_glsl_light.h 2007-06-01 16:37:30 UTC (rev 10842)
+++ branches/soc-2007-maike/source/blender/include/BIF_glsl_light.h 2007-06-01 16:39:04 UTC (rev 10843)
@@ -100,6 +100,9 @@
struct Lamp;
struct Object;
+int glsl_get_num_lights(void);
+GLSL_LightList glsl_get_lights(void);
+
void glsl_init_scene_light(struct Lamp *lamp, struct Object *obj);
void glsl_free_light_structs(void);
void glsl_create_light(struct Lamp *lamp, struct Object *obj);
Added: branches/soc-2007-maike/source/blender/include/BIF_glsl_material.h
===================================================================
--- branches/soc-2007-maike/source/blender/include/BIF_glsl_material.h (rev 0)
+++ branches/soc-2007-maike/source/blender/include/BIF_glsl_material.h 2007-06-01 16:39:04 UTC (rev 10843)
@@ -0,0 +1,44 @@
+#define GLSL_HASH 0 /* used to decide which hash is used, a global or a local hash */
+#define GLSL_LOCALHASH 1
+
+struct GLSL_Program_;
+struct Material;
+struct Object;
+struct GHash;
+
+
+
+/* GLSL Material - structure used for materials control used by GLSL */
+
+typedef struct GLSL_Material_ *GLSL_Material;
+
+struct GLSL_Material_
+{
+ short diffuse_shader; /* diffuse shader type */
+ short specular_shader; /* specular shader type */
+
+ struct Material *mat; /* pointer to blender material */
+
+ struct GLSL_Program_ *shaded_program; /* pointer to GLSL_Program structure for shaded mode */
+ struct GLSL_Program_ *textured_program; /* pointer to GLSL_Program structure for textured mode */
+};
+
+
+
+void glsl_init_ghash(void);
+void glsl_delete_ghash(void);
+
+void glsl_init_def_material(struct Material *mat);
+void glsl_delete_def_material(void);
+
+GLSL_Material glsl_create_material(struct Material *mat, short type, struct GHash *hash);
+void glsl_update_material(struct Material *mat);
+void glsl_delete_material(struct Material *mat);
+
+void glsl_free_material_structs(void);
+
+void glsl_do_layer_change(int lay);
+void glsl_copy_object_material(struct Material **mat, struct GHash *hash, int totcol);
+void glsl_delete_unused_material(void);
+
+void glsl_init_material_programs(void);
Added: branches/soc-2007-maike/source/blender/include/BIF_glsl_program.h
===================================================================
--- branches/soc-2007-maike/source/blender/include/BIF_glsl_program.h (rev 0)
+++ branches/soc-2007-maike/source/blender/include/BIF_glsl_program.h 2007-06-01 16:39:04 UTC (rev 10843)
@@ -0,0 +1,71 @@
+#define GLSL_NUM_SHADER 10
+
+
+typedef unsigned int GLuint;
+
+typedef struct GLSL_Program_ *GLSL_Program;
+
+/* ------------------------------------------------ */
+/* Vertex Shader Structures */
+/* ------------------------------------------------ */
+
+struct GLSL_VertexShader_
+{
+ GLuint shader;
+ char *vertex_shader;
+};
+
+
+
+/* ------------------------------------------------ */
+/* Fragment Shader Structures */
+/* ------------------------------------------------ */
+
+struct GLSL_FragmentShader_
+{
+ GLuint shader;
+ char *fragment_shader;
+};
+
+
+
+/* ------------------------------------------------ */
+/* Program Structures */
+/* ------------------------------------------------ */
+
+struct GLSL_Program_
+{
+ GLuint program; /* handler return by glCreateProgram() */
+ GLuint *vertex_shaders; /* pointer array to vertex shaders' handlers */
+ GLuint *fragment_shaders; /* pointer array to fragment shaders' handlers */
+
+ short tot_vert; /* number of vertex shaders used */
+ short tot_frag; /* number of fragment shaders used */
+};
+
+struct Material;
+
+
+GLSL_Program glsl_init_program(struct Material *mat);
+GLuint glsl_create_program(void);
+
+void glsl_remove_program(GLSL_Program program);
+
+void glsl_delete_program(GLSL_Program program);
+void glsl_delete_shaders(GLuint program, GLuint *shaders, short total);
+
+
+void glsl_create_vertex_shader(GLSL_Program, struct Material *mat);
+void glsl_create_fragment_shader(GLSL_Program, struct Material *mat);
+
+GLuint glsl_create_shader(char *code, int type, int str_num);
+
+char *glsl_globals(void);
+char *glsl_uniforms(void);
+char *glsl_varyings(void);
+
+char *glsl_visibility_func(short type);
+char *glsl_diffuse_func(short shader, short lamp);
+char *glsl_specular_func(short shader, short lamp);
+char *glsl_main_func(struct Material *mat);
+char *glsl_create_lights_code(struct Material *mat);
Added: branches/soc-2007-maike/source/blender/include/BIF_glsl_specular.h
===================================================================
--- branches/soc-2007-maike/source/blender/include/BIF_glsl_specular.h (rev 0)
+++ branches/soc-2007-maike/source/blender/include/BIF_glsl_specular.h 2007-06-01 16:39:04 UTC (rev 10843)
@@ -0,0 +1,7 @@
+
+
+char *glsl_cooktorr(short lamp);
+char *glsl_phong(short lamp);
+char *glsl_blinn(short lamp);
+char *glsl_spectoon(short lamp);
+char *glsl_wardiso(short lamp);
Added: branches/soc-2007-maike/source/blender/include/BIF_glsl_util.h
===================================================================
--- branches/soc-2007-maike/source/blender/include/BIF_glsl_util.h (rev 0)
+++ branches/soc-2007-maike/source/blender/include/BIF_glsl_util.h 2007-06-01 16:39:04 UTC (rev 10843)
@@ -0,0 +1,6 @@
+struct Object;
+
+
+void glsl_exit_free_structs(void);
+void glsl_free_structs(void);
+void glsl_query_material(struct Object *obj);
More information about the Bf-blender-cvs
mailing list