46 const char *var_names[1] = {
"finalColor"};
49 "#define HAIR_PHASE_SUBDIV\n"
67 if (
e_data.hair_refine_sh[refinement] ==
nullptr) {
82 e_data.hair_refine_sh[refinement] =
sh;
85 return e_data.hair_refine_sh[refinement];
#define BLI_assert_msg(a, msg)
A dynamically sized string ADT.
#define DRW_SHADER_FREE_SAFE(shader)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
struct GPUShader GPUShader
GPUShader * GPU_shader_create_from_info_name(const char *info_name)
@ PART_REFINE_CATMULL_ROM
GPUShader * DRW_shader_create_with_transform_feedback(const char *vert, const char *geom, const char *defines, const eGPUShaderTFBType prim_type, const char **varying_names, const int varying_count)
char datatoc_gpu_shader_3D_smooth_color_frag_glsl[]
static GPUShader * hair_refine_shader_compute_create(ParticleRefineShader UNUSED(refinement))
char datatoc_common_hair_refine_comp_glsl[]
static GPUShader * hair_refine_shader_transform_feedback_create(ParticleRefineShader UNUSED(refinement))
char datatoc_common_hair_lib_glsl[]
GPUShader * DRW_shader_curves_refine_get(CurvesEvalShader type, eParticleRefineShaderType sh_type)
static struct @317 e_data
struct GPUShader * hair_refine_sh[PART_REFINE_MAX_SHADER]
GPUShader * DRW_shader_hair_refine_get(ParticleRefineShader refinement, eParticleRefineShaderType sh_type)
static GPUShader * hair_refine_shader_transform_feedback_workaround_create(ParticleRefineShader UNUSED(refinement))
char datatoc_common_hair_refine_vert_glsl[]
eParticleRefineShaderType
@ PART_REFINE_SHADER_TRANSFORM_FEEDBACK_WORKAROUND
@ PART_REFINE_SHADER_COMPUTE
@ PART_REFINE_SHADER_TRANSFORM_FEEDBACK
ccl_gpu_kernel_postfix ccl_global float int int int int sh