Blender  V2.93
Classes | Macros
draw_cache_extract_mesh.c File Reference

Extraction of Mesh data into VBO to feed to GPU. More...

#include "MEM_guardedalloc.h"
#include "BLI_alloca.h"
#include "BLI_bitmap.h"
#include "BLI_buffer.h"
#include "BLI_edgehash.h"
#include "BLI_jitter_2d.h"
#include "BLI_math_bits.h"
#include "BLI_math_vector.h"
#include "BLI_string.h"
#include "BLI_task.h"
#include "BLI_utildefines.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BKE_bvhutils.h"
#include "BKE_customdata.h"
#include "BKE_deform.h"
#include "BKE_editmesh.h"
#include "BKE_editmesh_bvh.h"
#include "BKE_editmesh_cache.h"
#include "BKE_editmesh_tangent.h"
#include "BKE_mesh.h"
#include "BKE_mesh_runtime.h"
#include "BKE_mesh_tangent.h"
#include "BKE_modifier.h"
#include "BKE_object_deform.h"
#include "BKE_paint.h"
#include "atomic_ops.h"
#include "bmesh.h"
#include "GPU_batch.h"
#include "GPU_capabilities.h"
#include "DRW_render.h"
#include "ED_mesh.h"
#include "ED_uvedit.h"
#include "draw_cache_impl.h"
#include "draw_cache_inline.h"
#include "draw_cache_extract.h"

Go to the source code of this file.

Classes

struct  MeshRenderData
 
struct  ExtractTriBMesh_Params
 
struct  ExtractTriMesh_Params
 
struct  ExtractPolyBMesh_Params
 
struct  ExtractPolyMesh_Params
 
struct  ExtractLEdgeBMesh_Params
 
struct  ExtractLEdgeMesh_Params
 
struct  ExtractLVertBMesh_Params
 
struct  ExtractLVertMesh_Params
 
struct  MeshExtract
 
struct  MeshExtract_Tri_Data
 
struct  MeshExtract_LinePaintMask_Data
 
struct  MeshExtract_LineAdjacency_Data
 
struct  MeshExtract_EditUvElem_Data
 
struct  PosNorLoop
 
struct  MeshExtract_PosNor_Data
 
struct  PosNorHQLoop
 
struct  MeshExtract_PosNorHQ_Data
 
struct  gpuHQNor
 
struct  MeshExtract_Orco_Data
 
struct  MeshExtract_EdgeFac_Data
 
struct  MeshExtract_Weight_Data
 
struct  EditLoopData
 
struct  MeshExtract_EditUVData_Data
 
struct  UVStretchAngle
 
struct  MeshExtract_StretchAngle_Data
 
struct  BVHTree_OverlapData
 
struct  MeshExtract_FdotUV_Data
 
struct  MeshExtract_EditUVFdotData_Data
 
struct  SkinRootData
 
struct  ExtractUserData
 
struct  ExtractTaskData
 
struct  MeshRenderDataUpdateTaskData
 
struct  ExtractSingleThreadedTaskData
 
struct  UserDataInitTaskData
 

Macros

#define TEST_ASSIGN(type, type_lowercase, name)
 
#define EXTRACT(buf, name)
 

Functions

Extract Loop
static void extract_range_task_create (struct TaskGraph *task_graph, struct TaskNode *task_node_user_data_init, ExtractTaskData *taskdata, const eMRIterType type, int start, int length)
 
static void extract_task_create (struct TaskGraph *task_graph, struct TaskNode *task_node_mesh_render_data, struct TaskNode *task_node_user_data_init, ListBase *single_threaded_task_datas, ListBase *user_data_init_task_datas, const Scene *scene, const MeshRenderData *mr, MeshBatchCache *cache, const MeshExtract *extract, void *buf, int32_t *task_counter)
 
void mesh_buffer_cache_create_requested (struct TaskGraph *task_graph, MeshBatchCache *cache, MeshBufferCache mbc, Mesh *me, const bool is_editmode, const bool is_paint_mode, const bool is_mode_active, const float obmat[4][4], const bool do_final, const bool do_uvedit, const bool use_subsurf_fdots, const DRW_MeshCDMask *cd_layer_used, const Scene *scene, const ToolSettings *ts, const bool use_hide)
 

Mesh Elements Extract: Loop Triangles

#define EXTRACT_TRIS_LOOPTRI_FOREACH_BM_BEGIN(elem_tri, index_tri, params)
 
#define EXTRACT_TRIS_LOOPTRI_FOREACH_BM_END   }
 
#define EXTRACT_TRIS_LOOPTRI_FOREACH_MESH_BEGIN(elem_tri, index_tri, params)
 
#define EXTRACT_TRIS_LOOPTRI_FOREACH_MESH_END   }
 
typedef struct ExtractTriBMesh_Params ExtractTriBMesh_Params
 
typedef void() ExtractTriBMeshFn(const MeshRenderData *mr, const ExtractTriBMesh_Params *params, void *data)
 
typedef struct ExtractTriMesh_Params ExtractTriMesh_Params
 
typedef void() ExtractTriMeshFn(const MeshRenderData *mr, const ExtractTriMesh_Params *params, void *data)
 

Mesh Elements Extract: Polygons, Loops

#define EXTRACT_POLY_FOREACH_BM_BEGIN(elem_poly, index_poly, params, mr)
 
#define EXTRACT_POLY_FOREACH_BM_END
 
#define EXTRACT_POLY_AND_LOOP_FOREACH_BM_BEGIN(elem_loop, index_loop, params, mr)
 
#define EXTRACT_POLY_AND_LOOP_FOREACH_BM_END(elem_loop)
 
#define EXTRACT_POLY_FOREACH_MESH_BEGIN(elem_poly, index_poly, params, mr)
 
#define EXTRACT_POLY_FOREACH_MESH_END
 
#define EXTRACT_POLY_AND_LOOP_FOREACH_MESH_BEGIN(elem_poly, index_poly, elem_loop, index_loop, params, mr)
 
#define EXTRACT_POLY_AND_LOOP_FOREACH_MESH_END
 
typedef struct ExtractPolyBMesh_Params ExtractPolyBMesh_Params
 
typedef void() ExtractPolyBMeshFn(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
typedef struct ExtractPolyMesh_Params ExtractPolyMesh_Params
 
typedef void() ExtractPolyMeshFn(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 

Mesh Elements Extract: Loose Edges

#define EXTRACT_LEDGE_FOREACH_BM_BEGIN(elem_edge, index_ledge, params)
 
#define EXTRACT_LEDGE_FOREACH_BM_END
 
#define EXTRACT_LEDGE_FOREACH_MESH_BEGIN(elem_edge, index_ledge, params, mr)
 
#define EXTRACT_LEDGE_FOREACH_MESH_END
 
typedef struct ExtractLEdgeBMesh_Params ExtractLEdgeBMesh_Params
 
typedef void() ExtractLEdgeBMeshFn(const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *data)
 
typedef struct ExtractLEdgeMesh_Params ExtractLEdgeMesh_Params
 
typedef void() ExtractLEdgeMeshFn(const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *data)
 

Mesh Elements Extract: Loose Vertices

#define EXTRACT_LVERT_FOREACH_BM_BEGIN(elem_vert, index_lvert, params)
 
#define EXTRACT_LVERT_FOREACH_BM_END
 
#define EXTRACT_LVERT_FOREACH_MESH_BEGIN(elem, index_lvert, params, mr)
 
#define EXTRACT_LVERT_FOREACH_MESH_END
 
typedef struct ExtractLVertBMesh_Params ExtractLVertBMesh_Params
 
typedef void() ExtractLVertBMeshFn(const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *data)
 
typedef struct ExtractLVertMesh_Params ExtractLVertMesh_Params
 
typedef void() ExtractLVertMeshFn(const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *data)
 

Extract Line Adjacency Indices

#define NO_EDGE   INT_MAX
 
typedef struct MeshExtract_LineAdjacency_Data MeshExtract_LineAdjacency_Data
 
static const MeshExtract extract_lines_adjacency
 
static void * extract_lines_adjacency_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf))
 
BLI_INLINE void lines_adjacency_triangle (uint v1, uint v2, uint v3, uint l1, uint l2, uint l3, MeshExtract_LineAdjacency_Data *data)
 
static void extract_lines_adjacency_iter_looptri_bm (const MeshRenderData *UNUSED(mr), const struct ExtractTriBMesh_Params *params, void *data)
 
static void extract_lines_adjacency_iter_looptri_mesh (const MeshRenderData *mr, const struct ExtractTriMesh_Params *params, void *data)
 
static void extract_lines_adjacency_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *cache, void *ibo, void *_data)
 

Extract Facedots Normal and edit flag

#define NOR_AND_FLAG_DEFAULT   0
 
#define NOR_AND_FLAG_SELECT   1
 
#define NOR_AND_FLAG_ACTIVE   -1
 
#define NOR_AND_FLAG_HIDDEN   -2
 
static const MeshExtract extract_fdots_nor
 
static void * extract_fdots_nor_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_fdots_nor_finish (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf, void *UNUSED(data))
 

ExtractTaskData

enum  ExtractTaskDataType { EXTRACT_MESH_EXTRACT , EXTRACT_LINES_LOOSE }
 
typedef struct ExtractUserData ExtractUserData
 
typedef enum ExtractTaskDataType ExtractTaskDataType
 
typedef struct ExtractTaskData ExtractTaskData
 
static ExtractTaskDataextract_task_data_create_mesh_extract (const MeshRenderData *mr, struct MeshBatchCache *cache, const MeshExtract *extract, void *buf, int32_t *task_counter)
 
static ExtractTaskDataextract_task_data_create_lines_loose (const MeshRenderData *mr, struct MeshBatchCache *cache)
 
static void extract_task_data_free (void *data)
 
BLI_INLINE void mesh_extract_iter (const MeshRenderData *mr, const eMRIterType iter_type, int start, int end, const MeshExtract *extract, void *user_data)
 
static void extract_init (ExtractTaskData *data)
 
static void extract_run (void *__restrict taskdata)
 
static void extract_init_and_run (void *__restrict taskdata)
 

Mesh/BMesh Interface (indirect, partially cached access to complex data).

typedef struct MeshRenderData MeshRenderData
 
static void mesh_render_data_update_loose_geom (MeshRenderData *mr, const eMRIterType iter_type, const eMRDataType UNUSED(data_flag))
 
static void mesh_render_data_update_looptris (MeshRenderData *mr, const eMRIterType iter_type, const eMRDataType data_flag)
 
static void mesh_render_data_update_normals (MeshRenderData *mr, const eMRIterType UNUSED(iter_type), const eMRDataType data_flag)
 
static MeshRenderDatamesh_render_data_create (Mesh *me, const bool is_editmode, const bool is_paint_mode, const bool is_mode_active, const float obmat[4][4], const bool do_final, const bool do_uvedit, const DRW_MeshCDMask *UNUSED(cd_used), const ToolSettings *ts, const eMRIterType iter_type, const eMRDataType data_flag)
 
static void mesh_render_data_free (MeshRenderData *mr)
 
BLI_INLINE BMFacebm_original_face_get (const MeshRenderData *mr, int idx)
 
BLI_INLINE BMEdgebm_original_edge_get (const MeshRenderData *mr, int idx)
 
BLI_INLINE BMVertbm_original_vert_get (const MeshRenderData *mr, int idx)
 
BLI_INLINE const floatbm_vert_co_get (const MeshRenderData *mr, const BMVert *eve)
 
BLI_INLINE const floatbm_vert_no_get (const MeshRenderData *mr, const BMVert *eve)
 
BLI_INLINE const floatbm_face_no_get (const MeshRenderData *mr, const BMFace *efa)
 

Mesh Elements Extract Struct

typedef void *() ExtractInitFn(const MeshRenderData *mr, struct MeshBatchCache *cache, void *buffer)
 
typedef void() ExtractFinishFn(const MeshRenderData *mr, struct MeshBatchCache *cache, void *buffer, void *data)
 
typedef struct MeshExtract MeshExtract
 
BLI_INLINE eMRIterType mesh_extract_iter_type (const MeshExtract *ext)
 

Extract Triangles Indices

typedef struct MeshExtract_Tri_Data MeshExtract_Tri_Data
 
static const MeshExtract extract_tris
 
static void * extract_tris_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo))
 
static void extract_tris_iter_looptri_bm (const MeshRenderData *mr, const struct ExtractTriBMesh_Params *params, void *_data)
 
static void extract_tris_iter_looptri_mesh (const MeshRenderData *mr, const struct ExtractTriMesh_Params *params, void *_data)
 
