Blender  V3.3
Classes | Macros | Typedefs | Functions | Variables
BKE_subdiv_modifier.h File Reference
#include "BKE_subdiv.h"
#include "BLI_sys_types.h"

Go to the source code of this file.

Classes

struct  SubsurfRuntimeData
 

Macros

#define MAX_GPU_SUBDIV_SSBOS   12
 

Typedefs

typedef struct SubsurfRuntimeData SubsurfRuntimeData
 

Functions

bool BKE_subsurf_modifier_runtime_init (struct SubsurfModifierData *smd, bool use_render_params)
 
bool BKE_subsurf_modifier_use_custom_loop_normals (const struct SubsurfModifierData *smd, const struct Mesh *mesh)
 
bool BKE_subsurf_modifier_force_disable_gpu_evaluation_for_mesh (const struct SubsurfModifierData *smd, const struct Mesh *mesh)
 
bool BKE_subsurf_modifier_can_do_gpu_subdiv (const struct Scene *scene, const struct Object *ob, const struct Mesh *mesh, const struct SubsurfModifierData *smd, int required_mode)
 
bool BKE_subsurf_modifier_has_gpu_subdiv (const struct Mesh *mesh)
 
struct SubdivBKE_subsurf_modifier_subdiv_descriptor_ensure (struct SubsurfRuntimeData *runtime_data, const struct Mesh *mesh, 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 )(struct Subdiv *subdiv)
 

Macro Definition Documentation

◆ MAX_GPU_SUBDIV_SSBOS

#define MAX_GPU_SUBDIV_SSBOS   12

Definition at line 20 of file BKE_subdiv_modifier.h.

Typedef Documentation

◆ SubsurfRuntimeData

Function Documentation

◆ BKE_subsurf_modifier_can_do_gpu_subdiv()

bool BKE_subsurf_modifier_can_do_gpu_subdiv ( const struct Scene scene,
const struct Object ob,
const struct Mesh mesh,
const struct SubsurfModifierData smd,
int  required_mode 
)
Parameters
skip_check_is_lastWhen true, we assume that the modifier passed is the last enabled modifier in the stack.

Referenced by modifyMesh().

◆ 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 struct SubsurfModifierData smd,
const struct Mesh mesh 
)

Return true if GPU subdivision evaluation is disabled by force due to incompatible mesh or modifier settings. This will only return true if GPU subdivision is enabled in the preferences and supported by the GPU. It is mainly useful for showing UI messages.

Referenced by panel_draw().

◆ BKE_subsurf_modifier_has_gpu_subdiv()

bool BKE_subsurf_modifier_has_gpu_subdiv ( const struct Mesh mesh)

◆ BKE_subsurf_modifier_runtime_init()

bool BKE_subsurf_modifier_runtime_init ( struct SubsurfModifierData smd,
bool  use_render_params 
)

◆ BKE_subsurf_modifier_subdiv_descriptor_ensure()

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

Main goal of this function is to give usable subdivision surface descriptor which matches settings and topology.

Referenced by deformMatrices(), draw_subdiv_create_requested_buffers(), mesh_wrapper_ensure_subdivision(), and modifyMesh().

◆ BKE_subsurf_modifier_use_custom_loop_normals()

bool BKE_subsurf_modifier_use_custom_loop_normals ( const struct SubsurfModifierData smd,
const struct Mesh mesh 
)

Referenced by modifyMesh().

Variable Documentation

◆ BKE_subsurf_modifier_free_gpu_cache_cb

void(* BKE_subsurf_modifier_free_gpu_cache_cb) (struct Subdiv *subdiv) ( struct Subdiv subdiv)
extern

Definition at line 150 of file subdiv_modifier.c.

Referenced by BKE_subdiv_free(), and DRW_engines_register().