Blender  V3.3
Functions | Variables
subdiv_modifier.c File Reference
#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.

Functions

bool BKE_subsurf_modifier_runtime_init (SubsurfModifierData *smd, const bool use_render_params)
 
static ModifierDatamodifier_get_last_enabled_for_mode (const Scene *scene, const Object *ob, int required_mode)
 
bool BKE_subsurf_modifier_use_custom_loop_normals (const SubsurfModifierData *smd, const Mesh *mesh)
 
static bool subsurf_modifier_use_autosmooth_or_split_normals (const SubsurfModifierData *smd, const Mesh *mesh)
 
static bool is_subdivision_evaluation_possible_on_gpu (void)
 
bool BKE_subsurf_modifier_force_disable_gpu_evaluation_for_mesh (const SubsurfModifierData *smd, const Mesh *mesh)
 
bool BKE_subsurf_modifier_can_do_gpu_subdiv (const Scene *scene, const Object *ob, const Mesh *mesh, const SubsurfModifierData *smd, int required_mode)
 
bool BKE_subsurf_modifier_has_gpu_subdiv (const Mesh *mesh)
 
SubdivBKE_subsurf_modifier_subdiv_descriptor_ensure (SubsurfRuntimeData *runtime_data, const Mesh *mesh, const bool for_draw_code)
 
int BKE_subsurf_modifier_eval_required_mode (bool is_final_render, bool is_edit_mode)
 

Variables

void(* BKE_subsurf_modifier_free_gpu_cache_cb )(Subdiv *subdiv) = NULL
 

Function Documentation

◆ BKE_subsurf_modifier_can_do_gpu_subdiv()

bool BKE_subsurf_modifier_can_do_gpu_subdiv ( const Scene scene,
const Object ob,
const Mesh mesh,
const SubsurfModifierData smd,
int  required_mode 
)

◆ BKE_subsurf_modifier_eval_required_mode()

int BKE_subsurf_modifier_eval_required_mode ( bool  is_final_render,
bool  is_edit_mode 
)

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().

◆ BKE_subsurf_modifier_force_disable_gpu_evaluation_for_mesh()

bool BKE_subsurf_modifier_force_disable_gpu_evaluation_for_mesh ( const SubsurfModifierData smd,
const Mesh mesh 
)

◆ BKE_subsurf_modifier_has_gpu_subdiv()

bool BKE_subsurf_modifier_has_gpu_subdiv ( const Mesh mesh)

◆ BKE_subsurf_modifier_runtime_init()

bool BKE_subsurf_modifier_runtime_init ( SubsurfModifierData smd,
const bool  use_render_params 
)

◆ BKE_subsurf_modifier_subdiv_descriptor_ensure()

Subdiv* BKE_subsurf_modifier_subdiv_descriptor_ensure ( SubsurfRuntimeData runtime_data,
const Mesh mesh,
const bool  for_draw_code 
)

◆ BKE_subsurf_modifier_use_custom_loop_normals()

bool BKE_subsurf_modifier_use_custom_loop_normals ( const SubsurfModifierData smd,
const Mesh mesh 
)

◆ is_subdivision_evaluation_possible_on_gpu()

static bool is_subdivision_evaluation_possible_on_gpu ( void  )
static

◆ modifier_get_last_enabled_for_mode()

static ModifierData* modifier_get_last_enabled_for_mode ( const Scene scene,
const Object ob,
int  required_mode 
)
static

◆ subsurf_modifier_use_autosmooth_or_split_normals()

static bool subsurf_modifier_use_autosmooth_or_split_normals ( const SubsurfModifierData smd,
const Mesh mesh 
)
static

Variable Documentation

◆ BKE_subsurf_modifier_free_gpu_cache_cb

void(* BKE_subsurf_modifier_free_gpu_cache_cb) (Subdiv *subdiv) ( Subdiv subdiv) = NULL

Definition at line 150 of file subdiv_modifier.c.

Referenced by BKE_subdiv_free(), and DRW_engines_register().