static void extract_tris_finish (const MeshRenderData *mr, struct MeshBatchCache *cache, void *ibo, void *_data)
 

Extract Paint Mask Line Indices

typedef struct MeshExtract_LinePaintMask_Data MeshExtract_LinePaintMask_Data
 
static const MeshExtract extract_lines_paint_mask
 
static void * extract_lines_paint_mask_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf))
 
static void extract_lines_paint_mask_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
 
static void extract_lines_paint_mask_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *_data)
 

Extract Edit UV Triangles Indices

typedef struct MeshExtract_EditUvElem_Data MeshExtract_EditUvElem_Data
 
static const MeshExtract extract_edituv_tris
 
static void * extract_edituv_tris_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo))
 
BLI_INLINE void edituv_tri_add (MeshExtract_EditUvElem_Data *data, bool hidden, bool selected, int v1, int v2, int v3)
 
static void extract_edituv_tris_iter_looptri_bm (const MeshRenderData *UNUSED(mr), const struct ExtractTriBMesh_Params *params, void *data)
 
static void extract_edituv_tris_iter_looptri_mesh (const MeshRenderData *mr, const struct ExtractTriMesh_Params *params, void *data)
 
static void extract_edituv_tris_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *data)
 

Extract Position and Vertex Normal

typedef struct PosNorLoop PosNorLoop
 
typedef struct MeshExtract_PosNor_Data MeshExtract_PosNor_Data
 
static const MeshExtract extract_pos_nor
 
static void * extract_pos_nor_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_pos_nor_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
 
static void extract_pos_nor_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
 
static void extract_pos_nor_iter_ledge_bm (const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *_data)
 
static void extract_pos_nor_iter_ledge_mesh (const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *_data)
 
static void extract_pos_nor_iter_lvert_bm (const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *_data)
 
static void extract_pos_nor_iter_lvert_mesh (const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *_data)
 
static void extract_pos_nor_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(vbo), void *data)
 

Extract Position and High Quality Vertex Normal

typedef struct PosNorHQLoop PosNorHQLoop
 
typedef struct MeshExtract_PosNorHQ_Data MeshExtract_PosNorHQ_Data
 
static const MeshExtract extract_pos_nor_hq
 
static void * extract_pos_nor_hq_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_pos_nor_hq_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
 
static void extract_pos_nor_hq_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
 
static void extract_pos_nor_hq_iter_ledge_bm (const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *_data)
 
static void extract_pos_nor_hq_iter_ledge_mesh (const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *_data)
 
static void extract_pos_nor_hq_iter_lvert_bm (const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *_data)
 
static void extract_pos_nor_hq_iter_lvert_mesh (const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *_data)
 
static void extract_pos_nor_hq_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(vbo), void *data)
 

Extract HQ Loop Normal

typedef struct gpuHQNor gpuHQNor
 
static const MeshExtract extract_lnor_hq
 
static void * extract_lnor_hq_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_lnor_hq_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
static void extract_lnor_hq_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 

Extract Orco

typedef struct MeshExtract_Orco_Data MeshExtract_Orco_Data
 
static const MeshExtract extract_orco
 
static void * extract_orco_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_orco_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
static void extract_orco_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 
static void extract_orco_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)
 

Extract Edge Factor

Defines how much an edge is visible.

typedef struct MeshExtract_EdgeFac_Data MeshExtract_EdgeFac_Data
 
static const MeshExtract extract_edge_fac
 
static float loop_edge_factor_get (const float f_no[3], const float v_co[3], const float v_no[3], const float v_next_co[3])
 
static void * extract_edge_fac_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_edge_fac_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
 
static void extract_edge_fac_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
 
static void extract_edge_fac_iter_ledge_bm (const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *_data)
 
static void extract_edge_fac_iter_ledge_mesh (const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *_data)
 
static void extract_edge_fac_finish (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf, void *_data)
 

Extract Vertex Weight

typedef struct MeshExtract_Weight_Data MeshExtract_Weight_Data
 
static const MeshExtract extract_weights
 
static float evaluate_vertex_weight (const MDeformVert *dvert, const DRW_MeshWeightState *wstate)
 
static void * extract_weights_init (const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf)
 
static void extract_weights_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
 
static void extract_weights_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
 
static void extract_weights_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)
 

Extract Edit Mode Data / Flags

typedef struct EditLoopData EditLoopData
 
static const MeshExtract extract_edit_data
 
static void mesh_render_data_face_flag (const MeshRenderData *mr, BMFace *efa, const int cd_ofs, EditLoopData *eattr)
 
static void mesh_render_data_edge_flag (const MeshRenderData *mr, BMEdge *eed, EditLoopData *eattr)
 
static void mesh_render_data_loop_flag (const MeshRenderData *mr, BMLoop *l, const int cd_ofs, EditLoopData *eattr)
 
static void mesh_render_data_loop_edge_flag (const MeshRenderData *mr, BMLoop *l, const int cd_ofs, EditLoopData *eattr)
 
static void mesh_render_data_vert_flag (const MeshRenderData *mr, BMVert *eve, EditLoopData *eattr)
 
static void * extract_edit_data_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_edit_data_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
 
static void extract_edit_data_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
 
static void extract_edit_data_iter_ledge_bm (const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *_data)
 
static void extract_edit_data_iter_ledge_mesh (const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *_data)
 
static void extract_edit_data_iter_lvert_bm (const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *_data)
 
static void extract_edit_data_iter_lvert_mesh (const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *_data)
 

Extract Edit UV Data / Flags

typedef struct MeshExtract_EditUVData_Data MeshExtract_EditUVData_Data
 
static const MeshExtract extract_edituv_data
 
static void * extract_edituv_data_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_edituv_data_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
 
static void extract_edituv_data_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
 
static void extract_edituv_data_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)
 

Extract Edit UV angle stretch

typedef struct UVStretchAngle UVStretchAngle
 
typedef struct MeshExtract_StretchAngle_Data MeshExtract_StretchAngle_Data
 
static const MeshExtract extract_edituv_stretch_angle
 
static void compute_normalize_edge_vectors (float auv[2][2], float av[2][3], const float uv[2], const float uv_prev[2], const float co[3], const float co_prev[3])
 
static short v2_to_short_angle (const float v[2])
 
static void edituv_get_edituv_stretch_angle (float auv[2][2], const float av[2][3], UVStretchAngle *r_stretch)
 
static void * extract_edituv_stretch_angle_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_edituv_stretch_angle_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
 
static void extract_edituv_stretch_angle_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
 
static void extract_edituv_stretch_angle_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)
 

Extract Facedots UV

typedef struct MeshExtract_FdotUV_Data MeshExtract_FdotUV_Data
 
static const MeshExtract extract_fdots_uv
 
static void * extract_fdots_uv_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_fdots_uv_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
 
static void extract_fdots_uv_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
 
static void extract_fdots_uv_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)
 

Extract Facedots Edit UV flag

typedef struct MeshExtract_EditUVFdotData_Data MeshExtract_EditUVFdotData_Data
 
static const MeshExtract extract_fdots_edituv_data
 
static void * extract_fdots_edituv_data_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_fdots_edituv_data_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
 
static void extract_fdots_edituv_data_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
 
static void extract_fdots_edituv_data_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)
 

Extract Skin Modifier Roots

typedef struct SkinRootData SkinRootData
 
static const MeshExtract extract_skin_roots
 
static void * extract_skin_roots_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 

Task Node - Update Mesh Render Data

typedef struct MeshRenderDataUpdateTaskData MeshRenderDataUpdateTaskData
 
static void mesh_render_data_update_task_data_free (MeshRenderDataUpdateTaskData *taskdata)
 
static void mesh_extract_render_data_node_exec (void *__restrict task_data)
 
static struct TaskNodemesh_extract_render_data_node_create (struct TaskGraph *task_graph, MeshRenderData *mr, const eMRIterType iter_type, const eMRDataType data_flag)
 

Task Node - Extract Single Threaded

typedef struct ExtractSingleThreadedTaskData ExtractSingleThreadedTaskData
 
static void extract_single_threaded_task_data_free (ExtractSingleThreadedTaskData *taskdata)
 
static void extract_single_threaded_task_node_exec (void *__restrict task_data)
 
static struct TaskNodeextract_single_threaded_task_node_create (struct TaskGraph *task_graph, ExtractSingleThreadedTaskData *task_data)
 

Task Node - UserData Initializer

typedef struct UserDataInitTaskData UserDataInitTaskData
 
static void user_data_init_task_data_free (UserDataInitTaskData *taskdata)
 
static void user_data_init_task_data_exec (void *__restrict task_data)
 
static struct TaskNodeuser_data_init_task_node_create (struct TaskGraph *task_graph, UserDataInitTaskData *task_data)
 

Extract Edges Indices

static const MeshExtract extract_lines
 
static void * extract_lines_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf))
 
static void extract_lines_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *elb)
 
static void extract_lines_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *elb)
 
static void extract_lines_iter_ledge_bm (const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *elb)
 
static void extract_lines_iter_ledge_mesh (const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *elb)
 
static void extract_lines_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *elb)
 

Extract Loose Edges Sub Buffer

static const MeshExtract extract_lines_with_lines_loose
 
static void extract_lines_loose_subbuffer (const MeshRenderData *mr, struct MeshBatchCache *cache)
 
static void extract_lines_with_lines_loose_finish (const MeshRenderData *mr, struct MeshBatchCache *cache, void *ibo, void *elb)
 

Extract Point Indices

static const MeshExtract extract_points
 
static void * extract_points_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf))
 
BLI_INLINE void vert_set_bm (GPUIndexBufBuilder *elb, BMVert *eve, int l_index)
 
BLI_INLINE void vert_set_mesh (GPUIndexBufBuilder *elb, const MeshRenderData *mr, const int v_index, const int l_index)
 
static void extract_points_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *elb)
 
static void extract_points_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *elb)
 
static void extract_points_iter_ledge_bm (const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *elb)
 
static void extract_points_iter_ledge_mesh (const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *elb)
 
static void extract_points_iter_lvert_bm (const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *elb)
 
static void extract_points_iter_lvert_mesh (const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *elb)
 
static void extract_points_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *elb)
 

Extract Facedots Indices

static const MeshExtract extract_fdots
 
static void * extract_fdots_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf))
 
static void extract_fdots_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *elb)
 
static void extract_fdots_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *elb)
 
static void extract_fdots_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *elb)
 

Extract Edit UV Line Indices around faces

static const MeshExtract extract_edituv_lines
 
static void * extract_edituv_lines_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo))
 
BLI_INLINE void edituv_edge_add (MeshExtract_EditUvElem_Data *data, bool hidden, bool selected, int v1, int v2)
 
static void extract_edituv_lines_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
static void extract_edituv_lines_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 
static void extract_edituv_lines_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *data)
 

Extract Edit UV Points Indices

static const MeshExtract extract_edituv_points
 
static void * extract_edituv_points_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo))
 
BLI_INLINE void edituv_point_add (MeshExtract_EditUvElem_Data *data, bool hidden, bool selected, int v1)
 
static void extract_edituv_points_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
static void extract_edituv_points_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 
static void extract_edituv_points_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *data)
 

Extract Edit UV Facedots Indices

static const MeshExtract extract_edituv_fdots
 
static void * extract_edituv_fdots_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo))
 
BLI_INLINE void edituv_facedot_add (MeshExtract_EditUvElem_Data *data, bool hidden, bool selected, int face_index)
 
static void extract_edituv_fdots_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
static void extract_edituv_fdots_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 
static void extract_edituv_fdots_finish (const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *_data)
 

Extract Loop Normal

static const MeshExtract extract_lnor
 
static void * extract_lnor_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_lnor_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
static void extract_lnor_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 

Extract UV layers

static const MeshExtract extract_uv
 
static void * extract_uv_init (const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf)
 

Extract Tangent layers

static const MeshExtract extract_tan
 
static void extract_tan_ex (const MeshRenderData *mr, struct MeshBatchCache *cache, GPUVertBuf *vbo, const bool do_hq)
 
static void * extract_tan_init (const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf)
 

Extract HQ Tangent layers

static const MeshExtract extract_tan_hq
 
static void * extract_tan_hq_init (const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf)
 

Extract Sculpt Data

static const MeshExtract extract_sculpt_data
 
static void * extract_sculpt_data_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 

Extract VCol

static const MeshExtract extract_vcol
 
static void * extract_vcol_init (const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf)
 

Extract Edit UV area stretch

static const MeshExtract extract_edituv_stretch_area
 
