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:
authorClément Foucault <foucault.clem@gmail.com>2018-10-03 16:42:05 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-10-03 16:44:12 +0300
commit89c30ff746010c73968d38ae32b9e04e2f0a8a1a (patch)
tree93be131b3972e73a726fadb8ec70049cb7f89315 /source/blender/draw/intern/draw_common.c
parent34a627f345218c8a6688eb6e72e1892a4e765508 (diff)
Pose Mode: Add back IK Degrees of freedom display
Diffstat (limited to 'source/blender/draw/intern/draw_common.c')
-rw-r--r--source/blender/draw/intern/draw_common.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_common.c b/source/blender/draw/intern/draw_common.c
index de300201f1b..3e8c01bb14d 100644
--- a/source/blender/draw/intern/draw_common.c
+++ b/source/blender/draw/intern/draw_common.c
@@ -222,6 +222,7 @@ extern char datatoc_armature_shape_outline_vert_glsl[];
extern char datatoc_armature_shape_outline_geom_glsl[];
extern char datatoc_armature_stick_vert_glsl[];
extern char datatoc_armature_stick_frag_glsl[];
+extern char datatoc_armature_dof_vert_glsl[];
extern char datatoc_common_globals_lib_glsl[];
@@ -242,6 +243,7 @@ static struct {
struct GPUShader *bone_sphere;
struct GPUShader *bone_sphere_outline;
struct GPUShader *bone_stick;
+ struct GPUShader *bone_dofs;
struct GPUShader *mpath_line_sh;
struct GPUShader *mpath_points_sh;
@@ -265,6 +267,7 @@ static struct {
struct GPUVertFormat *instance_distance_lines;
struct GPUVertFormat *instance_spot;
struct GPUVertFormat *instance_bone;
+ struct GPUVertFormat *instance_bone_dof;
struct GPUVertFormat *instance_bone_stick;
struct GPUVertFormat *instance_bone_outline;
struct GPUVertFormat *instance_bone_envelope;
@@ -784,6 +787,29 @@ DRWShadingGroup *shgroup_instance_bone_stick(DRWPass *pass)
return grp;
}
+struct DRWShadingGroup *shgroup_instance_bone_dof(struct DRWPass *pass, struct GPUBatch *geom)
+{
+ if (g_shaders.bone_dofs == NULL) {
+ g_shaders.bone_dofs = DRW_shader_create(
+ datatoc_armature_dof_vert_glsl, NULL,
+ datatoc_gpu_shader_flat_color_frag_glsl, NULL);
+ }
+
+ DRW_shgroup_instance_format(g_formats.instance_bone_dof, {
+ {"InstanceModelMatrix", DRW_ATTRIB_FLOAT, 16},
+ {"color", DRW_ATTRIB_FLOAT, 4},
+ {"amin", DRW_ATTRIB_FLOAT, 2},
+ {"amax", DRW_ATTRIB_FLOAT, 2},
+ });
+
+ DRWShadingGroup *grp = DRW_shgroup_instance_create(
+ g_shaders.bone_dofs,
+ pass, geom,
+ g_formats.instance_bone_dof);
+
+ return grp;
+}
+
struct GPUShader *mpath_line_shader_get(void)
{
if (g_shaders.mpath_line_sh == NULL) {