196 const bool is_editmode,
197 const bool is_paint_mode,
198 const bool is_mode_active,
199 const float obmat[4][4],
201 const bool do_uvedit,
204 const bool use_hide);
237 struct GPUVertBuf *subdiv_loop_subdiv_vert_index,
253 bool compress_to_u16);
257 int face_varying_channel,
275 uint num_loose_edges);
struct GPUIndexBuf GPUIndexBuf
struct GPUVertBuf GPUVertBuf
blender::Span< DRWSubdivLooseVertex > draw_subdiv_cache_get_loose_verts(const DRWSubdivCache *cache)
blender::Span< DRWSubdivLooseEdge > draw_subdiv_cache_get_loose_edges(const DRWSubdivCache *cache)
void draw_subdiv_init_mesh_render_data(DRWSubdivCache *cache, struct MeshRenderData *mr, const struct ToolSettings *toolsettings)
void draw_subdiv_init_origindex_buffer(struct GPUVertBuf *buffer, int32_t *vert_origindex, uint num_loops, uint loose_len)
void draw_subdiv_accumulate_normals(const DRWSubdivCache *cache, struct GPUVertBuf *pos_nor, struct GPUVertBuf *face_adjacency_offsets, struct GPUVertBuf *face_adjacency_lists, struct GPUVertBuf *vertex_loop_map, struct GPUVertBuf *vertex_normals)
struct GPUVertFormat * draw_subdiv_get_pos_nor_format(void)
void draw_subdiv_build_fdots_buffers(const DRWSubdivCache *cache, struct GPUVertBuf *fdots_pos, struct GPUVertBuf *fdots_nor, struct GPUIndexBuf *fdots_indices)
struct DRWSubdivLooseVertex DRWSubdivLooseVertex
void draw_subdiv_build_edituv_stretch_area_buffer(const DRWSubdivCache *cache, struct GPUVertBuf *coarse_data, struct GPUVertBuf *subdiv_data)
void draw_subdiv_build_edge_fac_buffer(const DRWSubdivCache *cache, struct GPUVertBuf *pos_nor, struct GPUVertBuf *edge_idx, struct GPUVertBuf *edge_fac)
void draw_subdiv_finalize_normals(const DRWSubdivCache *cache, struct GPUVertBuf *vertex_normals, struct GPUVertBuf *subdiv_loop_subdiv_vert_index, struct GPUVertBuf *pos_nor)
void DRW_create_subdivision(struct Object *ob, struct Mesh *mesh, struct MeshBatchCache *batch_cache, struct MeshBufferCache *mbc, 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 do_cage, const ToolSettings *ts, const bool use_hide)
void draw_subdiv_build_sculpt_data_buffer(const DRWSubdivCache *cache, struct GPUVertBuf *mask_vbo, struct GPUVertBuf *face_set_vbo, struct GPUVertBuf *sculpt_data)
struct DRWPatchMap DRWPatchMap
struct DRWSubdivLooseEdge DRWSubdivLooseEdge
void DRW_subdiv_cache_free(struct Subdiv *subdiv)
void draw_subdiv_extract_uvs(const DRWSubdivCache *cache, struct GPUVertBuf *uvs, int face_varying_channel, int dst_offset)
void draw_subdiv_build_edituv_stretch_angle_buffer(const DRWSubdivCache *cache, struct GPUVertBuf *pos_nor, struct GPUVertBuf *uvs, int uvs_offset, struct GPUVertBuf *stretch_angles)
void draw_subdiv_build_lnor_buffer(const DRWSubdivCache *cache, struct GPUVertBuf *pos_nor, struct GPUVertBuf *lnor)
void draw_subdiv_finalize_custom_normals(const DRWSubdivCache *cache, GPUVertBuf *src_custom_normals, GPUVertBuf *pos_nor)
void draw_subdiv_build_tris_buffer(const DRWSubdivCache *cache, struct GPUIndexBuf *subdiv_tris, int material_count)
struct DRWSubdivCache DRWSubdivCache
void draw_subdiv_build_lines_loose_buffer(const DRWSubdivCache *cache, struct GPUIndexBuf *lines_indices, GPUVertBuf *lines_flags, uint num_loose_edges)
struct GPUVertBuf * draw_subdiv_build_origindex_buffer(int *vert_origindex, uint num_loops)
void draw_subdiv_cache_free(DRWSubdivCache *cache)
void draw_subdiv_extract_pos_nor(const DRWSubdivCache *cache, struct GPUVertBuf *pos_nor, struct GPUVertBuf *orco)
struct DRWSubdivLooseGeom DRWSubdivLooseGeom
void draw_subdiv_build_lines_buffer(const DRWSubdivCache *cache, struct GPUIndexBuf *lines_indices)
void DRW_subdivide_loose_geom(DRWSubdivCache *subdiv_cache, struct MeshBufferCache *cache)
void draw_subdiv_interp_custom_data(const DRWSubdivCache *cache, struct GPUVertBuf *src_data, struct GPUVertBuf *dst_data, int dimensions, int dst_offset, bool compress_to_u16)
ccl_global float * buffer
struct GPUVertBuf * patch_map_handles
struct GPUVertBuf * patch_map_quadtree
int patches_are_triangular
struct GPUVertBuf * face_ptex_offset_buffer
struct GPUVertBuf * edges_orig_index
struct GPUVertBuf * subdiv_vertex_face_adjacency_offsets
struct GPUUniformBuf * ubo
bool use_custom_loop_normals
struct GPUVertBuf * patch_coords
int * subdiv_loop_subdiv_vert_index
struct GPUVertBuf * fdots_patch_coords
struct GPUVertBuf * verts_orig_index
struct GPUVertBuf * polygon_mat_offset
struct GPUVertBuf * corner_patch_coords
DRWPatchMap gpu_patch_map
int * subdiv_loop_poly_index
int * subdiv_polygon_offset
struct GPUVertBuf * extra_coarse_face_data
int * subdiv_loop_subdiv_edge_index
uint num_subdiv_triangles
DRWSubdivLooseGeom loose_geom
struct GPUVertBuf * subdiv_vertex_face_adjacency
struct GPUVertBuf * subdiv_polygon_offset_buffer
int loose_subdiv_v2_index
int loose_subdiv_v1_index
DRWSubdivLooseVertex * verts
DRWSubdivLooseEdge * edges
unsigned int coarse_vertex_index