static void * extract_edituv_stretch_area_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
BLI_INLINE float area_ratio_get (float area, float uvarea)
 
BLI_INLINE float area_ratio_to_stretch (float ratio, float tot_ratio, float inv_tot_ratio)
 
static void mesh_edituv_stretch_area_finish (const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf, void *UNUSED(data))
 

Extract Edit Mesh Analysis Colors

static const MeshExtract extract_mesh_analysis
 
static void * extract_mesh_analysis_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void axis_from_enum_v3 (float v[3], const char axis)
 
BLI_INLINE float overhang_remap (float fac, float min, float max, float minmax_irange)
 
static void statvis_calc_overhang (const MeshRenderData *mr, float *r_overhang)
 
static void uv_from_jitter_v2 (float uv[2])
 
BLI_INLINE float thickness_remap (float fac, float min, float max, float minmax_irange)
 
static void statvis_calc_thickness (const MeshRenderData *mr, float *r_thickness)
 
static bool bvh_overlap_cb (void *userdata, int index_a, int index_b, int UNUSED(thread))
 
static void statvis_calc_intersect (const MeshRenderData *mr, float *r_intersect)
 
BLI_INLINE float distort_remap (float fac, float min, float UNUSED(max), float minmax_irange)
 
static void statvis_calc_distort (const MeshRenderData *mr, float *r_distort)
 
BLI_INLINE float sharp_remap (float fac, float min, float UNUSED(max), float minmax_irange)
 
static void statvis_calc_sharp (const MeshRenderData *mr, float *r_sharp)
 
static void extract_mesh_analysis_finish (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf, void *UNUSED(data))
 

Extract Facedots positions

static const MeshExtract extract_fdots_pos
 
static void * extract_fdots_pos_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_fdots_pos_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
static void extract_fdots_pos_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 

Extract Facedots High Quality Normal and edit flag

static const MeshExtract extract_fdots_nor_hq
 
static void * extract_fdots_nor_hq_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_fdots_nor_hq_finish (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf, void *UNUSED(data))
 

Extract Selection Index

static const MeshExtract extract_poly_idx
 
static const MeshExtract extract_edge_idx
 
static const MeshExtract extract_vert_idx
 
static const MeshExtract extract_fdot_idx
 
static void * extract_select_idx_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_poly_idx_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
static void extract_edge_idx_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
static void extract_vert_idx_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
static void extract_edge_idx_iter_ledge_bm (const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *data)
 
static void extract_vert_idx_iter_ledge_bm (const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *data)
 
static void extract_vert_idx_iter_lvert_bm (const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *data)
 
static void extract_poly_idx_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 
static void extract_edge_idx_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 
static void extract_vert_idx_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 
static void extract_edge_idx_iter_ledge_mesh (const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *data)
 
static void extract_vert_idx_iter_ledge_mesh (const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *data)
 
static void extract_vert_idx_iter_lvert_mesh (const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *data)
 
static void * extract_select_fdot_idx_init (const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
 
static void extract_fdot_idx_iter_poly_bm (const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
 
static void extract_fdot_idx_iter_poly_mesh (const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
 

Detailed Description

Extraction of Mesh data into VBO to feed to GPU.

Definition in file draw_cache_extract_mesh.c.

Macro Definition Documentation

◆ EXTRACT

#define EXTRACT (   buf,
  name 
)
Value:
if (mbc.buf.name) { \
extract_task_create(task_graph, \
task_node_mesh_render_data, \
task_node_user_data_init, \
&single_threaded_task_data->task_datas, \
&user_data_init_task_data->task_datas, \
scene, \
mr, \
cache, \
&extract_##name, \
mbc.buf.name, \
&task_counters[counter_used++]); \
} \
((void)0)
Scene scene
string name
Definition: scene.h:222

◆ EXTRACT_LEDGE_FOREACH_BM_BEGIN

#define EXTRACT_LEDGE_FOREACH_BM_BEGIN (   elem_edge,
  index_ledge,
  params 
)
Value:
{ \
BLI_assert((mr->bm->elem_table_dirty & BM_EDGE) == 0); \
BMEdge **_etable = mr->bm->etable; \
const int *_ledge = (params)->ledge; \
const int _ledge_index_end = (params)->ledge_range[1]; \
for (int index_ledge = (params)->ledge_range[0]; index_ledge < _ledge_index_end; \
index_ledge += 1) { \
BMEdge *elem_edge = _etable[_ledge[index_ledge]]; \
(void)elem_edge; /* Quiet warning when unused. */ \
{
#define CHECK_TYPE(var, type)
@ BM_EDGE
Definition: bmesh_class.h:384
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]

Definition at line 657 of file draw_cache_extract_mesh.c.

◆ EXTRACT_LEDGE_FOREACH_BM_END

#define EXTRACT_LEDGE_FOREACH_BM_END
Value:
} \
} \
}

Definition at line 669 of file draw_cache_extract_mesh.c.

◆ EXTRACT_LEDGE_FOREACH_MESH_BEGIN

#define EXTRACT_LEDGE_FOREACH_MESH_BEGIN (   elem_edge,
  index_ledge,
  params,
  mr 
)
Value:
{ \
const MEdge *_medge = mr->medge; \
const int *_ledge = (params)->ledge; \
const int _ledge_index_end = (params)->ledge_range[1]; \
for (int index_ledge = (params)->ledge_range[0]; index_ledge < _ledge_index_end; \
index_ledge += 1) { \
const MEdge *elem_edge = &_medge[_ledge[index_ledge]]; \
(void)elem_edge; /* Quiet warning when unused. */ \
{

Definition at line 682 of file draw_cache_extract_mesh.c.

◆ EXTRACT_LEDGE_FOREACH_MESH_END

#define EXTRACT_LEDGE_FOREACH_MESH_END
Value:
} \
} \
}

Definition at line 693 of file draw_cache_extract_mesh.c.

◆ EXTRACT_LVERT_FOREACH_BM_BEGIN

#define EXTRACT_LVERT_FOREACH_BM_BEGIN (   elem_vert,
  index_lvert,
  params 
)
Value:
{ \
BLI_assert((mr->bm->elem_table_dirty & BM_FACE) == 0); \
BMVert **vtable = mr->bm->vtable; \
const int *lverts = (params)->lvert; \
const int _lvert_index_end = (params)->lvert_range[1]; \
for (int index_lvert = (params)->lvert_range[0]; index_lvert < _lvert_index_end; \
index_lvert += 1) { \
BMVert *elem_vert = vtable[lverts[index_lvert]]; \
(void)elem_vert; /* Quiet warning when unused. */ \
{
@ BM_FACE
Definition: bmesh_class.h:386

Definition at line 712 of file draw_cache_extract_mesh.c.

◆ EXTRACT_LVERT_FOREACH_BM_END

#define EXTRACT_LVERT_FOREACH_BM_END
Value:
} \
} \
}

Definition at line 724 of file draw_cache_extract_mesh.c.

◆ EXTRACT_LVERT_FOREACH_MESH_BEGIN

#define EXTRACT_LVERT_FOREACH_MESH_BEGIN (   elem,
  index_lvert,
  params,
  mr 
)
Value:
{ \
const MVert *mvert = mr->mvert; \
const int *lverts = (params)->lvert; \
const int _lvert_index_end = (params)->lvert_range[1]; \
for (int index_lvert = (params)->lvert_range[0]; index_lvert < _lvert_index_end; \
index_lvert += 1) { \
const MVert *elem = &mvert[lverts[index_lvert]]; \
(void)elem; /* Quiet warning when unused. */ \
{

Definition at line 737 of file draw_cache_extract_mesh.c.

◆ EXTRACT_LVERT_FOREACH_MESH_END

#define EXTRACT_LVERT_FOREACH_MESH_END
Value:
} \
} \
}

Definition at line 748 of file draw_cache_extract_mesh.c.

◆ EXTRACT_POLY_AND_LOOP_FOREACH_BM_BEGIN

#define EXTRACT_POLY_AND_LOOP_FOREACH_BM_BEGIN (   elem_loop,
  index_loop,
  params,
  mr 
)
Value:
{ \
BLI_assert((mr->bm->elem_table_dirty & BM_FACE) == 0); \
BMFace **_ftable = mr->bm->ftable; \
const int _poly_index_end = (params)->poly_range[1]; \
for (int index_poly = (params)->poly_range[0]; index_poly < _poly_index_end; \
index_poly += 1) { \
BMFace *elem_face = _ftable[index_poly]; \
BMLoop *elem_loop, *l_first; \
elem_loop = l_first = BM_FACE_FIRST_LOOP(elem_face); \
do { \
const int index_loop = BM_elem_index_get(elem_loop); \
(void)index_loop; /* Quiet warning when unused. */
#define BM_FACE_FIRST_LOOP(p)
Definition: bmesh_class.h:553
#define BM_elem_index_get(ele)
Definition: bmesh_inline.h:124

Definition at line 579 of file draw_cache_extract_mesh.c.

◆ EXTRACT_POLY_AND_LOOP_FOREACH_BM_END

#define EXTRACT_POLY_AND_LOOP_FOREACH_BM_END (   elem_loop)
Value:
} \
while ((elem_loop = elem_loop->next) != l_first) \
; \
} \
}

Definition at line 594 of file draw_cache_extract_mesh.c.

◆ EXTRACT_POLY_AND_LOOP_FOREACH_MESH_BEGIN

#define EXTRACT_POLY_AND_LOOP_FOREACH_MESH_BEGIN (   elem_poly,
  index_poly,
  elem_loop,
  index_loop,
  params,
  mr 
)
Value:
{ \
const MPoly *_mpoly = mr->mpoly; \
const MLoop *_mloop = mr->mloop; \
const int _poly_index_end = (params)->poly_range[1]; \
for (int index_poly = (params)->poly_range[0]; index_poly < _poly_index_end; \
index_poly += 1) { \
const MPoly *elem_poly = &_mpoly[index_poly]; \
const int _index_end = elem_poly->loopstart + elem_poly->totloop; \
for (int index_loop = elem_poly->loopstart; index_loop < _index_end; index_loop += 1) { \
const MLoop *elem_loop = &_mloop[index_loop]; \
(void)elem_loop;

Definition at line 623 of file draw_cache_extract_mesh.c.

◆ EXTRACT_POLY_AND_LOOP_FOREACH_MESH_END

#define EXTRACT_POLY_AND_LOOP_FOREACH_MESH_END
Value:
} \
} \
}

Definition at line 638 of file draw_cache_extract_mesh.c.

◆ EXTRACT_POLY_FOREACH_BM_BEGIN

#define EXTRACT_POLY_FOREACH_BM_BEGIN (   elem_poly,
  index_poly,
  params,
  mr 
)
Value:
{ \
BLI_assert((mr->bm->elem_table_dirty & BM_FACE) == 0); \
BMFace **_ftable = mr->bm->ftable; \
const int _poly_index_end = (params)->poly_range[1]; \
for (int index_poly = (params)->poly_range[0]; index_poly < _poly_index_end; \
index_poly += 1) { \
BMFace *elem_poly = _ftable[index_poly]; \
(void)elem_poly;

Definition at line 563 of file draw_cache_extract_mesh.c.

◆ EXTRACT_POLY_FOREACH_BM_END

#define EXTRACT_POLY_FOREACH_BM_END
Value:
} \
}

Definition at line 574 of file draw_cache_extract_mesh.c.

◆ EXTRACT_POLY_FOREACH_MESH_BEGIN

#define EXTRACT_POLY_FOREACH_MESH_BEGIN (   elem_poly,
  index_poly,
  params,
  mr 
)
Value:
{ \
const MPoly *_mpoly = mr->mpoly; \
const int _poly_index_end = (params)->poly_range[1]; \
for (int index_poly = (params)->poly_range[0]; index_poly < _poly_index_end; \
index_poly += 1) { \
const MPoly *elem_poly = &_mpoly[index_poly]; \
(void)elem_poly;

Definition at line 608 of file draw_cache_extract_mesh.c.

◆ EXTRACT_POLY_FOREACH_MESH_END

#define EXTRACT_POLY_FOREACH_MESH_END
Value:
} \
}

Definition at line 618 of file draw_cache_extract_mesh.c.

◆ EXTRACT_TRIS_LOOPTRI_FOREACH_BM_BEGIN

