Commit: a754d222baa46d4c37e38e17fbc2df77de7ffe3b
Author: Lukas Tönne
Date:   Tue Jul 3 07:42:12 2018 +0100
Branches: tmp_hair_curves
https://developer.blender.org/rBa754d222baa46d4c37e38e17fbc2df77de7ffe3b

Merge branch 'hair_guides' into tmp_hair_curves

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



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

diff --cc source/blender/draw/engines/workbench/workbench_deferred.c
index c9bb0dd9947,412a29722ab..f3c96923dae
--- a/source/blender/draw/engines/workbench/workbench_deferred.c
+++ b/source/blender/draw/engines/workbench/workbench_deferred.c
@@@ -632,20 -625,16 +617,16 @@@ static void workbench_cache_populate_pa
                        int color_type = 
workbench_material_determine_color_type(wpd, image);
                        WORKBENCH_MaterialData *material = 
get_or_create_material_data(vedata, ob, mat, image, color_type);
  
-                       struct GPUShader *shader = (color_type != 
V3D_SHADING_TEXTURE_COLOR)
-                                                  ? wpd->prepass_solid_hair_sh
-                                                  : 
wpd->prepass_texture_hair_sh;
+                       struct GPUShader *shader = (color_type != 
V3D_SHADING_TEXTURE_COLOR) ?
+                               wpd->prepass_solid_hair_sh :
+                               wpd->prepass_texture_hair_sh;
 -                      DRWShadingGroup *shgrp = DRW_shgroup_hair_create(
 +                      DRWShadingGroup *shgrp = 
DRW_shgroup_particle_hair_create(
-                                                       ob, psys, md,
-                                                       psl->prepass_hair_pass,
-                                                       shader);
+                               ob, psys, md,
+                               psl->prepass_hair_pass,
+                               shader);
                        DRW_shgroup_stencil_mask(shgrp, 0xFF);
                        DRW_shgroup_uniform_int(shgrp, "object_id", 
&material->object_id, 1);
-                       DRW_shgroup_uniform_block(shgrp, "material_block", 
material->material_ubo);
-                       if (image) {
-                               GPUTexture *tex = 
GPU_texture_from_blender(image, NULL, GL_TEXTURE_2D, false, 0.0f);
-                               DRW_shgroup_uniform_texture(shgrp, "image", 
tex);
-                       }
+                       workbench_material_shgroup_uniform(wpd, shgrp, 
material);
                }
        }
  }
diff --cc source/blender/draw/engines/workbench/workbench_forward.c
index ee579dd6d44,fb2d7885b28..805cf0066d8
--- a/source/blender/draw/engines/workbench/workbench_forward.c
+++ b/source/blender/draw/engines/workbench/workbench_forward.c
@@@ -51,7 -51,9 +51,8 @@@ static struct 
        struct GPUShader *composite_sh_cache[MAX_SHADERS];
        struct GPUShader *transparent_accum_sh_cache[MAX_SHADERS];
        struct GPUShader *object_outline_sh;
+       struct GPUShader *object_outline_texture_sh;
        struct GPUShader *object_outline_hair_sh;
 -      struct GPUShader *object_outline_hair_fibers_sh;
        struct GPUShader *checker_depth_sh;
  
        struct GPUTexture *object_id_tx; /* ref only, not alloced */
@@@ -276,18 -270,24 +261,21 @@@ void workbench_forward_engine_init(WORK
                memset(e_data.composite_sh_cache, 0x00, sizeof(struct GPUShader 
*) * MAX_SHADERS);
                memset(e_data.transparent_accum_sh_cache, 0x00, sizeof(struct 
GPUShader *) * MAX_SHADERS);
  
-               char *defines = workbench_material_build_defines(wpd, OB_SOLID, 
false);
-               char *defines_hair = workbench_material_build_defines(wpd, 
OB_SOLID, true);
 -              char *defines = workbench_material_build_defines(wpd, false, 
DRW_SHADER_HAIR_NONE);
 -              char *defines_texture = workbench_material_build_defines(wpd, 
true, DRAW_SHADER_HAIR_NONE);
 -              char *defines_hair = workbench_material_build_defines(wpd, 
false, DRW_SHADER_HAIR_PARTICLES);
 -              char *defines_hair_fibers = 
workbench_material_build_defines(wpd, false, DRW_SHADER_HAIR_FIBERS);
++              char *defines = workbench_material_build_defines(wpd, false, 
false);
++              char *defines_texture = workbench_material_build_defines(wpd, 
true, false);
++              char *defines_hair = workbench_material_build_defines(wpd, 
false, true);
++              char *defines_hair_fibers = 
workbench_material_build_defines(wpd, false, true);
                char *forward_vert = workbench_build_forward_vert();
-               char *forward_depth_frag = workbench_build_forward_depth_frag();
                e_data.object_outline_sh = DRW_shader_create(
                        forward_vert, NULL,
-                       forward_depth_frag, defines);
+                       datatoc_workbench_forward_depth_frag_glsl, defines);
+               e_data.object_outline_texture_sh = DRW_shader_create(
+                       forward_vert, NULL,
+                       datatoc_workbench_forward_depth_frag_glsl, 
defines_texture);
                e_data.object_outline_hair_sh = DRW_shader_create(
                        forward_vert, NULL,
-                       forward_depth_frag, defines_hair);
+                       datatoc_workbench_forward_depth_frag_glsl, 
defines_hair);
 -              e_data.object_outline_hair_fibers_sh = DRW_shader_create(
 -                      forward_vert, NULL,
 -                      forward_depth_frag, defines_hair_fibers);
  
