[Bf-blender-cvs] [08836b73fe2] hair_guides hair_guides_grooming tmp_hair_curves: Merge branch 'blender2.8' into hair_guides

Lukas Tönne noreply at git.blender.org
Tue Jul 3 09:11:54 CEST 2018


Commit: 08836b73fe2768093e85746875c8d361b4014067
Author: Lukas Tönne
Date:   Tue Jul 3 07:38:08 2018 +0100
Branches: hair_guides hair_guides_grooming tmp_hair_curves
https://developer.blender.org/rB08836b73fe2768093e85746875c8d361b4014067

Merge branch 'blender2.8' into hair_guides

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



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

diff --cc source/blender/draw/engines/workbench/workbench_forward.c
index daeb2cb1ffa,76172443c2d..fb2d7885b28
--- a/source/blender/draw/engines/workbench/workbench_forward.c
+++ b/source/blender/draw/engines/workbench/workbench_forward.c
@@@ -51,8 -51,8 +51,9 @@@ 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 */
@@@ -285,22 -261,20 +270,24 @@@ 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, DRW_SHADER_HAIR_NONE);
- 		char *defines_hair = workbench_material_build_defines(wpd, OB_SOLID, DRW_SHADER_HAIR_PARTICLES);
- 		char *defines_hair_fibers = workbench_material_build_defines(wpd, OB_SOLID, 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 = 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 *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);
@@@ -392,8 -367,8 +380,9 @@@ 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 f832657cc5c,3bec6bb6d53..23c550d6999
--- a/source/blender/draw/engines/workbench/workbench_private.h
+++ b/source/blender/draw/engines/workbench/workbench_private.h
@@@ -273,27 -256,22 +260,29 @@@ 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, bool is_hair);
 +char *workbench_material_build_defines(WORKBENCH_PrivateData *wpd, bool use_textures, DRWShaderHairType hair_type);
  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, bool is_hair);
 +int workbench_material_get_shader_index(WORKBENCH_PrivateData *wpd, bool use_textures, DRWShaderHairType hair_type);
  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);



More information about the Bf-blender-cvs mailing list