#define EXTRACT_TRIS_LOOPTRI_FOREACH_BM_BEGIN (   elem_tri,
  index_tri,
  params 
)
Value:
{ \
const int _tri_index_end = (params)->tri_range[1]; \
BMLoop **elem_tri = (params)->looptris[(params)->tri_range[0]]; \
for (int index_tri = (params)->tri_range[0]; index_tri < _tri_index_end; \
index_tri += 1, elem_tri += 3)

Definition at line 523 of file draw_cache_extract_mesh.c.

◆ EXTRACT_TRIS_LOOPTRI_FOREACH_BM_END

#define EXTRACT_TRIS_LOOPTRI_FOREACH_BM_END   }

Definition at line 530 of file draw_cache_extract_mesh.c.

◆ EXTRACT_TRIS_LOOPTRI_FOREACH_MESH_BEGIN

#define EXTRACT_TRIS_LOOPTRI_FOREACH_MESH_BEGIN (   elem_tri,
  index_tri,
  params 
)
Value:
{ \
const int _tri_index_end = (params)->tri_range[1]; \
const MLoopTri *elem_tri = &(params)->mlooptri[(params)->tri_range[0]]; \
for (int index_tri = (params)->tri_range[0]; index_tri < _tri_index_end; \
index_tri += 1, elem_tri += 1)

Definition at line 540 of file draw_cache_extract_mesh.c.

◆ EXTRACT_TRIS_LOOPTRI_FOREACH_MESH_END

#define EXTRACT_TRIS_LOOPTRI_FOREACH_MESH_END   }

Definition at line 547 of file draw_cache_extract_mesh.c.

◆ NO_EDGE

#define NO_EDGE   INT_MAX

Definition at line 1420 of file draw_cache_extract_mesh.c.

◆ NOR_AND_FLAG_ACTIVE

#define NOR_AND_FLAG_ACTIVE   -1

Definition at line 4857 of file draw_cache_extract_mesh.c.

◆ NOR_AND_FLAG_DEFAULT

#define NOR_AND_FLAG_DEFAULT   0

Definition at line 4855 of file draw_cache_extract_mesh.c.

◆ NOR_AND_FLAG_HIDDEN

#define NOR_AND_FLAG_HIDDEN   -2

Definition at line 4858 of file draw_cache_extract_mesh.c.

◆ NOR_AND_FLAG_SELECT

#define NOR_AND_FLAG_SELECT   1

Definition at line 4856 of file draw_cache_extract_mesh.c.

◆ TEST_ASSIGN

#define TEST_ASSIGN (   type,
  type_lowercase,
  name 
)
Value:
do { \
if (DRW_TEST_ASSIGN_##type(mbc.type_lowercase.name)) { \
iter_flag |= mesh_extract_iter_type(&extract_##name); \
data_flag |= extract_##name.data_flag; \
} \
} while (0)
_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
BLI_INLINE eMRIterType mesh_extract_iter_type(const MeshExtract *ext)

Typedef Documentation

◆ EditLoopData

typedef struct EditLoopData EditLoopData

◆ ExtractFinishFn

typedef void() ExtractFinishFn(const MeshRenderData *mr, struct MeshBatchCache *cache, void *buffer, void *data)

Definition at line 762 of file draw_cache_extract_mesh.c.

◆ ExtractInitFn

typedef void*() ExtractInitFn(const MeshRenderData *mr, struct MeshBatchCache *cache, void *buffer)

Definition at line 759 of file draw_cache_extract_mesh.c.

◆ ExtractLEdgeBMesh_Params

◆ ExtractLEdgeBMeshFn

typedef void() ExtractLEdgeBMeshFn(const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *data)

Definition at line 653 of file draw_cache_extract_mesh.c.

◆ ExtractLEdgeMesh_Params

◆ ExtractLEdgeMeshFn

typedef void() ExtractLEdgeMeshFn(const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *data)

Definition at line 678 of file draw_cache_extract_mesh.c.

◆ ExtractLVertBMesh_Params

◆ ExtractLVertBMeshFn

typedef void() ExtractLVertBMeshFn(const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *data)

Definition at line 708 of file draw_cache_extract_mesh.c.

◆ ExtractLVertMesh_Params

◆ ExtractLVertMeshFn

typedef void() ExtractLVertMeshFn(const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *data)

Definition at line 733 of file draw_cache_extract_mesh.c.

◆ ExtractPolyBMesh_Params

◆ ExtractPolyBMeshFn

typedef void() ExtractPolyBMeshFn(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)

Definition at line 559 of file draw_cache_extract_mesh.c.

◆ ExtractPolyMesh_Params

◆ ExtractPolyMeshFn

typedef void() ExtractPolyMeshFn(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)

Definition at line 604 of file draw_cache_extract_mesh.c.

◆ ExtractSingleThreadedTaskData

◆ ExtractTaskData

◆ ExtractTaskDataType

◆ ExtractTriBMesh_Params

◆ ExtractTriBMeshFn

typedef void() ExtractTriBMeshFn(const MeshRenderData *mr, const ExtractTriBMesh_Params *params, void *data)

Definition at line 519 of file draw_cache_extract_mesh.c.

◆ ExtractTriMesh_Params

◆ ExtractTriMeshFn

typedef void() ExtractTriMeshFn(const MeshRenderData *mr, const ExtractTriMesh_Params *params, void *data)

Definition at line 536 of file draw_cache_extract_mesh.c.

◆ ExtractUserData

◆ gpuHQNor

typedef struct gpuHQNor gpuHQNor

◆ MeshExtract

typedef struct MeshExtract MeshExtract

◆ MeshExtract_EdgeFac_Data

◆ MeshExtract_EditUVData_Data

◆ MeshExtract_EditUvElem_Data

◆ MeshExtract_EditUVFdotData_Data

◆ MeshExtract_FdotUV_Data

◆ MeshExtract_LineAdjacency_Data

◆ MeshExtract_LinePaintMask_Data

◆ MeshExtract_Orco_Data

◆ MeshExtract_PosNor_Data

◆ MeshExtract_PosNorHQ_Data

◆ MeshExtract_StretchAngle_Data

◆ MeshExtract_Tri_Data

◆ MeshExtract_Weight_Data

◆ MeshRenderData

◆ MeshRenderDataUpdateTaskData

◆ PosNorHQLoop

typedef struct PosNorHQLoop PosNorHQLoop

◆ PosNorLoop

typedef struct PosNorLoop PosNorLoop

◆ SkinRootData

typedef struct SkinRootData SkinRootData

◆ UserDataInitTaskData

◆ UVStretchAngle

Enumeration Type Documentation

◆ ExtractTaskDataType

Enumerator
EXTRACT_MESH_EXTRACT 
EXTRACT_LINES_LOOSE 

Definition at line 5500 of file draw_cache_extract_mesh.c.

Function Documentation

◆ area_ratio_get()

BLI_INLINE float area_ratio_get ( float  area,
float  uvarea 
)

Definition at line 3868 of file draw_cache_extract_mesh.c.

References blender::compositor::area().

Referenced by mesh_edituv_stretch_area_finish().

◆ area_ratio_to_stretch()

BLI_INLINE float area_ratio_to_stretch ( float  ratio,
float  tot_ratio,
float  inv_tot_ratio 
)

Definition at line 3877 of file draw_cache_extract_mesh.c.

◆ axis_from_enum_v3()

static void axis_from_enum_v3 ( float  v[3],
const char  axis 
)
static

Definition at line 4181 of file draw_cache_extract_mesh.c.

References v, and zero_v3().

Referenced by statvis_calc_overhang().

◆ bm_face_no_get()

BLI_INLINE const float* bm_face_no_get ( const MeshRenderData mr,
const BMFace efa 
)

◆ bm_original_edge_get()

BLI_INLINE BMEdge* bm_original_edge_get ( const MeshRenderData mr,
int  idx 
)

◆ bm_original_face_get()

BLI_INLINE BMFace* bm_original_face_get ( const MeshRenderData mr,
int  idx 
)

◆ bm_original_vert_get()

BLI_INLINE BMVert* bm_original_vert_get ( const MeshRenderData mr,
int  idx 
)

◆ bm_vert_co_get()

BLI_INLINE const float* bm_vert_co_get ( const MeshRenderData mr,
const BMVert eve 
)

◆ bm_vert_no_get()

BLI_INLINE const float* bm_vert_no_get ( const MeshRenderData mr,
const BMVert eve 
)

◆ bvh_overlap_cb()

static bool bvh_overlap_cb ( void *  userdata,
int  index_a,
int  index_b,
int   UNUSEDthread 
)
static

◆ compute_normalize_edge_vectors()

static void compute_normalize_edge_vectors ( float  auv[2][2],
float  av[2][3],
const float  uv[2],
const float  uv_prev[2],
const float  co[3],
const float  co_prev[3] 
)
static

◆ distort_remap()

BLI_INLINE float distort_remap ( float  fac,
float  min,
float   UNUSEDmax,
float  minmax_irange 
)

Definition at line 4508 of file draw_cache_extract_mesh.c.

References CLAMP, and min.

Referenced by statvis_calc_distort().

◆ edituv_edge_add()

BLI_INLINE void edituv_edge_add ( MeshExtract_EditUvElem_Data data,
bool  hidden,
bool  selected,
int  v1,
int  v2 
)

◆ edituv_facedot_add()

BLI_INLINE void edituv_facedot_add ( MeshExtract_EditUvElem_Data data,
bool  hidden,
bool  selected,
int  face_index 
)

◆ edituv_get_edituv_stretch_angle()

static void edituv_get_edituv_stretch_angle ( float  auv[2][2],
const float  av[2][3],
UVStretchAngle r_stretch 
)
static

◆ edituv_point_add()

BLI_INLINE void edituv_point_add ( MeshExtract_EditUvElem_Data data,
bool  hidden,
bool  selected,
int  v1 
)

◆ edituv_tri_add()

BLI_INLINE void edituv_tri_add ( MeshExtract_EditUvElem_Data data,
bool  hidden,
bool  selected,
int  v1,
int  v2,
int  v3 
)

◆ evaluate_vertex_weight()

static float evaluate_vertex_weight ( const MDeformVert dvert,
const DRW_MeshWeightState wstate 
)
static

◆ extract_edge_fac_finish()

static void extract_edge_fac_finish ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf,
void *  _data 
)
static

◆ extract_edge_fac_init()

static void* extract_edge_fac_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_edge_fac_iter_ledge_bm()

static void extract_edge_fac_iter_ledge_bm ( const MeshRenderData mr,
const ExtractLEdgeBMesh_Params params,
void *  _data 
)
static

◆ extract_edge_fac_iter_ledge_mesh()

static void extract_edge_fac_iter_ledge_mesh ( const MeshRenderData mr,
const ExtractLEdgeMesh_Params params,
void *  _data 
)
static

◆ extract_edge_fac_iter_poly_bm()

static void extract_edge_fac_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  _data 
)
static

◆ extract_edge_fac_iter_poly_mesh()

static void extract_edge_fac_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  _data 
)
static

◆ extract_edge_idx_iter_ledge_bm()

static void extract_edge_idx_iter_ledge_bm ( const MeshRenderData mr,
const ExtractLEdgeBMesh_Params params,
void *  data 
)
static

◆ extract_edge_idx_iter_ledge_mesh()

static void extract_edge_idx_iter_ledge_mesh ( const MeshRenderData mr,
const ExtractLEdgeMesh_Params params,
void *  data 
)
static

◆ extract_edge_idx_iter_poly_bm()

static void extract_edge_idx_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  data 
)
static

◆ extract_edge_idx_iter_poly_mesh()

static void extract_edge_idx_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  data 
)
static

◆ extract_edit_data_init()

static void* extract_edit_data_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_edit_data_iter_ledge_bm()

static void extract_edit_data_iter_ledge_bm ( const MeshRenderData mr,
const ExtractLEdgeBMesh_Params params,
void *  _data 
)
static

◆ extract_edit_data_iter_ledge_mesh()

static void extract_edit_data_iter_ledge_mesh ( const MeshRenderData mr,
const ExtractLEdgeMesh_Params params,
void *  _data 
)
static

◆ extract_edit_data_iter_lvert_bm()

static void extract_edit_data_iter_lvert_bm ( const MeshRenderData mr,
const ExtractLVertBMesh_Params params,
void *  _data 
)
static

◆ extract_edit_data_iter_lvert_mesh()

static void extract_edit_data_iter_lvert_mesh ( const MeshRenderData mr,
const ExtractLVertMesh_Params params,
void *  _data 
)
static

◆ extract_edit_data_iter_poly_bm()

static void extract_edit_data_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  _data 
)
static

◆ extract_edit_data_iter_poly_mesh()

static void extract_edit_data_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  _data 
)
static

◆ extract_edituv_data_finish()

static void extract_edituv_data_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDbuf,
void *  data 
)
static

