Blender V4.3
draw_hair.cc File Reference

Contains procedural GPU hair drawing methods. More...

#include "DRW_render.hh"
#include "BLI_string_utils.hh"
#include "BLI_utildefines.h"
#include "DNA_collection_types.h"
#include "DNA_customdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_particle_types.h"
#include "BKE_duplilist.hh"
#include "GPU_batch.hh"
#include "GPU_capabilities.hh"
#include "GPU_compute.hh"
#include "GPU_context.hh"
#include "GPU_material.hh"
#include "GPU_shader.hh"
#include "GPU_texture.hh"
#include "GPU_vertex_buffer.hh"
#include "DRW_gpu_wrapper.hh"
#include "draw_hair_private.hh"
#include "draw_shader.hh"
#include "draw_shader_shared.hh"
#include "draw_common.hh"

Go to the source code of this file.

Classes

struct  ParticleRefineCall
 

Namespaces

namespace  blender
 
namespace  blender::draw
 

Functions

static void drw_hair_ensure_vbo ()
 
void DRW_hair_init ()
 
static void drw_hair_particle_cache_shgrp_attach_resources (DRWShadingGroup *shgrp, ParticleHairCache *cache, const int subdiv)
 
static void drw_hair_particle_cache_update_compute (ParticleHairCache *cache, const int subdiv)
 
static ParticleHairCachedrw_hair_particle_cache_get (Object *object, ParticleSystem *psys, ModifierData *md, GPUMaterial *gpu_material, int subdiv, int thickness_res)
 
blender::gpu::VertBufDRW_hair_pos_buffer_get (Object *object, ParticleSystem *psys, ModifierData *md)
 
void DRW_hair_duplimat_get (Object *object, ParticleSystem *, ModifierData *, float(*dupli_mat)[4])
 
DRWShadingGroupDRW_shgroup_hair_create_sub (Object *object, ParticleSystem *psys, ModifierData *md, DRWShadingGroup *shgrp_parent, GPUMaterial *gpu_material)
 
void DRW_hair_update ()
 
void DRW_hair_free ()
 
void blender::draw::hair_init ()
 
static ParticleHairCacheblender::draw::hair_particle_cache_get (Object *object, ParticleSystem *psys, ModifierData *md, GPUMaterial *gpu_material, int subdiv, int thickness_res)
 
gpu::VertBufblender::draw::hair_pos_buffer_get (Scene *scene, Object *object, ParticleSystem *psys, ModifierData *md)
 
void blender::draw::hair_update (Manager &manager)
 
void blender::draw::hair_free ()
 
template<typename PassT >
blender::gpu::Batch * blender::draw::hair_sub_pass_setup_implementation (PassT &sub_ps, const Scene *scene, Object *object, ParticleSystem *psys, ModifierData *md, GPUMaterial *gpu_material)
 
gpu::Batch * blender::draw::hair_sub_pass_setup (PassMain::Sub &sub_ps, const Scene *scene, Object *object, ParticleSystem *psys, ModifierData *md, GPUMaterial *gpu_material=nullptr)
 

Variables

static blender::gpu::VertBufg_dummy_vbo = nullptr
 
static DRWPassg_tf_pass
 
static blender::draw::UniformBuffer< CurvesInfos > * g_dummy_curves_info = nullptr
 
static PassSimpleblender::draw::g_pass = nullptr
 

Detailed Description

Contains procedural GPU hair drawing methods.

Definition in file draw_hair.cc.

Function Documentation

◆ DRW_hair_duplimat_get()

◆ drw_hair_ensure_vbo()

◆ DRW_hair_free()

void DRW_hair_free ( )

Definition at line 259 of file draw_hair.cc.

References g_dummy_curves_info, g_dummy_vbo, and GPU_VERTBUF_DISCARD_SAFE.

Referenced by blender::draw::DRW_curves_free().

◆ DRW_hair_init()

void DRW_hair_init ( )

◆ drw_hair_particle_cache_get()

static ParticleHairCache * drw_hair_particle_cache_get ( Object * object,
ParticleSystem * psys,
ModifierData * md,
GPUMaterial * gpu_material,
int subdiv,
int thickness_res )
static

◆ drw_hair_particle_cache_shgrp_attach_resources()

◆ drw_hair_particle_cache_update_compute()

◆ DRW_hair_pos_buffer_get()

◆ DRW_hair_update()

void DRW_hair_update ( )

◆ DRW_shgroup_hair_create_sub()

Variable Documentation

◆ g_dummy_curves_info

◆ g_dummy_vbo

blender::gpu::VertBuf* g_dummy_vbo = nullptr
static

Definition at line 45 of file draw_hair.cc.

Referenced by drw_hair_ensure_vbo(), DRW_hair_free(), and DRW_shgroup_hair_create_sub().

◆ g_tf_pass

DRWPass* g_tf_pass
static