[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