Definition at line 3829 of file draw_cache_extract_mesh.c.

References data, and MEM_freeN.

◆ extract_edituv_data_init()

static void* extract_edituv_data_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_edituv_data_iter_poly_bm()

static void extract_edituv_data_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  _data 
)
static

◆ extract_edituv_data_iter_poly_mesh()

static void extract_edituv_data_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  _data 
)
static

◆ extract_edituv_fdots_finish()

static void extract_edituv_fdots_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  ibo,
void *  _data 
)
static

Definition at line 1878 of file draw_cache_extract_mesh.c.

References data, GPU_indexbuf_build_in_place(), and MEM_freeN.

◆ extract_edituv_fdots_init()

static void* extract_edituv_fdots_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDibo 
)
static

◆ extract_edituv_fdots_iter_poly_bm()

static void extract_edituv_fdots_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  data 
)
static

◆ extract_edituv_fdots_iter_poly_mesh()

static void extract_edituv_fdots_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  data 
)
static

◆ extract_edituv_lines_finish()

static void extract_edituv_lines_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  ibo,
void *  data 
)
static

◆ extract_edituv_lines_init()

static void* extract_edituv_lines_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDibo 
)
static

◆ extract_edituv_lines_iter_poly_bm()

static void extract_edituv_lines_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  data 
)
static

◆ extract_edituv_lines_iter_poly_mesh()

static void extract_edituv_lines_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  data 
)
static

◆ extract_edituv_points_finish()

static void extract_edituv_points_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  ibo,
void *  data 
)
static

◆ extract_edituv_points_init()

static void* extract_edituv_points_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDibo 
)
static

◆ extract_edituv_points_iter_poly_bm()

static void extract_edituv_points_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  data 
)
static

◆ extract_edituv_points_iter_poly_mesh()

static void extract_edituv_points_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  data 
)
static

◆ extract_edituv_stretch_angle_finish()

static void extract_edituv_stretch_angle_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDbuf,
void *  data 
)
static

Definition at line 4142 of file draw_cache_extract_mesh.c.

References data, and MEM_freeN.

◆ extract_edituv_stretch_angle_init()

static void* extract_edituv_stretch_angle_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_edituv_stretch_angle_iter_poly_bm()

static void extract_edituv_stretch_angle_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  _data 
)
static

◆ extract_edituv_stretch_angle_iter_poly_mesh()

static void extract_edituv_stretch_angle_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  _data 
)
static

◆ extract_edituv_stretch_area_init()

static void* extract_edituv_stretch_area_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_edituv_tris_finish()

static void extract_edituv_tris_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  ibo,
void *  data 
)
static

◆ extract_edituv_tris_init()

static void* extract_edituv_tris_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDibo 
)
static

◆ extract_edituv_tris_iter_looptri_bm()

static void extract_edituv_tris_iter_looptri_bm ( const MeshRenderData UNUSEDmr,
const struct ExtractTriBMesh_Params params,
void *  data 
)
static

◆ extract_edituv_tris_iter_looptri_mesh()

static void extract_edituv_tris_iter_looptri_mesh ( const MeshRenderData mr,
const struct ExtractTriMesh_Params params,
void *  data 
)
static

◆ extract_fdot_idx_iter_poly_bm()

static void extract_fdot_idx_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  data 
)
static

◆ extract_fdot_idx_iter_poly_mesh()

static void extract_fdot_idx_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  data 
)
static

◆ extract_fdots_edituv_data_finish()

static void extract_fdots_edituv_data_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDbuf,
void *  data 
)
static

Definition at line 5165 of file draw_cache_extract_mesh.c.

References data, and MEM_freeN.

◆ extract_fdots_edituv_data_init()

static void* extract_fdots_edituv_data_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_fdots_edituv_data_iter_poly_bm()

static void extract_fdots_edituv_data_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  _data 
)
static

◆ extract_fdots_edituv_data_iter_poly_mesh()

static void extract_fdots_edituv_data_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  _data 
)
static

◆ extract_fdots_finish()

static void extract_fdots_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  ibo,
void *  elb 
)
static

Definition at line 1317 of file draw_cache_extract_mesh.c.

References GPU_indexbuf_build_in_place(), and MEM_freeN.

◆ extract_fdots_init()

static void* extract_fdots_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDbuf 
)
static

◆ extract_fdots_iter_poly_bm()

static void extract_fdots_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  elb 
)
static

◆ extract_fdots_iter_poly_mesh()

static void extract_fdots_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  elb 
)
static

◆ extract_fdots_nor_finish()

static void extract_fdots_nor_finish ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf,
void *  UNUSEDdata 
)
static

◆ extract_fdots_nor_hq_finish()

static void extract_fdots_nor_hq_finish ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf,
void *  UNUSEDdata 
)
static

◆ extract_fdots_nor_hq_init()

static void* extract_fdots_nor_hq_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_fdots_nor_init()

static void* extract_fdots_nor_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_fdots_pos_init()

static void* extract_fdots_pos_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_fdots_pos_iter_poly_bm()

static void extract_fdots_pos_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  data 
)
static

◆ extract_fdots_pos_iter_poly_mesh()

static void extract_fdots_pos_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  data 
)
static

◆ extract_fdots_uv_finish()

static void extract_fdots_uv_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDbuf,
void *  data 
)
static

Definition at line 5089 of file draw_cache_extract_mesh.c.

References data, and MEM_freeN.

◆ extract_fdots_uv_init()

static void* extract_fdots_uv_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_fdots_uv_iter_poly_bm()

static void extract_fdots_uv_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  _data 
)
static

◆ extract_fdots_uv_iter_poly_mesh()

static void extract_fdots_uv_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  _data 
)
static

◆ extract_init()

static void extract_init ( ExtractTaskData data)
static

Definition at line 5643 of file draw_cache_extract_mesh.c.

References data, and EXTRACT_MESH_EXTRACT.

Referenced by extract_init_and_run(), and user_data_init_task_data_exec().

◆ extract_init_and_run()

static void extract_init_and_run ( void *__restrict  taskdata)
static

◆ extract_lines_adjacency_finish()

static void extract_lines_adjacency_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache cache,
void *  ibo,
void *  _data 
)
static

◆ extract_lines_adjacency_init()

static void* extract_lines_adjacency_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDbuf 
)
static

◆ extract_lines_adjacency_iter_looptri_bm()

static void extract_lines_adjacency_iter_looptri_bm ( const MeshRenderData UNUSEDmr,
const struct ExtractTriBMesh_Params params,
void *  data 
)
static

◆ extract_lines_adjacency_iter_looptri_mesh()

static void extract_lines_adjacency_iter_looptri_mesh ( const MeshRenderData mr,
const struct ExtractTriMesh_Params params,
void *  data 
)
static

◆ extract_lines_finish()

static void extract_lines_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  ibo,
void *  elb 
)
static

Definition at line 1063 of file draw_cache_extract_mesh.c.

References GPU_indexbuf_build_in_place(), and MEM_freeN.

◆ extract_lines_init()

static void* extract_lines_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDbuf 
)
static

◆ extract_lines_iter_ledge_bm()

static void extract_lines_iter_ledge_bm ( const MeshRenderData mr,
const ExtractLEdgeBMesh_Params params,
void *  elb 
)
static

◆ extract_lines_iter_ledge_mesh()

static void extract_lines_iter_ledge_mesh ( const MeshRenderData mr,
const ExtractLEdgeMesh_Params params,
void *  elb 
)
static

◆ extract_lines_iter_poly_bm()

static void extract_lines_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  elb 
)
static

◆ extract_lines_iter_poly_mesh()

static void extract_lines_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  elb 
)
static

◆ extract_lines_loose_subbuffer()

static void extract_lines_loose_subbuffer ( const MeshRenderData mr,
struct MeshBatchCache cache 
)
static

◆ extract_lines_paint_mask_finish()

static void extract_lines_paint_mask_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  ibo,
void *  _data 
)
static

Definition at line 1395 of file draw_cache_extract_mesh.c.

References data, GPU_indexbuf_build_in_place(), and MEM_freeN.

◆ extract_lines_paint_mask_init()

static void* extract_lines_paint_mask_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDbuf 
)
static

◆ extract_lines_paint_mask_iter_poly_mesh()

static void extract_lines_paint_mask_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  _data 
)
static

◆ extract_lines_with_lines_loose_finish()

static void extract_lines_with_lines_loose_finish ( const MeshRenderData mr,
struct MeshBatchCache cache,
void *  ibo,
void *  elb 
)
static

◆ extract_lnor_hq_init()

static void* extract_lnor_hq_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_lnor_hq_iter_poly_bm()

static void extract_lnor_hq_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  data 
)
static

◆ extract_lnor_hq_iter_poly_mesh()

static void extract_lnor_hq_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  data 
)
static

◆ extract_lnor_init()

static void* extract_lnor_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_lnor_iter_poly_bm()

static void extract_lnor_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  data 
)
static

◆ extract_lnor_iter_poly_mesh()

static void extract_lnor_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  data 
)
static

◆ extract_mesh_analysis_finish()

static void extract_mesh_analysis_finish ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf,
void *  UNUSEDdata 
)
static

◆ extract_mesh_analysis_init()

static void* extract_mesh_analysis_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_orco_finish()

static void extract_orco_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDbuf,
void *  data 
)
static

Definition at line 3076 of file draw_cache_extract_mesh.c.

References data, and MEM_freeN.

◆ extract_orco_init()

static void* extract_orco_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_orco_iter_poly_bm()

static void extract_orco_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  data 
)
static

◆ extract_orco_iter_poly_mesh()

static void extract_orco_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  data 
)
static

◆ extract_points_finish()

static void extract_points_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  ibo,
void *  elb 
)
static

Definition at line 1232 of file draw_cache_extract_mesh.c.

References GPU_indexbuf_build_in_place(), and MEM_freeN.

◆ extract_points_init()

static void* extract_points_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDbuf 
)
static

◆ extract_points_iter_ledge_bm()

static void extract_points_iter_ledge_bm ( const MeshRenderData mr,
const ExtractLEdgeBMesh_Params params,
void *  elb 
)
static

◆ extract_points_iter_ledge_mesh()

static void extract_points_iter_ledge_mesh ( const MeshRenderData mr,
const ExtractLEdgeMesh_Params params,
void *  elb 
)
static

◆ extract_points_iter_lvert_bm()

static void extract_points_iter_lvert_bm ( const MeshRenderData mr,
const ExtractLVertBMesh_Params params,
void *  elb 
)
static

◆ extract_points_iter_lvert_mesh()

static void extract_points_iter_lvert_mesh ( const MeshRenderData mr,
const ExtractLVertMesh_Params params,
void *  elb 
)
static

◆ extract_points_iter_poly_bm()

static void extract_points_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  elb 
)
static

◆ extract_points_iter_poly_mesh()

static void extract_points_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  elb 
)
static

◆ extract_poly_idx_iter_poly_bm()

static void extract_poly_idx_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  data 
)
static

◆ extract_poly_idx_iter_poly_mesh()

static void extract_poly_idx_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  data 
)
static

◆ extract_pos_nor_finish()

static void extract_pos_nor_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDvbo,
void *  data 
)
static

Definition at line 2061 of file draw_cache_extract_mesh.c.

References data, and MEM_freeN.

◆ extract_pos_nor_hq_finish()

static void extract_pos_nor_hq_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDvbo,
void *  data 
)
static

Definition at line 2253 of file draw_cache_extract_mesh.c.

References data, and MEM_freeN.

◆ extract_pos_nor_hq_init()

static void* extract_pos_nor_hq_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_pos_nor_hq_iter_ledge_bm()

static void extract_pos_nor_hq_iter_ledge_bm ( const MeshRenderData mr,
const ExtractLEdgeBMesh_Params params,
void *  _data 
)
static

◆ extract_pos_nor_hq_iter_ledge_mesh()

static void extract_pos_nor_hq_iter_ledge_mesh ( const MeshRenderData mr,
const ExtractLEdgeMesh_Params params,
void *  _data 
)
static

◆ extract_pos_nor_hq_iter_lvert_bm()

static void extract_pos_nor_hq_iter_lvert_bm ( const MeshRenderData mr,
const ExtractLVertBMesh_Params params,
void *  _data 
)
static

◆ extract_pos_nor_hq_iter_lvert_mesh()

static void extract_pos_nor_hq_iter_lvert_mesh ( const MeshRenderData mr,
const ExtractLVertMesh_Params params,
void *  _data 
)
static

◆ extract_pos_nor_hq_iter_poly_bm()

