Blender
V3.3
|
#include "BKE_subdiv_modifier.h"
#include "MEM_guardedalloc.h"
#include "DNA_mesh_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_userdef_types.h"
#include "BKE_modifier.h"
#include "BKE_subdiv.h"
#include "GPU_capabilities.h"
#include "GPU_context.h"
#include "opensubdiv_capi.h"
Go to the source code of this file.
Variables | |
void(* | BKE_subsurf_modifier_free_gpu_cache_cb )(Subdiv *subdiv) = NULL |
bool BKE_subsurf_modifier_can_do_gpu_subdiv | ( | const Scene * | scene, |
const Object * | ob, | ||
const Mesh * | mesh, | ||
const SubsurfModifierData * | smd, | ||
int | required_mode | ||
) |
Definition at line 120 of file subdiv_modifier.c.
References is_subdivision_evaluation_possible_on_gpu(), mesh, modifier_get_last_enabled_for_mode(), scene, subsurf_modifier_use_autosmooth_or_split_normals(), and USER_GPU_FLAG_SUBDIVISION_EVALUATION.
Return the ModifierMode required for the evaluation of the subsurf modifier, which should be used to check if the modifier is enabled.
Definition at line 167 of file subdiv_modifier.c.
References eModifierMode_Editmode, eModifierMode_Realtime, and eModifierMode_Render.
Referenced by modifyMesh().
bool BKE_subsurf_modifier_force_disable_gpu_evaluation_for_mesh | ( | const SubsurfModifierData * | smd, |
const Mesh * | mesh | ||
) |
Definition at line 104 of file subdiv_modifier.c.
References is_subdivision_evaluation_possible_on_gpu(), mesh, subsurf_modifier_use_autosmooth_or_split_normals(), and USER_GPU_FLAG_SUBDIVISION_EVALUATION.
Definition at line 144 of file subdiv_modifier.c.
References SubsurfRuntimeData::has_gpu_subdiv, mesh, Mesh::runtime, and Mesh_Runtime::subsurf_runtime_data.
bool BKE_subsurf_modifier_runtime_init | ( | SubsurfModifierData * | smd, |
const bool | use_render_params | ||
) |
Definition at line 22 of file subdiv_modifier.c.
References BKE_subdiv_fvar_interpolation_from_uv_smooth(), BKE_subdiv_vtx_boundary_interpolation_from_subsurf(), SubsurfModifierData::boundary_smooth, eSubsurfModifierFlag_UseCrease, eSubsurfModifierFlag_UseRecursiveSubdivision, SubsurfModifierData::flags, if(), SubdivSettings::is_simple, SubsurfModifierData::levels, MEM_callocN, SubsurfModifierData::modifier, NULL, SubsurfModifierData::quality, SubsurfModifierData::renderLevels, ModifierData::runtime, SubsurfRuntimeData::settings, SubsurfModifierData::subdivType, SUBSURF_TYPE_SIMPLE, and SubsurfModifierData::uv_smooth.
Referenced by deformMatrices(), and modifyMesh().
Subdiv* BKE_subsurf_modifier_subdiv_descriptor_ensure | ( | SubsurfRuntimeData * | runtime_data, |
const Mesh * | mesh, | ||
const bool | for_draw_code | ||
) |
Definition at line 152 of file subdiv_modifier.c.
References BKE_subdiv_free(), BKE_subdiv_update_from_mesh(), mesh, NULL, SubsurfRuntimeData::set_by_draw_code, SubsurfRuntimeData::settings, and SubsurfRuntimeData::subdiv.
bool BKE_subsurf_modifier_use_custom_loop_normals | ( | const SubsurfModifierData * | smd, |
const Mesh * | mesh | ||
) |
Definition at line 74 of file subdiv_modifier.c.
References CD_CUSTOMLOOPNORMAL, CustomData_has_layer(), eSubsurfModifierFlag_UseCustomNormals, Mesh::flag, SubsurfModifierData::flags, Mesh::ldata, ME_AUTOSMOOTH, and mesh.
Referenced by subsurf_modifier_use_autosmooth_or_split_normals().
Definition at line 86 of file subdiv_modifier.c.
References GPU_backend_get_type(), GPU_BACKEND_OPENGL, GPU_compute_shader_support(), GPU_max_compute_shader_storage_blocks(), GPU_shader_storage_buffer_objects_support(), and MAX_GPU_SUBDIV_SSBOS.
Referenced by BKE_subsurf_modifier_can_do_gpu_subdiv(), and BKE_subsurf_modifier_force_disable_gpu_evaluation_for_mesh().
|
static |
Definition at line 57 of file subdiv_modifier.c.
References BKE_modifier_is_enabled(), ListBase::last, Object::modifiers, ModifierData::prev, and scene.
Referenced by BKE_subsurf_modifier_can_do_gpu_subdiv().
|
static |
Definition at line 80 of file subdiv_modifier.c.
References BKE_subsurf_modifier_use_custom_loop_normals(), Mesh::flag, ME_AUTOSMOOTH, and mesh.
Referenced by BKE_subsurf_modifier_can_do_gpu_subdiv(), and BKE_subsurf_modifier_force_disable_gpu_evaluation_for_mesh().
Definition at line 150 of file subdiv_modifier.c.
Referenced by BKE_subdiv_free(), and DRW_engines_register().