34 if (dvert ==
nullptr) {
88 if (
format.attr_len == 0) {
98 if (
data->wstate->defgroup_active == -1) {
100 data->dvert =
nullptr;
104 data->dvert =
nullptr;
115 const int UNUSED(f_index),
123 if (
data->cd_ofs != -1) {
131 }
while ((l_iter = l_iter->
next) != l_first);
136 const int UNUSED(mp_index),
142 for (
int ml_index = mp->
loopstart; ml_index < ml_index_end; ml_index += 1) {
143 const MLoop *ml = &mloop[ml_index];
144 if (
data->dvert !=
nullptr) {
161 Mesh *coarse_mesh = subdiv_cache->
mesh;
165 if (
format.attr_len == 0) {
174 for (
int i = 0; i < coarse_mesh->
totpoly; i++) {
void * CustomData_get_layer(const struct CustomData *data, int type)
int CustomData_get_offset(const struct CustomData *data, int type)
@ OB_DRAW_GROUPUSER_ACTIVE
void GPU_vertbuf_discard(GPUVertBuf *)
struct GPUVertBuf GPUVertBuf
GPUVertBuf * GPU_vertbuf_calloc(void)
void GPU_vertbuf_data_alloc(GPUVertBuf *, uint v_len)
#define GPU_vertbuf_init_with_format(verts, format)
void * GPU_vertbuf_get_data(const GPUVertBuf *verts)
void GPU_vertbuf_init_build_on_device(GPUVertBuf *verts, GPUVertFormat *format, uint v_len)
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position CLAMP
#define BM_FACE_FIRST_LOOP(p)
#define BM_ELEM_CD_GET_VOID_P(ele, offset)
#define BM_elem_index_get(ele)
#define BM_ITER_MESH_INDEX(ele, iter, bm, itype, indexvar)
void draw_subdiv_interp_custom_data(const DRWSubdivCache *cache, GPUVertBuf *src_data, GPUVertBuf *dst_data, int dimensions, int dst_offset, bool compress_to_u16)
ccl_global float * buffer
ccl_global KernelShaderEvalInput * input
static void extract_weights_init_subdiv(const DRWSubdivCache *subdiv_cache, const MeshRenderData *mr, MeshBatchCache *cache, void *buffer, void *_data)
static void extract_weights_iter_poly_mesh(const MeshRenderData *mr, const MPoly *mp, const int UNUSED(mp_index), void *_data)
static void extract_weights_init(const MeshRenderData *mr, MeshBatchCache *cache, void *buf, void *tls_data)
static void extract_weights_iter_poly_bm(const MeshRenderData *UNUSED(mr), const BMFace *f, const int UNUSED(f_index), void *_data)
static float evaluate_vertex_weight(const MDeformVert *dvert, const DRW_MeshWeightState *wstate)
constexpr MeshExtract create_extractor_weights()
DRW_MeshWeightState weight_state
eMRExtractType extract_type