Blender
V3.3
|
Extraction of Mesh data into VBO to feed to GPU. More...
#include "MEM_guardedalloc.h"
#include "DNA_object_types.h"
#include "ED_uvedit.h"
#include "extract_mesh.hh"
#include "draw_cache_impl.h"
Go to the source code of this file.
Functions | |
void * | mesh_extract_buffer_get (const MeshExtract *extractor, MeshBufferList *mbuflist) |
eMRIterType | mesh_extract_iter_type (const MeshExtract *ext) |
Override extractors | |
Extractors can be overridden. When overridden a specialized version is used. The next functions would check for any needed overrides and usage of the specialized version. | |
static const MeshExtract * | mesh_extract_override_hq_normals (const MeshExtract *extractor) |
static const MeshExtract * | mesh_extract_override_single_material (const MeshExtract *extractor) |
const MeshExtract * | mesh_extract_override_get (const MeshExtract *extractor, const bool do_hq_normals, const bool do_single_mat) |
Extract Edit Flag Utils | |
void | mesh_render_data_face_flag (const MeshRenderData *mr, const BMFace *efa, const int cd_ofs, EditLoopData *eattr) |
void | mesh_render_data_loop_flag (const MeshRenderData *mr, BMLoop *l, const int cd_ofs, EditLoopData *eattr) |
void | mesh_render_data_loop_edge_flag (const MeshRenderData *mr, BMLoop *l, const int cd_ofs, EditLoopData *eattr) |
Extraction of Mesh data into VBO to feed to GPU.
Definition in file extract_mesh.cc.
void* mesh_extract_buffer_get | ( | const MeshExtract * | extractor, |
MeshBufferList * | mbuflist | ||
) |
Definition at line 20 of file extract_mesh.cc.
References BLI_assert, buffer, MeshExtract::mesh_buffer_offset, and POINTER_OFFSET.
Referenced by blender::draw::extract_init(), and blender::draw::mesh_buffer_cache_create_requested_subdiv().
eMRIterType mesh_extract_iter_type | ( | const MeshExtract * | ext | ) |
Definition at line 30 of file extract_mesh.cc.
References MeshExtract::iter_ledge_bm, MeshExtract::iter_ledge_mesh, MeshExtract::iter_looptri_bm, MeshExtract::iter_looptri_mesh, MeshExtract::iter_lvert_bm, MeshExtract::iter_lvert_mesh, MeshExtract::iter_poly_bm, MeshExtract::iter_poly_mesh, SET_FLAG_FROM_TEST, and type.
Referenced by blender::draw::ExtractorRunDatas::iter_types().
const MeshExtract* mesh_extract_override_get | ( | const MeshExtract * | extractor, |
const bool | do_hq_normals, | ||
const bool | do_single_mat | ||
) |
Definition at line 71 of file extract_mesh.cc.
References mesh_extract_override_hq_normals(), and mesh_extract_override_single_material().
|
static |
Definition at line 46 of file extract_mesh.cc.
References extract_fdots_nor, extract_fdots_nor_hq, extract_lnor, extract_lnor_hq, extract_pos_nor, extract_pos_nor_hq, extract_tan, and extract_tan_hq.
Referenced by mesh_extract_override_get().
|
static |
Definition at line 63 of file extract_mesh.cc.
References extract_tris, and extract_tris_single_mat.
Referenced by mesh_extract_override_get().
void mesh_render_data_face_flag | ( | const MeshRenderData * | mr, |
const BMFace * | efa, | ||
const int | cd_ofs, | ||
EditLoopData * | eattr | ||
) |
Definition at line 92 of file extract_mesh.cc.
References BM_ELEM_CD_GET_VOID_P, BM_elem_flag_test, BM_ELEM_SELECT, MeshRenderData::efa_act, MeshRenderData::efa_act_uv, FreestyleFace::flag, FREESTYLE_FACE_MARK, MeshRenderData::freestyle_face_ofs, MeshRenderData::toolsettings, uvedit_face_select_test_ex(), EditLoopData::v_flag, VFLAG_FACE_ACTIVE, VFLAG_FACE_FREESTYLE, VFLAG_FACE_SELECTED, VFLAG_FACE_UV_ACTIVE, and VFLAG_FACE_UV_SELECT.
Referenced by blender::draw::extract_edit_data_iter_poly_bm(), blender::draw::extract_edit_data_iter_poly_mesh(), blender::draw::extract_edit_data_iter_subdiv_bm(), blender::draw::extract_edituv_data_iter_poly_bm(), blender::draw::extract_edituv_data_iter_subdiv_bm(), blender::draw::extract_fdots_edituv_data_iter_poly_bm(), and blender::draw::extract_fdots_edituv_data_iter_poly_mesh().
void mesh_render_data_loop_edge_flag | ( | const MeshRenderData * | mr, |
BMLoop * | l, | ||
const int | cd_ofs, | ||
EditLoopData * | eattr | ||
) |
Definition at line 139 of file extract_mesh.cc.
References l, MeshRenderData::toolsettings, uvedit_edge_select_test_ex(), EditLoopData::v_flag, VFLAG_EDGE_UV_SELECT, and VFLAG_VERT_UV_SELECT.
Referenced by blender::draw::extract_edituv_data_iter_poly_bm(), blender::draw::extract_edituv_data_iter_poly_mesh(), and blender::draw::extract_edituv_data_iter_subdiv_bm().
void mesh_render_data_loop_flag | ( | const MeshRenderData * | mr, |
BMLoop * | l, | ||
const int | cd_ofs, | ||
EditLoopData * | eattr | ||
) |
Definition at line 122 of file extract_mesh.cc.
References BM_ELEM_CD_GET_VOID_P, MLoopUV::flag, l, MLOOPUV_PINNED, MeshRenderData::toolsettings, uvedit_uv_select_test_ex(), EditLoopData::v_flag, VFLAG_VERT_UV_PINNED, and VFLAG_VERT_UV_SELECT.
Referenced by blender::draw::extract_edituv_data_iter_poly_bm(), blender::draw::extract_edituv_data_iter_poly_mesh(), and blender::draw::extract_edituv_data_iter_subdiv_bm().