[Bf-blender-cvs] [a8cca4f] opensubdiv-modifier: OpenSubdiv: Some last minute improvements

Sergey Sharybin noreply at git.blender.org
Mon Jul 20 14:25:17 CEST 2015


Commit: a8cca4f894518d9793a964a86ad41ee80406127f
Author: Sergey Sharybin
Date:   Mon Jul 20 14:21:36 2015 +0200
Branches: opensubdiv-modifier
https://developer.blender.org/rBa8cca4f894518d9793a964a86ad41ee80406127f

OpenSubdiv: Some last minute improvements

- use utility function to define shader's input, output types
  and number of vertices.

- Make sure #version 150 is never used if blender is built
  without OpenSubdiv.

===================================================================

M	source/blender/gpu/intern/gpu_extensions.c

===================================================================

diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c
index 297b695..c71b827 100644
--- a/source/blender/gpu/intern/gpu_extensions.c
+++ b/source/blender/gpu/intern/gpu_extensions.c
@@ -1676,11 +1676,15 @@ void GPU_program_parameter_4f(GPUProgram *program, unsigned int location, float
 
 GPUShader *GPU_shader_create(const char *vertexcode, const char *fragcode, const char *geocode, const char *libcode, const char *defines, int input, int output, int number)
 {
+#ifdef WITH_OPENSUBDIF
 	/* TODO(sergey): used to add #version 150 to the geometry shader.
 	 * Could safely be renamed to "use_geometry_code" since it's evry much
 	 * liely any of geometry code will want to use GLSL 1.5.
 	 */
 	bool use_opensubdiv = geocode != NULL;
+#else
+	bool use_opensubdiv = false;
+#endif
 	GLint status;
 	GLcharARB log[5000];
 	GLsizei length = 0;
@@ -1821,18 +1825,11 @@ GPUShader *GPU_shader_create(const char *vertexcode, const char *fragcode, const
 	if (use_opensubdiv) {
 		glBindAttribLocation(shader->object, 0, "position");
 		glBindAttribLocation(shader->object, 1, "normal");
+		GPU_shader_geometry_stage_primitive_io(shader,
+		                                       GL_LINES_ADJACENCY_EXT,
+		                                       GL_TRIANGLE_STRIP,
+		                                       4);
 
-		glProgramParameteriEXT(shader->object,
-		                       GL_GEOMETRY_INPUT_TYPE_EXT,
-		                       GL_LINES_ADJACENCY_EXT);
-
-		glProgramParameteriEXT(shader->object,
-		                       GL_GEOMETRY_OUTPUT_TYPE_EXT,
-		                       GL_TRIANGLE_STRIP);
-
-		glProgramParameteriEXT(shader->object,
-		                       GL_GEOMETRY_VERTICES_OUT_EXT,
-		                       4);
 	}
 #endif




More information about the Bf-blender-cvs mailing list