Blender  V3.3
Classes | Functions
draw_cache_impl_curves.cc File Reference

Curves API for render engines. More...

#include <cstring>
#include "MEM_guardedalloc.h"
#include "BLI_listbase.h"
#include "BLI_math_base.h"
#include "BLI_math_vec_types.hh"
#include "BLI_math_vector.h"
#include "BLI_math_vector.hh"
#include "BLI_span.hh"
#include "BLI_utildefines.h"
#include "DNA_curves_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BKE_curves.hh"
#include "BKE_geometry_set.hh"
#include "GPU_batch.h"
#include "GPU_material.h"
#include "GPU_texture.h"
#include "DRW_render.h"
#include "draw_attributes.h"
#include "draw_cache_impl.h"
#include "draw_cache_inline.h"
#include "draw_curves_private.h"
#include "draw_shader.h"

Go to the source code of this file.

Classes

struct  CurvesBatchCache
 
struct  PositionAndParameter
 

Functions

static bool curves_batch_cache_valid (const Curves &curves)
 
static void curves_batch_cache_init (Curves &curves)
 
static void curves_discard_attributes (CurvesEvalCache &curves_cache)
 
static void curves_batch_cache_clear_data (CurvesEvalCache &curves_cache)
 
static void curves_batch_cache_clear (Curves &curves)
 
void DRW_curves_batch_cache_validate (Curves *curves)
 
static CurvesBatchCache & curves_batch_cache_get (Curves &curves)
 
void DRW_curves_batch_cache_dirty_tag (Curves *curves, int mode)
 
void DRW_curves_batch_cache_free (Curves *curves)
 
void DRW_curves_batch_cache_free_old (Curves *curves, int ctime)
 
static void ensure_seg_pt_count (const Curves &curves, CurvesEvalCache &curves_cache)
 
static void curves_batch_cache_fill_segments_proc_pos (const Curves &curves_id, MutableSpan< PositionAndParameter > posTime_data, MutableSpan< float > hairLength_data)
 
static void curves_batch_cache_ensure_procedural_pos (const Curves &curves, CurvesEvalCache &cache, GPUMaterial *gpu_material)
 
void drw_curves_get_attribute_sampler_name (const char *layer_name, char r_sampler_name[32])
 
static void curves_batch_cache_ensure_procedural_final_attr (CurvesEvalCache &cache, const GPUVertFormat *format, const int subdiv, const int index, const char *name)
 
static void curves_batch_ensure_attribute (const Curves &curves, CurvesEvalCache &cache, const DRW_AttributeRequest &request, const int subdiv, const int index)
 
static void curves_batch_cache_fill_strands_data (const Curves &curves_id, GPUVertBufRaw &data_step, GPUVertBufRaw &seg_step)
 
static void curves_batch_cache_ensure_procedural_strand_data (Curves &curves, CurvesEvalCache &cache)
 
static void curves_batch_cache_ensure_procedural_final_points (CurvesEvalCache &cache, int subdiv)
 
static void curves_batch_cache_fill_segments_indices (const Curves &curves, const int res, GPUIndexBufBuilder &elb)
 
static void curves_batch_cache_ensure_procedural_indices (Curves &curves, CurvesEvalCache &cache, const int thickness_res, const int subdiv)
 
static bool curves_ensure_attributes (const Curves &curves, CurvesBatchCache &cache, GPUMaterial *gpu_material, int subdiv)
 
bool curves_ensure_procedural_data (Curves *curves, CurvesEvalCache **r_hair_cache, GPUMaterial *gpu_material, const int subdiv, const int thickness_res)
 
int DRW_curves_material_count_get (Curves *curves)
 
GPUBatch * DRW_curves_batch_cache_get_edit_points (Curves *curves)
 
static void request_attribute (Curves &curves, const char *name)
 
GPUTexture ** DRW_curves_texture_for_evaluated_attribute (Curves *curves, const char *name, bool *r_is_point_domain)
 
void DRW_curves_batch_cache_create_requested (Object *ob)
 

Detailed Description

Curves API for render engines.

Definition in file draw_cache_impl_curves.cc.

Function Documentation

◆ curves_batch_cache_clear()

static void curves_batch_cache_clear ( Curves &  curves)
static

◆ curves_batch_cache_clear_data()

static void curves_batch_cache_clear_data ( CurvesEvalCache &  curves_cache)
static

◆ curves_batch_cache_ensure_procedural_final_attr()

static void curves_batch_cache_ensure_procedural_final_attr ( CurvesEvalCache &  cache,
const GPUVertFormat *  format,
const int  subdiv,
const int  index,
const char *  name 
)
static

