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 CurvesBatchCachecurves_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)
 
GPUBatchDRW_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