-               workbench_fxaa_engine_init();
  
                e_data.checker_depth_sh = DRW_shader_create_fullscreen(
                        datatoc_workbench_checkerboard_depth_frag_glsl, NULL);
@@@ -379,7 -380,9 +368,8 @@@ void workbench_forward_engine_free(
                DRW_SHADER_FREE_SAFE(e_data.transparent_accum_sh_cache[index]);
        }
        DRW_SHADER_FREE_SAFE(e_data.object_outline_sh);
+       DRW_SHADER_FREE_SAFE(e_data.object_outline_texture_sh);
        DRW_SHADER_FREE_SAFE(e_data.object_outline_hair_sh);
 -      DRW_SHADER_FREE_SAFE(e_data.object_outline_hair_fibers_sh);
        DRW_SHADER_FREE_SAFE(e_data.checker_depth_sh);
  
        workbench_fxaa_engine_free();
diff --cc source/blender/draw/engines/workbench/workbench_private.h
index 404ec50fd97,23c550d6999..3bec6bb6d53
--- a/source/blender/draw/engines/workbench/workbench_private.h
+++ b/source/blender/draw/engines/workbench/workbench_private.h
@@@ -269,20 -260,29 +256,22 @@@ DRWPass *workbench_fxaa_create_pass(GPU
  /* workbench_effect_taa.c */
  void workbench_taa_engine_init(WORKBENCH_Data *vedata);
  void workbench_taa_engine_free(void);
- DRWPass *workbench_taa_create_pass(WORKBENCH_TextureList *txl, 
WORKBENCH_EffectInfo *effect_info, WORKBENCH_FramebufferList *fbl, GPUTexture 
**color_buffer_tx);
- void workbench_taa_draw_pass(WORKBENCH_EffectInfo *effect_info, 
/*WORKBENCH_PrivateData *wpd, , GPUFrameBuffer *fb, GPUTexture *tx, */DRWPass 
*effect_aa_pass);
- void workbench_taa_draw_scene_start(WORKBENCH_EffectInfo *effect_info);
+ DRWPass *workbench_taa_create_pass(WORKBENCH_Data *vedata, GPUTexture 
**color_buffer_tx);
+ void workbench_taa_draw_scene_start(WORKBENCH_Data *vedata);
  void workbench_taa_draw_scene_end(WORKBENCH_Data *vedata);
  void workbench_taa_view_updated(WORKBENCH_Data *vedata);
+ int workbench_taa_calculate_num_iterations(WORKBENCH_Data *vedata);
  
  /* workbench_materials.c */
 -typedef enum DRWShaderHairType
 -{
 -      DRW_SHADER_HAIR_NONE = 0,
 -      DRW_SHADER_HAIR_PARTICLES = 1,
 -      DRW_SHADER_HAIR_FIBERS = 2,
 -} DRWShaderHairType;
 -
  int workbench_material_determine_color_type(WORKBENCH_PrivateData *wpd, Image 
*ima);
 -char *workbench_material_build_defines(WORKBENCH_PrivateData *wpd, bool 
use_textures, DRWShaderHairType hair_type);
 +char *workbench_material_build_defines(WORKBENCH_PrivateData *wpd, bool 
use_textures, bool is_hair);
  void workbench_material_update_data(WORKBENCH_PrivateData *wpd, Object *ob, 
Material *mat, WORKBENCH_MaterialData *data);
  uint workbench_material_get_hash(WORKBENCH_MaterialData *material_template);
 -int workbench_material_get_shader_index(WORKBENCH_PrivateData *wpd, bool 
use_textures, DRWShaderHairType hair_type);
 +int workbench_material_get_shader_index(WORKBENCH_PrivateData *wpd, bool 
use_textures, bool is_hair);
  void workbench_material_set_normal_world_matrix(
          DRWShadingGroup *grp, WORKBENCH_PrivateData *wpd, float 
persistent_matrix[3][3]);
+ void workbench_material_shgroup_uniform(WORKBENCH_PrivateData *wpd, 
DRWShadingGroup *grp, WORKBENCH_MaterialData *material);
+ void workbench_material_copy(WORKBENCH_MaterialData *dest_material, const 
WORKBENCH_MaterialData *source_material);
  
  /* workbench_studiolight.c */
  void studiolight_update_world(StudioLight *sl, WORKBENCH_UBO_World *wd);

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

Reply via email to