Blender V4.3
draw_cache_impl_curve.cc File Reference

Curve API for render engines. More...

#include "MEM_guardedalloc.h"
#include "BLI_array.hh"
#include "BLI_color.hh"
#include "BLI_listbase.h"
#include "BLI_math_rotation.h"
#include "BLI_math_vector.h"
#include "BLI_math_vector_types.hh"
#include "BLI_span.hh"
#include "BLI_utildefines.h"
#include "DNA_curve_types.h"
#include "BKE_curve.hh"
#include "BKE_curves.hh"
#include "BKE_displist.h"
#include "BKE_geometry_set.hh"
#include "BKE_object_types.hh"
#include "BKE_vfont.hh"
#include "GPU_batch.hh"
#include "GPU_capabilities.hh"
#include "GPU_material.hh"
#include "GPU_texture.hh"
#include "UI_resources.hh"
#include "DRW_render.hh"
#include "draw_cache_inline.hh"
#include "draw_cache_impl.hh"

Go to the source code of this file.

Classes

struct  blender::draw::CurveRenderData
 
struct  blender::draw::CurveBatchCache
 

Namespaces

namespace  blender
 
namespace  blender::draw
 

Macros

#define SELECT   1
 
#define ACTIVE_NURB   (1 << 2)
 
#define BEZIER_HANDLE   (1 << 3)
 
#define EVEN_U_BIT   (1 << 4) /* Alternate this bit for every U vert. */
 
#define COLOR_SHIFT   5
 
#define DRW_TEST_ASSIGN_VBO(v)   (v = (DRW_vbo_requested(v) ? (v) : nullptr))
 
#define DRW_TEST_ASSIGN_IBO(v)   (v = (DRW_ibo_requested(v) ? (v) : nullptr))
 

Enumerations

enum  { blender::draw::COLOR_NURB_ULINE_ID = TH_HANDLE_AUTOCLAMP - TH_HANDLE_FREE + 2 , blender::draw::TOT_HANDLE_COL }
 
enum  {
  blender::draw::CU_DATATYPE_WIRE = 1 << 0 , blender::draw::CU_DATATYPE_OVERLAY = 1 << 1 , blender::draw::CU_DATATYPE_NORMAL = 1 << 2 , blender::draw::CU_DATATYPE_SURFACE = 1 << 3 ,
  blender::draw::CU_DATATYPE_TEXT_SELECT = 1 << 4
}
 

Functions

static void blender::draw::curve_batch_cache_clear (Curve *cu)
 
static void blender::draw::curve_render_overlay_verts_edges_len_get (ListBase *lb, int *r_vert_len, int *r_edge_len)
 
static void blender::draw::curve_eval_render_wire_verts_edges_len_get (const bke::CurvesGeometry &curves, int *r_curve_len, int *r_vert_len, int *r_edge_len)
 
static int blender::draw::curve_render_normal_len_get (const ListBase *lb, const CurveCache *ob_curve_cache)
 
static CurveRenderDatablender::draw::curve_render_data_create (Curve *cu, CurveCache *ob_curve_cache, const int types)
 
static void blender::draw::curve_render_data_free (CurveRenderData *rdata)
 
static int blender::draw::curve_render_data_overlay_verts_len_get (const CurveRenderData *rdata)
 
static int blender::draw::curve_render_data_overlay_edges_len_get (const CurveRenderData *rdata)
 
static int blender::draw::curve_render_data_wire_verts_len_get (const CurveRenderData *rdata)
 
static int blender::draw::curve_render_data_wire_edges_len_get (const CurveRenderData *rdata)
 
static int blender::draw::curve_render_data_wire_curve_len_get (const CurveRenderData *rdata)
 
static int blender::draw::curve_render_data_normal_len_get (const CurveRenderData *rdata)
 
static bool blender::draw::curve_batch_cache_valid (Curve *cu)
 
static void blender::draw::curve_batch_cache_init (Curve *cu)
 
static CurveBatchCacheblender::draw::curve_batch_cache_get (Curve *cu)
 
Expose via BKE callbacks
void blender::draw::DRW_curve_batch_cache_validate (Curve *cu)
 
void blender::draw::DRW_curve_batch_cache_dirty_tag (Curve *cu, int mode)
 
void blender::draw::DRW_curve_batch_cache_free (Curve *cu)
 
Private Curve Cache API
static void blender::draw::curve_create_curves_pos (CurveRenderData *rdata, gpu::VertBuf *vbo_curves_pos)
 
static void blender::draw::curve_create_attribute (CurveRenderData *rdata, gpu::VertBuf &vbo_attr)
 
static void blender::draw::curve_create_curves_lines (CurveRenderData *rdata, gpu::IndexBuf *ibo_curve_lines)
 
static void blender::draw::curve_create_edit_curves_nor (CurveRenderData *rdata, gpu::VertBuf &vbo_curves_nor, const Scene *scene)
 
static uint8_t blender::draw::beztriple_vflag_get (CurveRenderData *rdata, uint8_t flag, uint8_t col_id, int v_idx, int nu_id, bool handle_point, const bool handle_selected)
 
static uint8_t blender::draw::bpoint_vflag_get (CurveRenderData *rdata, uint8_t flag, int v_idx, int nu_id, int u)
 
static void blender::draw::curve_create_edit_data_and_handles (CurveRenderData *rdata, gpu::VertBuf *vbo_pos, gpu::VertBuf *vbo_data, gpu::IndexBuf *ibo_edit_verts_points, gpu::IndexBuf *ibo_edit_lines)
 
Curve
blender::gpu::Batch * blender::draw::DRW_curve_batch_cache_get_wire_edge (Curve *cu)
 
blender::gpu::Batch * blender::draw::DRW_curve_batch_cache_get_wire_edge_viewer_attribute (Curve *cu)
 
blender::gpu::Batch * blender::draw::DRW_curve_batch_cache_get_normal_edge (Curve *cu)
 
blender::gpu::Batch * blender::draw::DRW_curve_batch_cache_get_edit_edges (Curve *cu)
 
blender::gpu::Batch * blender::draw::DRW_curve_batch_cache_get_edit_verts (Curve *cu)
 
int blender::draw::DRW_curve_material_count_get (const Curve *cu)
 
void blender::draw::DRW_curve_batch_cache_create_requested (Object *ob, const Scene *scene)
 

Detailed Description

Curve API for render engines.

Definition in file draw_cache_impl_curve.cc.

Macro Definition Documentation

◆ ACTIVE_NURB

#define ACTIVE_NURB   (1 << 2)

◆ BEZIER_HANDLE

#define BEZIER_HANDLE   (1 << 3)

Definition at line 49 of file draw_cache_impl_curve.cc.

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

◆ COLOR_SHIFT

#define COLOR_SHIFT   5

◆ DRW_TEST_ASSIGN_IBO

#define DRW_TEST_ASSIGN_IBO ( v)    (v = (DRW_ibo_requested(v) ? (v) : nullptr))

◆ DRW_TEST_ASSIGN_VBO

#define DRW_TEST_ASSIGN_VBO ( v)    (v = (DRW_vbo_requested(v) ? (v) : nullptr))

◆ EVEN_U_BIT

#define EVEN_U_BIT   (1 << 4) /* Alternate this bit for every U vert. */

Definition at line 50 of file draw_cache_impl_curve.cc.

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

◆ SELECT

#define SELECT   1

Definition at line 47 of file draw_cache_impl_curve.cc.