Commit: 5a3fabdfce6acfa0f2fcdc3be7a2c584aa2eb027
Author: Lukas Tönne
Date:   Thu Jul 14 17:04:43 2016 +0200
Branches: strand_gpu
https://developer.blender.org/rB5a3fabdfce6acfa0f2fcdc3be7a2c584aa2eb027

Removed a couple of unused fiber curve attribute buffers.

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

M       source/blender/gpu/GPU_buffers.h
M       source/blender/gpu/intern/gpu_strands_buffer.c
M       source/blender/gpu/intern/gpu_strands_shader.c
M       source/blender/gpu/shaders/gpu_shader_strand_vert.glsl

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

diff --git a/source/blender/gpu/GPU_buffers.h b/source/blender/gpu/GPU_buffers.h
index cbff70f..42f825a 100644
--- a/source/blender/gpu/GPU_buffers.h
+++ b/source/blender/gpu/GPU_buffers.h
@@ -160,11 +160,8 @@ typedef struct GPUDrawStrands {
        GPUBuffer *fiber_points;
        GPUBuffer *fiber_edges;
        GPUBuffer *fiber_position;
-       GPUBuffer *fiber_normal;
-       GPUBuffer *fiber_tangent;
        GPUBuffer *fiber_control_index;
        GPUBuffer *fiber_control_weight;
-       GPUBuffer *fiber_root_distance;
 
        /* GL texture id for control point texture buffer */
        GPUBufferTexture control_points_tex;
@@ -172,11 +169,8 @@ typedef struct GPUDrawStrands {
        GPUBufferTexture control_tangents_tex;
        GPUBufferTexture control_curves_tex;
        GPUBufferTexture fiber_position_tex;
-       GPUBufferTexture fiber_normal_tex;
-       GPUBufferTexture fiber_tangent_tex;
        GPUBufferTexture fiber_control_index_tex;
        GPUBufferTexture fiber_control_weight_tex;
-       GPUBufferTexture fiber_root_distance_tex;
 
        unsigned int strand_totverts;
        unsigned int strand_totedges;
diff --git a/source/blender/gpu/intern/gpu_strands_buffer.c 
b/source/blender/gpu/intern/gpu_strands_buffer.c
index 3a5b8ca..d244cb5 100644
--- a/source/blender/gpu/intern/gpu_strands_buffer.c
+++ b/source/blender/gpu/intern/gpu_strands_buffer.c
@@ -81,11 +81,8 @@ typedef enum GPUStrandBufferType {
        GPU_STRAND_BUFFER_FIBER_EDGE,
        /* fiber curve attributes (buffer textures) */
        GPU_STRAND_BUFFER_FIBER_POSITION,
-       GPU_STRAND_BUFFER_FIBER_NORMAL,
-       GPU_STRAND_BUFFER_FIBER_TANGENT,
        GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX,
        GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT,
-       GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE,
        /* fiber vertex buffer (geometry shader only) */
        GPU_STRAND_BUFFER_FIBER,
 } GPUStrandBufferType;
@@ -100,11 +97,8 @@ static GLenum 
gpu_strands_buffer_gl_type(GPUStrandBufferType type)
                case GPU_STRAND_BUFFER_FIBER:
                case GPU_STRAND_BUFFER_FIBER_VERTEX:
                case GPU_STRAND_BUFFER_FIBER_POSITION:
-               case GPU_STRAND_BUFFER_FIBER_NORMAL:
-               case GPU_STRAND_BUFFER_FIBER_TANGENT:
                case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX:
                case GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT:
-               case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE:
                        return GL_ARRAY_BUFFER;
                case GPU_STRAND_BUFFER_STRAND_EDGE:
                case GPU_STRAND_BUFFER_CONTROL_CURVE:
@@ -139,16 +133,10 @@ static GPUBuffer 
**gpu_strands_buffer_from_type(GPUDrawStrands *gds, GPUStrandBu
                        return &gds->fiber_edges;
                case GPU_STRAND_BUFFER_FIBER_POSITION:
                        return &gds->fiber_position;
-               case GPU_STRAND_BUFFER_FIBER_NORMAL:
-                       return &gds->fiber_normal;
-               case GPU_STRAND_BUFFER_FIBER_TANGENT:
-                       return &gds->fiber_tangent;
                case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX:
                        return &gds->fiber_control_index;
                case GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT:
                        return &gds->fiber_control_weight;
-               case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE:
-                       return &gds->fiber_root_distance;
        }
        BLI_assert(false);
        return 0;
@@ -173,21 +161,12 @@ static GPUBufferTexture 
*gpu_strands_buffer_texture_from_type(GPUDrawStrands *gd
                case GPU_STRAND_BUFFER_FIBER_POSITION:
                        *format = GL_RGB32F;
                        return &gds->fiber_position_tex;
-               case GPU_STRAND_BUFFER_FIBER_NORMAL:
-                       *format = GL_RGB32F;
-                       return &gds->fiber_normal_tex;
-               case GPU_STRAND_BUFFER_FIBER_TANGENT:
-                       *format = GL_RGB32F;
-                       return &gds->fiber_tangent_tex;
                case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX:
                        *format = GL_RGBA32UI;
                        return &gds->fiber_control_index_tex;
                case GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT:
                        *format = GL_RGBA32F;
                        return &gds->fiber_control_weight_tex;
-               case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE:
-                       *format = GL_RG32F;
-                       return &gds->fiber_root_distance_tex;
                default:
                        *format = 0;
                        return NULL;
@@ -218,16 +197,10 @@ static size_t 
gpu_strands_buffer_size_from_type(GPUDrawStrands *gpu_buffer, GPUS
                        return sizeof(int) * 2 * gpu_buffer->fiber_totedges;
                case GPU_STRAND_BUFFER_FIBER_POSITION:
                        return sizeof(float) * 3 * gpu_buffer->totfibers;
-               case GPU_STRAND_BUFFER_FIBER_NORMAL:
-                       return sizeof(float) * 3 * gpu_buffer->totfibers;
-               case GPU_STRAND_BUFFER_FIBER_TANGENT:
-                       return sizeof(float) * 3 * gpu_buffer->totfibers;
                case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX:
                        return sizeof(int) * 4 * gpu_buffer->totfibers;
                case GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT:
                        return sizeof(float) * 4 * gpu_buffer->totfibers;
-               case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE:
-                       return sizeof(float) * 2 * gpu_buffer->totfibers;
        }
        BLI_assert(false);
        return 0;
@@ -716,18 +689,6 @@ static void 
strands_copy_fiber_array_attribute_data(StrandFiber *fibers, int tot
                                varray = (float *)varray + 3;
                                break;
                        }
-                       case GPU_STRAND_BUFFER_FIBER_NORMAL: {
-                               float co[3], tang[3];
-                               BKE_strands_get_fiber_vectors(fiber, root_dm, 
co, (float *)varray, tang);
-                               varray = (float *)varray + 3;
-                               break;
-                       }
-                       case GPU_STRAND_BUFFER_FIBER_TANGENT: {
-                               float co[3], nor[3];
-                               BKE_strands_get_fiber_vectors(fiber, root_dm, 
co, nor, (float *)varray);
-                               varray = (float *)varray + 3;
-                               break;
-                       }
                        case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX: {
                                for (int k = 0; k < 4; ++k)
                                        ((int *)varray)[k] = 
fiber->control_index[k];
@@ -739,11 +700,6 @@ static void 
strands_copy_fiber_array_attribute_data(StrandFiber *fibers, int tot
                                varray = (float *)varray + 4;
                                break;
                        }
-                       case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE: {
-                               copy_v2_v2((float *)varray, 
fiber->root_distance);
-                               varray = (float *)varray + 2;
-                               break;
-                       }
                        default:
                                BLI_assert(false);
                                break;
@@ -799,11 +755,8 @@ static void strands_copy_gpu_data(void *varray, void 
*vinfo)
                        strands_copy_fiber_edge_data(params, (unsigned int 
(*)[2])varray);
                        break;
                case GPU_STRAND_BUFFER_FIBER_POSITION:
-               case GPU_STRAND_BUFFER_FIBER_NORMAL:
-               case GPU_STRAND_BUFFER_FIBER_TANGENT:
                case GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX:
                case GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT:
-               case GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE:
                        strands_copy_fiber_attribute_data(params, type, varray);
                        break;
        }
@@ -875,16 +828,10 @@ void GPU_strands_setup_fibers(GPUDrawStrands 
*strands_buffer, GPUDrawStrandsPara
                        return;
                if (!strands_setup_buffer_common(strands_buffer, params, 
GPU_STRAND_BUFFER_FIBER_POSITION, false))
                        return;
-               if (!strands_setup_buffer_common(strands_buffer, params, 
GPU_STRAND_BUFFER_FIBER_NORMAL, false))
-                       return;
-               if (!strands_setup_buffer_common(strands_buffer, params, 
GPU_STRAND_BUFFER_FIBER_TANGENT, false))
-                       return;
                if (!strands_setup_buffer_common(strands_buffer, params, 
GPU_STRAND_BUFFER_FIBER_CONTROL_INDEX, false))
                        return;
                if (!strands_setup_buffer_common(strands_buffer, params, 
GPU_STRAND_BUFFER_FIBER_CONTROL_WEIGHT, false))
                        return;
-               if (!strands_setup_buffer_common(strands_buffer, params, 
GPU_STRAND_BUFFER_FIBER_ROOT_DISTANCE, false))
-                       return;
                
                GPU_enable_vertex_buffer(strands_buffer->fiber_points, 
sizeof(GPUFiberVertex));
                GPU_enable_element_buffer(strands_buffer->fiber_edges);
@@ -910,26 +857,14 @@ void GPU_strands_setup_fibers(GPUDrawStrands 
*strands_buffer, GPUDrawStrandsPara
                glActiveTexture(GL_TEXTURE4);
                glBindTexture(GL_TEXTURE_BUFFER, 
strands_buffer->fiber_position_tex.id);
        }
-       if (strands_buffer->fiber_normal_tex.id != 0) {
-               glActiveTexture(GL_TEXTURE5);
-               glBindTexture(GL_TEXTURE_BUFFER, 
strands_buffer->fiber_normal_tex.id);
-       }
-       if (strands_buffer->fiber_tangent_tex.id != 0) {
-               glActiveTexture(GL_TEXTURE6);
-               glBindTexture(GL_TEXTURE_BUFFER, 
strands_buffer->fiber_tangent_tex.id);
-       }
        if (strands_buffer->fiber_control_index_tex.id != 0) {
-               glActiveTexture(GL_TEXTURE7);
+               glActiveTexture(GL_TEXTURE5);
                glBindTexture(GL_TEXTURE_BUFFER, 
strands_buffer->fiber_control_index_tex.id);
        }
        if (strands_buffer->fiber_control_weight_tex.id != 0) {
-               glActiveTexture(GL_TEXTURE8);
+               glActiveTexture(GL_TEXTURE6);
                glBindTexture(GL_TEXTURE_BUFFER, 
strands_buffer->fiber_control_weight_tex.id);
        }
-       if (strands_buffer->fiber_root_distance_tex.id != 0) {
-               glActiveTexture(GL_TEXTURE9);
-               glBindTexture(GL_TEXTURE_BUFFER, 
strands_buffer->fiber_root_distance_tex.id);
-       }
 }
 
 void GPU_strands_buffer_unbind(void)
@@ -952,12 +887,6 @@ void GPU_strands_buffer_unbind(void)
        glBindTexture(GL_TEXTURE_BUFFER, 0);
        glActiveTexture(GL_TEXTURE6);
        glBindTexture(GL_TEXTURE_BUFFER, 0);
-       glActiveTexture(GL_TEXTURE7);
-       glBindTexture(GL_TEXTURE_BUFFER, 0);
-       glActiveTexture(GL_TEXTURE8);
-       glBindTexture(GL_TEXTURE_BUFFER, 0);
-       glActiveTexture(GL_TEXTURE9);
-       glBindTexture(GL_TEXTURE_BUFFER, 0);
        /* reset, following draw code expects active texture 0 */
        glActiveTexture(GL_TEXTURE0);
 }
@@ -980,17 +909,11 @@ void GPU_strands_buffer_invalidate(GPUDrawStrands 
*gpu_buffer, GPUStrandsCompone
        }
        if (components & GPU_STRANDS_COMPONENT_FIBER_ATTRIBUTES) {
                GPU_buffer_free(gpu_buffer->fiber_position);
-               GPU_buffer_free(gpu_buffer->fiber_normal);
-               GPU_buffer_free(gpu_buffer->fiber_tangent);
                GPU_buffer_free(gpu_buffer->fiber_control_index);
                GPU_buffer_free(gpu_buffer->fiber_control_weight);
-               GPU_buffer_free(gpu_buffer->fiber_root_distance);
                gpu_buffer->fiber_position = NULL;
-               gpu_buffer->fiber_normal = NULL;
-               gpu_buffer->fiber_tangent = NULL;
                gpu_buffer->fiber_control_index = NULL;
                gpu_buffer->fiber_control_weight = NULL;
-               gpu_buffer->fiber_root_distance = NULL;
        }
        if (components & GPU_STRANDS_COMPONENT_FIBERS) {
                GPU_buffer_free(gpu_buffer->fibers);
diff --git a/source/blender/gpu/intern/gpu_strands_shader.c 
b/source/blender/gpu/intern/gpu_strands_shader.c
index 084b17d..9814d8f 100644
--- a/source/blender/gpu/intern/gpu_strands_shader.c
+++ b/source/blender/gpu/intern/gpu_strands_shader.c
@@ -187,11 +187,8 @@ GPUStrandsShader *GPU_strand_shader_get(struct Strands 
*strands,
                GPU_shader_uniform_int(shader, GPU_shader_get_uniform(shader, 
"control_normals"), 2);
                GPU_shader_uniform_int(shader, GPU_shader_get_uniform(shader, 
"control_tangents"), 3);
                GPU_shader_uniform_int(shader, GPU_shader_get_uniform(shader, 
"fiber_position"), 4);
-               GPU_shader_uniform_int(shader, GPU_shader_get_uniform(shader, 
"fiber_normal"), 5);
-               GPU_shader_uniform_int(shader, GPU_shader_get_uniform(shader, 
"fiber_tangent")

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to