26 #define BASIC_ENGINE "BLENDER_BASIC"
77 for (
int i = 0; i < 2; i++) {
122 memset(gpumat_array, 0,
sizeof(*gpumat_array) * materials_len);
140 const short material_slot = part->
omat;
176 if (is_flat_object_viewed_from_side) {
188 const bool do_cull = (draw_ctx->
v3d &&
201 if (use_sculpt_pbvh) {
209 for (
int i = 0; i < materials_len; i++) {
210 if (geoms[i] ==
NULL) {
213 const short material_slot_select_id = i + 1;
General operations, lookup, etc. for blender objects.
bool BKE_object_supports_material_slots(struct Object *ob)
bool BKE_sculptsession_use_pbvh_draw(const struct Object *ob, const struct RegionView3D *rv3d)
#define BLI_array_alloca(arr, realsize)
@ V3D_SHADING_BACKFACE_CULLING
char DRWViewportEmptyList
@ DRW_STATE_IN_FRONT_SELECT
@ DRW_STATE_DEPTH_LESS_EQUAL
#define DRW_PASS_CREATE(pass, state)
#define DRW_VIEWPORT_DATA_SIZE(ty)
#define DRW_shgroup_call(shgroup, geom, ob)
struct GPUShader GPUShader
struct BASIC_Data BASIC_Data
static void basic_cache_populate(void *vedata, Object *ob)
struct BASIC_PrivateData BASIC_PrivateData
struct BASIC_StorageList BASIC_StorageList
static const DrawEngineDataSize basic_data_size
static void basic_cache_finish(void *vedata)
struct BASIC_PassList BASIC_PassList
static void basic_engine_free(void)
DrawEngineType draw_engine_basic_type
static void basic_cache_init(void *vedata)
static struct GPUBatch ** basic_object_surface_material_get(Object *ob)
static void basic_draw_scene(void *vedata)
static void basic_cache_populate_particles(void *vedata, Object *ob)
GPUShader * BASIC_shaders_depth_conservative_sh_get(eGPUShaderConfig config)
void BASIC_shaders_free(void)
GPUShader * BASIC_shaders_pointcloud_depth_conservative_sh_get(eGPUShaderConfig config)
GPUShader * BASIC_shaders_pointcloud_depth_sh_get(eGPUShaderConfig config)
GPUShader * BASIC_shaders_depth_sh_get(eGPUShaderConfig config)
GPUShader * BASIC_shaders_curves_depth_sh_get(eGPUShaderConfig config)
GPUBatch * DRW_cache_object_all_edges_get(Object *ob)
GPUBatch ** DRW_cache_object_surface_material_get(struct Object *ob, struct GPUMaterial **gpumat_array, uint gpumat_array_len)
int DRW_cache_object_material_count_get(struct Object *ob)
GPUBatch * DRW_cache_particles_get_hair(Object *object, ParticleSystem *psys, ModifierData *md)
GPUBatch * DRW_cache_object_surface_get(Object *ob)
bool DRW_object_is_flat(Object *ob, int *r_axis)
bool DRW_object_axis_orthogonal_to_view(Object *ob, int axis)
struct DRWShadingGroup * DRW_shgroup_curves_create_sub(struct Object *object, struct DRWShadingGroup *shgrp, struct GPUMaterial *gpu_material)
bool DRW_state_is_select(void)
bool DRW_state_is_material_select(void)
bool DRW_object_is_renderable(const Object *ob)
bool DRW_object_is_visible_psys_in_active_context(const Object *object, const ParticleSystem *psys)
const DRWContextState * DRW_context_state_get(void)
const float * DRW_viewport_size_get(void)
bool DRW_state_is_image_render(void)
const float * DRW_viewport_invert_size_get(void)
void DRW_shgroup_call_sculpt(DRWShadingGroup *shgroup, Object *ob, bool use_wire, bool use_mask)
DRWShadingGroup * DRW_shgroup_create(struct GPUShader *shader, DRWPass *pass)
void DRW_shgroup_uniform_vec2(DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
void DRW_draw_pass(DRWPass *pass)
void DRW_select_load_id(uint id)
ccl_gpu_kernel_postfix ccl_global float int int int int sh
void *(* MEM_callocN)(size_t len, const char *str)
DRWViewportEmptyList * fbl
DRWViewportEmptyList * txl
struct DRWPass * depth_pass_pointcloud[2]
struct DRWPass * depth_pass_cull[2]
struct DRWPass * depth_pass[2]
DRWShadingGroup * depth_shgrp[2]
DRWShadingGroup * depth_hair_shgrp[2]
DRWShadingGroup * depth_shgrp_cull[2]
DRWShadingGroup * depth_pointcloud_shgrp[2]
bool use_material_slot_selection
DRWShadingGroup * depth_curves_shgrp[2]
struct BASIC_PrivateData * g_data
struct Object * object_edit
struct RegionView3D * rv3d