static void extract_pos_nor_hq_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  _data 
)
static

◆ extract_pos_nor_hq_iter_poly_mesh()

static void extract_pos_nor_hq_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  _data 
)
static

◆ extract_pos_nor_init()

static void* extract_pos_nor_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_pos_nor_iter_ledge_bm()

static void extract_pos_nor_iter_ledge_bm ( const MeshRenderData mr,
const ExtractLEdgeBMesh_Params params,
void *  _data 
)
static

◆ extract_pos_nor_iter_ledge_mesh()

static void extract_pos_nor_iter_ledge_mesh ( const MeshRenderData mr,
const ExtractLEdgeMesh_Params params,
void *  _data 
)
static

◆ extract_pos_nor_iter_lvert_bm()

static void extract_pos_nor_iter_lvert_bm ( const MeshRenderData mr,
const ExtractLVertBMesh_Params params,
void *  _data 
)
static

◆ extract_pos_nor_iter_lvert_mesh()

static void extract_pos_nor_iter_lvert_mesh ( const MeshRenderData mr,
const ExtractLVertMesh_Params params,
void *  _data 
)
static

◆ extract_pos_nor_iter_poly_bm()

static void extract_pos_nor_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  _data 
)
static

◆ extract_pos_nor_iter_poly_mesh()

static void extract_pos_nor_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  _data 
)
static

◆ extract_range_task_create()

static void extract_range_task_create ( struct TaskGraph task_graph,
struct TaskNode task_node_user_data_init,
ExtractTaskData taskdata,
const eMRIterType  type,
int  start,
int  length 
)
static

◆ extract_run()

static void extract_run ( void *__restrict  taskdata)
static

◆ extract_sculpt_data_init()

static void* extract_sculpt_data_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_select_fdot_idx_init()

static void* extract_select_fdot_idx_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_select_idx_init()

static void* extract_select_idx_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_single_threaded_task_data_free()

static void extract_single_threaded_task_data_free ( ExtractSingleThreadedTaskData taskdata)
static

◆ extract_single_threaded_task_node_create()

static struct TaskNode* extract_single_threaded_task_node_create ( struct TaskGraph task_graph,
ExtractSingleThreadedTaskData task_data 
)
static

◆ extract_single_threaded_task_node_exec()

static void extract_single_threaded_task_node_exec ( void *__restrict  task_data)
static

◆ extract_skin_roots_init()

static void* extract_skin_roots_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  buf 
)
static

◆ extract_tan_ex()

static void extract_tan_ex ( const MeshRenderData mr,
struct MeshBatchCache cache,
GPUVertBuf vbo,
const bool  do_hq 
)
static

Definition at line 2560 of file draw_cache_extract_mesh.c.

References BKE_editmesh_loop_tangent_calc(), BKE_mesh_calc_loop_tangent_ex(), BKE_mesh_orco_verts_transform(), BLI_snprintf(), BLI_strncpy(), bm, MeshRenderData::bm, BM_vert_at_index(), CD_MLOOPUV, CD_ORCO, CD_TANGENT, MeshBatchCache::cd_used, BMVert::co, copy_v3_v3(), CustomData_free(), CustomData_get_active_layer(), CustomData_get_layer(), CustomData_get_layer_n(), CustomData_get_layer_name(), CustomData_get_layer_named(), CustomData_get_render_layer(), CustomData_reset(), MeshRenderData::edit_bmesh, MeshRenderData::extract_type, float(), GPU_COMP_F32, GPU_COMP_I10, GPU_COMP_I16, GPU_FETCH_FLOAT, GPU_FETCH_INT_TO_FLOAT_UNIT, GPU_MAX_SAFE_ATTR_NAME, GPU_normal_convert_i10_v3(), GPU_vertbuf_data_alloc(), GPU_vertbuf_get_data(), GPU_vertbuf_init_with_format, GPU_vertformat_alias_add(), GPU_vertformat_attr_add(), GPU_vertformat_deinterleave(), GPU_vertformat_safe_attr_name(), BMesh::ldata, Mesh::ldata, MeshRenderData::loop_len, MeshRenderData::loop_normals, MAX_CUSTOMDATA_LAYER_NAME, MAX_MTFACE, MeshRenderData::me, MEM_mallocN, MEM_SAFE_FREE, MeshRenderData::mloop, MeshRenderData::mlooptri, MeshRenderData::mpoly, MR_EXTRACT_BMESH, MeshRenderData::mvert, normal_float_to_short_v3(), NULL, MeshRenderData::poly_len, MeshRenderData::poly_normals, DRW_MeshCDMask::tan, DRW_MeshCDMask::tan_orco, MeshRenderData::tri_len, v, BMesh::vdata, MeshRenderData::vert_len, and GPUPackedNormal::w.

Referenced by extract_tan_hq_init(), and extract_tan_init().

◆ extract_tan_hq_init()

static void* extract_tan_hq_init ( const MeshRenderData mr,
struct MeshBatchCache cache,
void *  buf 
)
static

Definition at line 2750 of file draw_cache_extract_mesh.c.

References extract_tan_ex(), and NULL.

◆ extract_tan_init()

static void* extract_tan_init ( const MeshRenderData mr,
struct MeshBatchCache cache,
void *  buf 
)
static

Definition at line 2732 of file draw_cache_extract_mesh.c.

References extract_tan_ex(), and NULL.

◆ extract_task_create()

static void extract_task_create ( struct TaskGraph task_graph,
struct TaskNode task_node_mesh_render_data,
struct TaskNode task_node_user_data_init,
ListBase single_threaded_task_datas,
ListBase user_data_init_task_datas,
const Scene scene,
const MeshRenderData mr,
MeshBatchCache cache,
const MeshExtract extract,
void *  buf,
int32_t task_counter 
)
static

◆ extract_task_data_create_lines_loose()

static ExtractTaskData* extract_task_data_create_lines_loose ( const MeshRenderData mr,
struct MeshBatchCache cache 
)
static

◆ extract_task_data_create_mesh_extract()

static ExtractTaskData* extract_task_data_create_mesh_extract ( const MeshRenderData mr,
struct MeshBatchCache cache,
const MeshExtract extract,
void *  buf,
int32_t task_counter 
)
static

◆ extract_task_data_free()

static void extract_task_data_free ( void *  data)
static

◆ extract_tris_finish()

static void extract_tris_finish ( const MeshRenderData mr,
struct MeshBatchCache cache,
void *  ibo,
void *  _data 
)
static

◆ extract_tris_init()

static void* extract_tris_init ( const MeshRenderData mr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDibo 
)
static

◆ extract_tris_iter_looptri_bm()

static void extract_tris_iter_looptri_bm ( const MeshRenderData mr,
const struct ExtractTriBMesh_Params params,
void *  _data 
)
static

◆ extract_tris_iter_looptri_mesh()

static void extract_tris_iter_looptri_mesh ( const MeshRenderData mr,
const struct ExtractTriMesh_Params params,
void *  _data 
)
static

◆ extract_uv_init()

static void* extract_uv_init ( const MeshRenderData mr,
struct MeshBatchCache cache,
void *  buf 
)
static

◆ extract_vcol_init()

static void* extract_vcol_init ( const MeshRenderData mr,
struct MeshBatchCache cache,
void *  buf 
)
static

◆ extract_vert_idx_iter_ledge_bm()

static void extract_vert_idx_iter_ledge_bm ( const MeshRenderData mr,
const ExtractLEdgeBMesh_Params params,
void *  data 
)
static

◆ extract_vert_idx_iter_ledge_mesh()

static void extract_vert_idx_iter_ledge_mesh ( const MeshRenderData mr,
const ExtractLEdgeMesh_Params params,
void *  data 
)
static

◆ extract_vert_idx_iter_lvert_bm()

static void extract_vert_idx_iter_lvert_bm ( const MeshRenderData mr,
const ExtractLVertBMesh_Params params,
void *  data 
)
static

◆ extract_vert_idx_iter_lvert_mesh()

static void extract_vert_idx_iter_lvert_mesh ( const MeshRenderData mr,
const ExtractLVertMesh_Params params,
void *  data 
)
static

◆ extract_vert_idx_iter_poly_bm()

static void extract_vert_idx_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  data 
)
static

◆ extract_vert_idx_iter_poly_mesh()

static void extract_vert_idx_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  data 
)
static

◆ extract_weights_finish()

static void extract_weights_finish ( const MeshRenderData UNUSEDmr,
struct MeshBatchCache UNUSEDcache,
void *  UNUSEDbuf,
void *  data 
)
static

Definition at line 3437 of file draw_cache_extract_mesh.c.

References data, and MEM_freeN.

◆ extract_weights_init()

static void* extract_weights_init ( const MeshRenderData mr,
struct MeshBatchCache cache,
void *  buf 
)
static

◆ extract_weights_iter_poly_bm()

static void extract_weights_iter_poly_bm ( const MeshRenderData mr,
const ExtractPolyBMesh_Params params,
void *  _data 
)
static

◆ extract_weights_iter_poly_mesh()

static void extract_weights_iter_poly_mesh ( const MeshRenderData mr,
const ExtractPolyMesh_Params params,
void *  _data 
)
static

◆ lines_adjacency_triangle()

BLI_INLINE void lines_adjacency_triangle ( uint  v1,
uint  v2,
uint  v3,
uint  l1,
uint  l2,
uint  l3,
MeshExtract_LineAdjacency_Data data 
)

◆ loop_edge_factor_get()

static float loop_edge_factor_get ( const float  f_no[3],
const float  v_co[3],
const float  v_no[3],
const float  v_next_co[3] 
)
static

◆ mesh_buffer_cache_create_requested()

void mesh_buffer_cache_create_requested ( struct TaskGraph task_graph,
MeshBatchCache cache,
MeshBufferCache  mbc,
Mesh me,
const bool  is_editmode,
const bool  is_paint_mode,
const bool  is_mode_active,
const float  obmat[4][4],
const bool  do_final,
const bool  do_uvedit,
const bool  use_subsurf_fdots,
const DRW_MeshCDMask cd_layer_used,
const Scene scene,
const ToolSettings ts,
const bool  use_hide 
)

◆ mesh_edituv_stretch_area_finish()

static void mesh_edituv_stretch_area_finish ( const MeshRenderData mr,
struct MeshBatchCache cache,
void *  buf,
void *  UNUSEDdata 
)
static

◆ mesh_extract_iter()

BLI_INLINE void mesh_extract_iter ( const MeshRenderData mr,
const eMRIterType  iter_type,
int  start,
int  end,
const MeshExtract extract,
void *  user_data 
)

◆ mesh_extract_iter_type()

BLI_INLINE eMRIterType mesh_extract_iter_type ( const MeshExtract ext)

◆ mesh_extract_render_data_node_create()

static struct TaskNode* mesh_extract_render_data_node_create ( struct TaskGraph task_graph,
MeshRenderData mr,
const eMRIterType  iter_type,
const eMRDataType  data_flag 
)
static

◆ mesh_extract_render_data_node_exec()

static void mesh_extract_render_data_node_exec ( void *__restrict  task_data)
static

◆ mesh_render_data_create()

static MeshRenderData* mesh_render_data_create ( Mesh me,
const bool  is_editmode,
const bool  is_paint_mode,
const bool  is_mode_active,
const float  obmat[4][4],
const bool  do_final,
const bool  do_uvedit,
const DRW_MeshCDMask UNUSEDcd_used,
const ToolSettings ts,
const eMRIterType  iter_type,
const eMRDataType  data_flag 
)
static
Parameters
is_mode_activeWhen true, use the modifiers from the edit-data, otherwise don't use modifiers as they are not from this object.

Definition at line 319 of file draw_cache_extract_mesh.c.