◆ curves_batch_cache_ensure_procedural_final_points()

static void curves_batch_cache_ensure_procedural_final_points ( CurvesEvalCache &  cache,
int  subdiv 
)
static

◆ curves_batch_cache_ensure_procedural_indices()

static void curves_batch_cache_ensure_procedural_indices ( Curves &  curves,
CurvesEvalCache &  cache,
const int  thickness_res,
const int  subdiv 
)
static

◆ curves_batch_cache_ensure_procedural_pos()

static void curves_batch_cache_ensure_procedural_pos ( const Curves &  curves,
CurvesEvalCache &  cache,
GPUMaterial *  gpu_material 
)
static

◆ curves_batch_cache_ensure_procedural_strand_data()

static void curves_batch_cache_ensure_procedural_strand_data ( Curves &  curves,
CurvesEvalCache &  cache 
)
static

◆ curves_batch_cache_fill_segments_indices()

static void curves_batch_cache_fill_segments_indices ( const Curves &  curves,
const int  res,
GPUIndexBufBuilder &  elb 
)
static

◆ curves_batch_cache_fill_segments_proc_pos()

static void curves_batch_cache_fill_segments_proc_pos ( const Curves &  curves_id,
MutableSpan< PositionAndParameter >  posTime_data,
MutableSpan< float >  hairLength_data 
)
static

◆ curves_batch_cache_fill_strands_data()

static void curves_batch_cache_fill_strands_data ( const Curves &  curves_id,
GPUVertBufRaw &  data_step,
GPUVertBufRaw &  seg_step 
)
static

◆ curves_batch_cache_get()

static CurvesBatchCache& curves_batch_cache_get ( Curves &  curves)
static

◆ curves_batch_cache_init()

static void curves_batch_cache_init ( Curves &  curves)
static

◆ curves_batch_cache_valid()

static bool curves_batch_cache_valid ( const Curves &  curves)
static

Definition at line 66 of file draw_cache_impl_curves.cc.

References curves, and CurvesBatchCache::is_dirty.

Referenced by DRW_curves_batch_cache_validate().

◆ curves_batch_ensure_attribute()

static void curves_batch_ensure_attribute ( const Curves &  curves,
CurvesEvalCache &  cache,
const DRW_AttributeRequest &  request,
const int  subdiv,
const int  index 
)
static

◆ curves_discard_attributes()

static void curves_discard_attributes ( CurvesEvalCache &  curves_cache)
static

◆ curves_ensure_attributes()

static bool curves_ensure_attributes ( const Curves &  curves,
CurvesBatchCache &  cache,
GPUMaterial *  gpu_material,
int  subdiv 
)
static

◆ curves_ensure_procedural_data()

bool curves_ensure_procedural_data ( struct Curves *  curves,
struct CurvesEvalCache **  r_hair_cache,
struct GPUMaterial *  gpu_material,
int  subdiv,
int  thickness_res 
)

◆ DRW_curves_batch_cache_create_requested()

void DRW_curves_batch_cache_create_requested ( Object *  ob)

◆ DRW_curves_batch_cache_dirty_tag()

void DRW_curves_batch_cache_dirty_tag ( Curves *  curves,
int  mode 
)

◆ DRW_curves_batch_cache_free()

void DRW_curves_batch_cache_free ( Curves *  curves)

◆ DRW_curves_batch_cache_free_old()

void DRW_curves_batch_cache_free_old ( Curves *  curves,
int  ctime 
)

◆ DRW_curves_batch_cache_get_edit_points()

GPUBatch* DRW_curves_batch_cache_get_edit_points ( Curves *  curves)

◆ DRW_curves_batch_cache_validate()

void DRW_curves_batch_cache_validate ( Curves *  curves)

◆ drw_curves_get_attribute_sampler_name()

void drw_curves_get_attribute_sampler_name ( const char *  layer_name,
char  r_sampler_name[32] 
)

◆ DRW_curves_material_count_get()

int DRW_curves_material_count_get ( Curves *  curves)

Definition at line 612 of file draw_cache_impl_curves.cc.

References curves, and max_ii().

Referenced by DRW_cache_object_material_count_get().

◆ DRW_curves_texture_for_evaluated_attribute()

GPUTexture** DRW_curves_texture_for_evaluated_attribute ( struct Curves *  curves,
const char *  name,
bool *  r_is_point_domain 
)

◆ ensure_seg_pt_count()

static void ensure_seg_pt_count ( const Curves &  curves,
CurvesEvalCache &  curves_cache 
)
static

◆ request_attribute()

static void request_attribute ( Curves &  curves,
const char *  name 
)
static