References BKE_editmesh_cache_ensure_poly_normals(), BKE_editmesh_cache_ensure_vert_normals(), BLI_assert, BMEditMesh::bm, bm, MeshRenderData::bm, BM_EDGE, BM_FACE, BM_LOOP, BM_mesh_active_edge_get(), BM_mesh_active_face_get(), BM_mesh_active_vert_get(), BM_mesh_elem_index_ensure(), BM_mesh_elem_table_ensure(), MeshRenderData::bm_poly_centers, MeshRenderData::bm_poly_normals, BM_VERT, MeshRenderData::bm_vert_coords, MeshRenderData::bm_vert_normals, MeshRenderData::bweight_ofs, CD_BWEIGHT, CD_CREASE, CD_FREESTYLE_EDGE, CD_FREESTYLE_FACE, CD_MEDGE, CD_MLOOP, CD_MPOLY, CD_MVERT, CD_ORIGINDEX, copy_m4_m4(), MeshRenderData::crease_ofs, CustomData_get_layer(), CustomData_get_offset(), MeshRenderData::e_origindex, BMesh::edata, EDBM_uv_active_face_get(), MeshRenderData::edge_len, MeshRenderData::edit_bmesh, MeshRenderData::edit_data, Mesh_Runtime::edit_data, Mesh::edit_mesh, MeshRenderData::eed_act, MeshRenderData::efa_act, MeshRenderData::efa_act_uv, MeshRenderData::eve_act, MeshRenderData::extract_type, MeshRenderData::freestyle_edge_ofs, MeshRenderData::freestyle_face_ofs, if(), Mesh_Runtime::is_original, Mesh::ldata, MeshRenderData::loop_len, MeshRenderData::mat_len, MeshRenderData::me, ME_WRAPPER_TYPE_MDATA, MeshRenderData::medge, MEM_callocN, BMEditMesh::mesh_eval_cage, BMEditMesh::mesh_eval_final, mesh_render_data_update_loose_geom(), mesh_render_mat_len_get(), MeshRenderData::mloop, MeshRenderData::mpoly, MR_EXTRACT_BMESH, MR_EXTRACT_MAPPED, MR_EXTRACT_MESH, MeshRenderData::mvert, NULL, MeshRenderData::obmat, MeshRenderData::p_origindex, BMesh::pdata, MeshRenderData::poly_len, poly_to_tri_count(), EditMeshData::polyCos, EditMeshData::polyNos, Mesh::runtime, MeshRenderData::toolsettings, BMesh::totedge, Mesh::totedge, BMesh::totface, BMesh::totloop, Mesh::totloop, Mesh::totpoly, BMesh::totvert, Mesh::totvert, MeshRenderData::tri_len, MeshRenderData::v_origindex, MeshRenderData::vert_len, EditMeshData::vertexCos, EditMeshData::vertexNos, and Mesh_Runtime::wrapper_type.

Referenced by mesh_buffer_cache_create_requested().

◆ mesh_render_data_edge_flag()

static void mesh_render_data_edge_flag ( const MeshRenderData mr,
BMEdge eed,
EditLoopData eattr 
)
static

◆ mesh_render_data_face_flag()

static void mesh_render_data_face_flag ( const MeshRenderData mr,
BMFace efa,
const int  cd_ofs,
EditLoopData eattr 
)
static

◆ mesh_render_data_free()

static void mesh_render_data_free ( MeshRenderData mr)
static

◆ mesh_render_data_loop_edge_flag()

static void mesh_render_data_loop_edge_flag ( const MeshRenderData mr,
BMLoop l,
const int  cd_ofs,
EditLoopData eattr 
)
static

◆ mesh_render_data_loop_flag()

static void mesh_render_data_loop_flag ( const MeshRenderData mr,
BMLoop l,
const int  cd_ofs,
EditLoopData eattr 
)
static

◆ mesh_render_data_update_looptris()

static void mesh_render_data_update_looptris ( MeshRenderData mr,
const eMRIterType  iter_type,
const eMRDataType  data_flag 
)
static

◆ mesh_render_data_update_loose_geom()

static void mesh_render_data_update_loose_geom ( MeshRenderData mr,
const eMRIterType  iter_type,
const eMRDataType   UNUSEDdata_flag 
)
static

◆ mesh_render_data_update_normals()

static void mesh_render_data_update_normals ( MeshRenderData mr,
const eMRIterType   UNUSEDiter_type,
const eMRDataType  data_flag 
)
static

◆ mesh_render_data_update_task_data_free()

static void mesh_render_data_update_task_data_free ( MeshRenderDataUpdateTaskData taskdata)
static

◆ mesh_render_data_vert_flag()

static void mesh_render_data_vert_flag ( const MeshRenderData mr,
BMVert eve,
EditLoopData eattr 
)
static

◆ overhang_remap()

BLI_INLINE float overhang_remap ( float  fac,
float  min,
float  max,
float  minmax_irange 
)

Definition at line 4192 of file draw_cache_extract_mesh.c.

References CLAMP, max, and min.

Referenced by statvis_calc_overhang().

◆ sharp_remap()

BLI_INLINE float sharp_remap ( float  fac,
float  min,
float   UNUSEDmax,
float  minmax_irange 
)

Definition at line 4615 of file draw_cache_extract_mesh.c.

References CLAMP, and min.

Referenced by statvis_calc_sharp().

◆ statvis_calc_distort()

static void statvis_calc_distort ( const MeshRenderData mr,
float r_distort 
)
static

◆ statvis_calc_intersect()

static void statvis_calc_intersect ( const MeshRenderData mr,
float r_intersect 
)
static

◆ statvis_calc_overhang()

static void statvis_calc_overhang ( const MeshRenderData mr,
float r_overhang 
)
static

◆ statvis_calc_sharp()

static void statvis_calc_sharp ( const MeshRenderData mr,
float r_sharp 
)
static

◆ statvis_calc_thickness()

static void statvis_calc_thickness ( const MeshRenderData mr,
float r_thickness 
)
static

◆ thickness_remap()

BLI_INLINE float thickness_remap ( float  fac,
float  min,
float  max,
float  minmax_irange 
)

Definition at line 4266 of file draw_cache_extract_mesh.c.

References CLAMP, max, and min.

Referenced by statvis_calc_thickness().

◆ user_data_init_task_data_exec()

static void user_data_init_task_data_exec ( void *__restrict  task_data)
static

◆ user_data_init_task_data_free()

static void user_data_init_task_data_free ( UserDataInitTaskData taskdata)
static

◆ user_data_init_task_node_create()

static struct TaskNode* user_data_init_task_node_create ( struct TaskGraph task_graph,
UserDataInitTaskData task_data 
)
static

◆ uv_from_jitter_v2()

static void uv_from_jitter_v2 ( float  uv[2])
static

Needed so we can use jitter values for face interpolation.

Definition at line 4254 of file draw_cache_extract_mesh.c.

References clamp_v2().

Referenced by statvis_calc_thickness().

◆ v2_to_short_angle()

static short v2_to_short_angle ( const float  v[2])
static

Definition at line 3999 of file draw_cache_extract_mesh.c.

References atan2f, float(), M_1_PI, and v.

Referenced by edituv_get_edituv_stretch_angle().

◆ vert_set_bm()

BLI_INLINE void vert_set_bm ( GPUIndexBufBuilder elb,
BMVert eve,
int  l_index 
)

◆ vert_set_mesh()

BLI_INLINE void vert_set_mesh ( GPUIndexBufBuilder elb,
const MeshRenderData mr,
const int  v_index,
const int  l_index 
)

Variable Documentation

◆ extract_edge_fac

const MeshExtract extract_edge_fac
static
Initial value:
= {
.data_flag = MR_DATA_POLY_NOR,
.use_threading = false,
}
@ MR_DATA_POLY_NOR
static void extract_edge_fac_iter_ledge_bm(const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *_data)
static void extract_edge_fac_iter_ledge_mesh(const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *_data)
static void extract_edge_fac_finish(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf, void *_data)
static void extract_edge_fac_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
static void * extract_edge_fac_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_edge_fac_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)

Definition at line 3284 of file draw_cache_extract_mesh.c.

◆ extract_edge_idx

const MeshExtract extract_edge_idx
static
Initial value:
= {
.data_flag = 0,
.use_threading = true,
}
static void extract_edge_idx_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
static void * extract_select_idx_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_edge_idx_iter_ledge_mesh(const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *data)
static void extract_edge_idx_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
static void extract_edge_idx_iter_ledge_bm(const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *data)

Definition at line 5415 of file draw_cache_extract_mesh.c.

◆ extract_edit_data

const MeshExtract extract_edit_data
static
Initial value:
= {
.data_flag = 0,
.use_threading = true,
}
static void extract_edit_data_iter_lvert_bm(const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *_data)
static void extract_edit_data_iter_ledge_mesh(const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *_data)
static void * extract_edit_data_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_edit_data_iter_ledge_bm(const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *_data)
static void extract_edit_data_iter_lvert_mesh(const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *_data)
static void extract_edit_data_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
static void extract_edit_data_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)

Definition at line 3728 of file draw_cache_extract_mesh.c.

◆ extract_edituv_data

const MeshExtract extract_edituv_data
static
Initial value:
= {
.data_flag = 0,
.use_threading = true,
}
static void extract_edituv_data_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
static void extract_edituv_data_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
static void extract_edituv_data_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)
static void * extract_edituv_data_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)

Definition at line 3837 of file draw_cache_extract_mesh.c.

◆ extract_edituv_fdots

const MeshExtract extract_edituv_fdots
static
Initial value:
= {
.data_flag = 0,
.use_threading = false,
}
static void * extract_edituv_fdots_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo))
static void extract_edituv_fdots_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *_data)
static void extract_edituv_fdots_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
static void extract_edituv_fdots_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)

Definition at line 1888 of file draw_cache_extract_mesh.c.

◆ extract_edituv_lines

const MeshExtract extract_edituv_lines
static
Initial value:
= {
.data_flag = 0,
.use_threading = false,
}
static void extract_edituv_lines_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
static void extract_edituv_lines_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
static void * extract_edituv_lines_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo))
static void extract_edituv_lines_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *data)

Definition at line 1720 of file draw_cache_extract_mesh.c.

◆ extract_edituv_points

const MeshExtract extract_edituv_points
static
Initial value:
= {
.data_flag = 0,
.use_threading = false,
}
static void extract_edituv_points_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
static void extract_edituv_points_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *data)
static void * extract_edituv_points_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo))
static void extract_edituv_points_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)

Definition at line 1794 of file draw_cache_extract_mesh.c.

◆ extract_edituv_stretch_angle

const MeshExtract extract_edituv_stretch_angle
static
Initial value:
= {
.data_flag = 0,
.use_threading = false,
}
static void extract_edituv_stretch_angle_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)
static void extract_edituv_stretch_angle_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
static void * extract_edituv_stretch_angle_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_edituv_stretch_angle_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)

Definition at line 4150 of file draw_cache_extract_mesh.c.

◆ extract_edituv_stretch_area

const MeshExtract extract_edituv_stretch_area
static
Initial value:
= {
.data_flag = 0,
.use_threading = false,
}
static void mesh_edituv_stretch_area_finish(const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf, void *UNUSED(data))
static void * extract_edituv_stretch_area_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)

Definition at line 3955 of file draw_cache_extract_mesh.c.

◆ extract_edituv_tris

const MeshExtract extract_edituv_tris
static
Initial value:
= {
.data_flag = 0,
.use_threading = false,
}
static void extract_edituv_tris_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *data)
static void extract_edituv_tris_iter_looptri_mesh(const MeshRenderData *mr, const struct ExtractTriMesh_Params *params, void *data)
static void * extract_edituv_tris_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo))
static void extract_edituv_tris_iter_looptri_bm(const MeshRenderData *UNUSED(mr), const struct ExtractTriBMesh_Params *params, void *data)

Definition at line 1643 of file draw_cache_extract_mesh.c.

◆ extract_fdot_idx

const MeshExtract extract_fdot_idx
static
Initial value:
= {
.data_flag = 0,
.use_threading = true,
}
static void extract_fdot_idx_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
static void * extract_select_fdot_idx_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_fdot_idx_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)

Definition at line 5483 of file draw_cache_extract_mesh.c.

◆ extract_fdots

const MeshExtract extract_fdots
static
Initial value:
= {
.iter_poly_bm = extract_fdots_iter_poly_bm,
.iter_poly_mesh = extract_fdots_iter_poly_mesh,
.data_flag = 0,
.use_threading = false,
}
static void * extract_fdots_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf))
static void extract_fdots_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *elb)
static void extract_fdots_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *elb)
static void extract_fdots_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *elb)

Definition at line 1326 of file draw_cache_extract_mesh.c.

◆ extract_fdots_edituv_data

const MeshExtract extract_fdots_edituv_data
static
Initial value:
= {
.data_flag = 0,
.use_threading = true,
}
static void * extract_fdots_edituv_data_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_fdots_edituv_data_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
static void extract_fdots_edituv_data_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)
static void extract_fdots_edituv_data_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)

Definition at line 5173 of file draw_cache_extract_mesh.c.

◆ extract_fdots_nor

const MeshExtract extract_fdots_nor
static
Initial value:
= {
.data_flag = MR_DATA_POLY_NOR,
.use_threading = false,
}
static void extract_fdots_nor_finish(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf, void *UNUSED(data))
static void * extract_fdots_nor_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)

Definition at line 4924 of file draw_cache_extract_mesh.c.

Referenced by extract_task_create().

◆ extract_fdots_nor_hq

const MeshExtract extract_fdots_nor_hq
static
Initial value:
= {
.data_flag = MR_DATA_POLY_NOR,
.use_threading = false,
}
static void extract_fdots_nor_hq_finish(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf, void *UNUSED(data))
static void * extract_fdots_nor_hq_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)

Definition at line 5000 of file draw_cache_extract_mesh.c.

Referenced by extract_task_create().

◆ extract_fdots_pos

const MeshExtract extract_fdots_pos
static
Initial value:
= {
.data_flag = 0,
.use_threading = true,
}
static void extract_fdots_pos_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
static void * extract_fdots_pos_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_fdots_pos_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)

Definition at line 4842 of file draw_cache_extract_mesh.c.

◆ extract_fdots_uv

const MeshExtract extract_fdots_uv
static
Initial value:
= {
.data_flag = 0,
.use_threading = true,
}
static void extract_fdots_uv_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
static void extract_fdots_uv_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
static void * extract_fdots_uv_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_fdots_uv_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)

Definition at line 5097 of file draw_cache_extract_mesh.c.

◆ extract_lines

const MeshExtract extract_lines
static
Initial value:
= {
.iter_poly_bm = extract_lines_iter_poly_bm,
.iter_poly_mesh = extract_lines_iter_poly_mesh,
.iter_ledge_bm = extract_lines_iter_ledge_bm,
.iter_ledge_mesh = extract_lines_iter_ledge_mesh,
.data_flag = 0,
.use_threading = false,
}
static void extract_lines_iter_ledge_bm(const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *elb)
static void extract_lines_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *elb)
static void extract_lines_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *elb)
static void extract_lines_iter_ledge_mesh(const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *elb)
static void * extract_lines_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf))
static void extract_lines_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *elb)

Definition at line 1072 of file draw_cache_extract_mesh.c.

Referenced by mesh_buffer_cache_create_requested().

◆ extract_lines_adjacency

const MeshExtract extract_lines_adjacency
static
Initial value:
= {
.data_flag = 0,
.use_threading = false,
}
static void extract_lines_adjacency_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *cache, void *ibo, void *_data)
static void * extract_lines_adjacency_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf))
static void extract_lines_adjacency_iter_looptri_mesh(const MeshRenderData *mr, const struct ExtractTriMesh_Params *params, void *data)
static void extract_lines_adjacency_iter_looptri_bm(const MeshRenderData *UNUSED(mr), const struct ExtractTriBMesh_Params *params, void *data)

Definition at line 1562 of file draw_cache_extract_mesh.c.

◆ extract_lines_paint_mask

const MeshExtract extract_lines_paint_mask
static
Initial value:
= {
.data_flag = 0,
.use_threading = false,
}
static void * extract_lines_paint_mask_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf))
static void extract_lines_paint_mask_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *_data)
static void extract_lines_paint_mask_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)

Definition at line 1406 of file draw_cache_extract_mesh.c.

◆ extract_lines_with_lines_loose

const MeshExtract extract_lines_with_lines_loose
static
Initial value:
= {
.iter_poly_bm = extract_lines_iter_poly_bm,
.iter_poly_mesh = extract_lines_iter_poly_mesh,
.iter_ledge_bm = extract_lines_iter_ledge_bm,
.iter_ledge_mesh = extract_lines_iter_ledge_mesh,
.data_flag = 0,
.use_threading = false,
}
static void extract_lines_with_lines_loose_finish(const MeshRenderData *mr, struct MeshBatchCache *cache, void *ibo, void *elb)

Definition at line 1109 of file draw_cache_extract_mesh.c.

Referenced by mesh_buffer_cache_create_requested().

◆ extract_lnor

const MeshExtract extract_lnor
static
Initial value:
= {
.iter_poly_bm = extract_lnor_iter_poly_bm,
.iter_poly_mesh = extract_lnor_iter_poly_mesh,
.data_flag = MR_DATA_LOOP_NOR,
.use_threading = true,
}
@ MR_DATA_LOOP_NOR
static void extract_lnor_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
static void * extract_lnor_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_lnor_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)

Definition at line 2450 of file draw_cache_extract_mesh.c.

Referenced by extract_task_create().

◆ extract_lnor_hq

const MeshExtract extract_lnor_hq
static
Initial value:
= {
.iter_poly_mesh = extract_lnor_hq_iter_poly_mesh,
.data_flag = MR_DATA_LOOP_NOR,
.use_threading = true,
}
static void extract_lnor_hq_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
static void * extract_lnor_hq_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_lnor_hq_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)

Definition at line 2358 of file draw_cache_extract_mesh.c.

Referenced by extract_task_create().

◆ extract_mesh_analysis

const MeshExtract extract_mesh_analysis
static
Initial value:
= {
.use_threading = false,
}
@ MR_DATA_LOOPTRI
static void * extract_mesh_analysis_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_mesh_analysis_finish(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf, void *UNUSED(data))

Definition at line 4757 of file draw_cache_extract_mesh.c.

◆ extract_orco

const MeshExtract extract_orco
static
Initial value:
= {
.iter_poly_bm = extract_orco_iter_poly_bm,
.iter_poly_mesh = extract_orco_iter_poly_mesh,
.data_flag = 0,
.use_threading = true,
}
static void extract_orco_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)
static void extract_orco_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
static void extract_orco_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)
static void * extract_orco_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)

Definition at line 3084 of file draw_cache_extract_mesh.c.

◆ extract_points

const MeshExtract extract_points
static
Initial value:
= {
.iter_poly_bm = extract_points_iter_poly_bm,
.iter_poly_mesh = extract_points_iter_poly_mesh,
.iter_ledge_bm = extract_points_iter_ledge_bm,
.iter_ledge_mesh = extract_points_iter_ledge_mesh,
.iter_lvert_bm = extract_points_iter_lvert_bm,
.iter_lvert_mesh = extract_points_iter_lvert_mesh,
.data_flag = 0,
.use_threading = false,
}
static void extract_points_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *ibo, void *elb)
static void extract_points_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *elb)
static void extract_points_iter_ledge_bm(const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *elb)
static void extract_points_iter_ledge_mesh(const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *elb)
static void extract_points_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *elb)
static void * extract_points_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf))
static void extract_points_iter_lvert_bm(const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *elb)
static void extract_points_iter_lvert_mesh(const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *elb)

Definition at line 1241 of file draw_cache_extract_mesh.c.

◆ extract_poly_idx

const MeshExtract extract_poly_idx
static
Initial value:
= {
.data_flag = 0,
.use_threading = true,
}
static void extract_poly_idx_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
static void extract_poly_idx_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)

Definition at line 5407 of file draw_cache_extract_mesh.c.

◆ extract_pos_nor

const MeshExtract extract_pos_nor
static
Initial value:
= {
.iter_poly_mesh = extract_pos_nor_iter_poly_mesh,
.iter_ledge_mesh = extract_pos_nor_iter_ledge_mesh,
.iter_lvert_mesh = extract_pos_nor_iter_lvert_mesh,
.data_flag = 0,
.use_threading = true,
}
static void extract_pos_nor_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(vbo), void *data)
static void extract_pos_nor_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
static void extract_pos_nor_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
static void extract_pos_nor_iter_ledge_mesh(const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *_data)
static void extract_pos_nor_iter_ledge_bm(const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *_data)
static void extract_pos_nor_iter_lvert_bm(const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *_data)
static void * extract_pos_nor_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)
static void extract_pos_nor_iter_lvert_mesh(const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *_data)

Definition at line 2069 of file draw_cache_extract_mesh.c.

Referenced by extract_task_create().

◆ extract_pos_nor_hq

const MeshExtract extract_pos_nor_hq
static
Initial value:
= {
.data_flag = 0,
.use_threading = true,
}
static void extract_pos_nor_hq_iter_lvert_mesh(const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *_data)
static void extract_pos_nor_hq_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)
static void extract_pos_nor_hq_iter_lvert_bm(const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *_data)
static void extract_pos_nor_hq_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(vbo), void *data)
static void extract_pos_nor_hq_iter_ledge_bm(const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *_data)
static void extract_pos_nor_hq_iter_ledge_mesh(const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *_data)
static void extract_pos_nor_hq_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
static void * extract_pos_nor_hq_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)

Definition at line 2261 of file draw_cache_extract_mesh.c.

Referenced by extract_task_create().

◆ extract_sculpt_data

const MeshExtract extract_sculpt_data
static
Initial value:
= {
.data_flag = 0,
.use_threading = false,
}
static void * extract_sculpt_data_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)

Definition at line 2855 of file draw_cache_extract_mesh.c.

◆ extract_skin_roots

const MeshExtract extract_skin_roots
static
Initial value:
= {
.data_flag = 0,
.use_threading = false,
}
static void * extract_skin_roots_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *buf)

Definition at line 5231 of file draw_cache_extract_mesh.c.

◆ extract_tan

const MeshExtract extract_tan
static
Initial value:
= {
.use_threading = false,
}
@ MR_DATA_TAN_LOOP_NOR
static void * extract_tan_init(const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf)

Definition at line 2738 of file draw_cache_extract_mesh.c.

Referenced by extract_task_create().

◆ extract_tan_hq

const MeshExtract extract_tan_hq
static
Initial value:
= {
.use_threading = false,
}
static void * extract_tan_hq_init(const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf)

Definition at line 2756 of file draw_cache_extract_mesh.c.

Referenced by extract_task_create().

◆ extract_tris

const MeshExtract extract_tris
static
Initial value:
= {
.iter_looptri_bm = extract_tris_iter_looptri_bm,
.iter_looptri_mesh = extract_tris_iter_looptri_mesh,
.data_flag = 0,
.use_threading = false,
}
static void extract_tris_finish(const MeshRenderData *mr, struct MeshBatchCache *cache, void *ibo, void *_data)
static void extract_tris_iter_looptri_bm(const MeshRenderData *mr, const struct ExtractTriBMesh_Params *params, void *_data)
static void * extract_tris_init(const MeshRenderData *mr, struct MeshBatchCache *UNUSED(cache), void *UNUSED(ibo))
static void extract_tris_iter_looptri_mesh(const MeshRenderData *mr, const struct ExtractTriMesh_Params *params, void *_data)

Definition at line 928 of file draw_cache_extract_mesh.c.

◆ extract_uv

const MeshExtract extract_uv
static
Initial value:
= {
.init = extract_uv_init,
.data_flag = 0,
.use_threading = false,
}
static void * extract_uv_init(const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf)

Definition at line 2548 of file draw_cache_extract_mesh.c.

◆ extract_vcol

const MeshExtract extract_vcol
static
Initial value:
= {
.data_flag = 0,
.use_threading = false,
}
static void * extract_vcol_init(const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf)

Definition at line 3004 of file draw_cache_extract_mesh.c.

◆ extract_vert_idx

const MeshExtract extract_vert_idx
static
Initial value:
= {
.data_flag = 0,
.use_threading = true,
}
static void extract_vert_idx_iter_ledge_bm(const MeshRenderData *mr, const ExtractLEdgeBMesh_Params *params, void *data)
static void extract_vert_idx_iter_lvert_mesh(const MeshRenderData *mr, const ExtractLVertMesh_Params *params, void *data)
static void extract_vert_idx_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *data)
static void extract_vert_idx_iter_lvert_bm(const MeshRenderData *mr, const ExtractLVertBMesh_Params *params, void *data)
static void extract_vert_idx_iter_ledge_mesh(const MeshRenderData *mr, const ExtractLEdgeMesh_Params *params, void *data)
static void extract_vert_idx_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *data)

Definition at line 5425 of file draw_cache_extract_mesh.c.

◆ extract_weights

const MeshExtract extract_weights
static
Initial value:
= {
.iter_poly_mesh = extract_weights_iter_poly_mesh,
.data_flag = 0,
.use_threading = true,
}
static void extract_weights_finish(const MeshRenderData *UNUSED(mr), struct MeshBatchCache *UNUSED(cache), void *UNUSED(buf), void *data)
static void extract_weights_iter_poly_mesh(const MeshRenderData *mr, const ExtractPolyMesh_Params *params, void *_data)
static void * extract_weights_init(const MeshRenderData *mr, struct MeshBatchCache *cache, void *buf)
static void extract_weights_iter_poly_bm(const MeshRenderData *mr, const ExtractPolyBMesh_Params *params, void *_data)

Definition at line 3445 of file draw_cache_extract_mesh.c.