Use 'safe' macros for common free operation
Same as MEM_SAFE_FREE macro, checks for NULL, runs free then sets NULL. Blocks of code that do this many times are noisy and likely errors here wouldn't be noticed immediately. Also NULL's static vars which were being left set.
This commit is contained in:
parent
c080702e73
commit
64660b902c
|
@ -109,3 +109,19 @@ Batch* create_BatchWithOwnVertexBufferAndElementList(PrimitiveType, VertexFormat
|
|||
Batch* create_BatchInGeneral(PrimitiveType, VertexBufferStuff, ElementListStuff);
|
||||
|
||||
#endif // future plans
|
||||
|
||||
|
||||
/* Macros */
|
||||
|
||||
#define BATCH_DISCARD_SAFE(batch) do { \
|
||||
if (batch != NULL) { \
|
||||
Batch_discard(batch); \
|
||||
batch = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
#define BATCH_DISCARD_ALL_SAFE(batch) do { \
|
||||
if (batch != NULL) { \
|
||||
Batch_discard_all(batch); \
|
||||
batch = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
|
|
|
@ -62,3 +62,13 @@ ElementList* ElementList_build(ElementListBuilder*);
|
|||
void ElementList_build_in_place(ElementListBuilder*, ElementList*);
|
||||
|
||||
void ElementList_discard(ElementList*);
|
||||
|
||||
|
||||
/* Macros */
|
||||
|
||||
#define ELEMENTLIST_DISCARD_SAFE(elem) do { \
|
||||
if (elem != NULL) { \
|
||||
ElementList_discard(elem); \
|
||||
elem = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
|
|
|
@ -62,3 +62,13 @@ void VertexBuffer_fill_attrib_stride(VertexBuffer*, unsigned a_idx, unsigned str
|
|||
// void setAttrib4ub(unsigned a_idx, unsigned v_idx, unsigned char r, unsigned char g, unsigned char b, unsigned char a);
|
||||
|
||||
void VertexBuffer_use(VertexBuffer*);
|
||||
|
||||
|
||||
/* Macros */
|
||||
|
||||
#define VERTEXBUFFER_DISCARD_SAFE(verts) do { \
|
||||
if (verts != NULL) { \
|
||||
VertexBuffer_discard(verts); \
|
||||
verts = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
|
|
|
@ -877,22 +877,10 @@ void BKE_mesh_batch_selection_dirty(Mesh *me)
|
|||
MeshBatchCache *cache = me->batch_cache;
|
||||
if (cache) {
|
||||
/* TODO Separate Flag vbo */
|
||||
if (cache->overlay_triangles) {
|
||||
Batch_discard_all(cache->overlay_triangles);
|
||||
cache->overlay_triangles = NULL;
|
||||
}
|
||||
if (cache->overlay_loose_verts) {
|
||||
Batch_discard_all(cache->overlay_loose_verts);
|
||||
cache->overlay_loose_verts = NULL;
|
||||
}
|
||||
if (cache->overlay_loose_edges) {
|
||||
Batch_discard_all(cache->overlay_loose_edges);
|
||||
cache->overlay_loose_edges = NULL;
|
||||
}
|
||||
if (cache->overlay_facedots) {
|
||||
Batch_discard_all(cache->overlay_facedots);
|
||||
cache->overlay_facedots = NULL;
|
||||
}
|
||||
BATCH_DISCARD_ALL_SAFE(cache->overlay_triangles);
|
||||
BATCH_DISCARD_ALL_SAFE(cache->overlay_loose_verts);
|
||||
BATCH_DISCARD_ALL_SAFE(cache->overlay_loose_edges);
|
||||
BATCH_DISCARD_ALL_SAFE(cache->overlay_facedots);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -903,27 +891,24 @@ void BKE_mesh_batch_cache_clear(Mesh *me)
|
|||
return;
|
||||
}
|
||||
|
||||
if (cache->all_verts) Batch_discard(cache->all_verts);
|
||||
if (cache->all_edges) Batch_discard(cache->all_edges);
|
||||
if (cache->all_triangles) Batch_discard(cache->all_triangles);
|
||||
BATCH_DISCARD_SAFE(cache->all_verts);
|
||||
BATCH_DISCARD_SAFE(cache->all_edges);
|
||||
BATCH_DISCARD_SAFE(cache->all_triangles);
|
||||
|
||||
if (cache->pos_in_order) VertexBuffer_discard(cache->pos_in_order);
|
||||
if (cache->edges_in_order) ElementList_discard(cache->edges_in_order);
|
||||
if (cache->triangles_in_order) ElementList_discard(cache->triangles_in_order);
|
||||
VERTEXBUFFER_DISCARD_SAFE(cache->pos_in_order);
|
||||
ELEMENTLIST_DISCARD_SAFE(cache->edges_in_order);
|
||||
ELEMENTLIST_DISCARD_SAFE(cache->triangles_in_order);
|
||||
|
||||
if (cache->overlay_triangles) Batch_discard_all(cache->overlay_triangles);
|
||||
if (cache->overlay_loose_verts) Batch_discard_all(cache->overlay_loose_verts);
|
||||
if (cache->overlay_loose_edges) Batch_discard_all(cache->overlay_loose_edges);
|
||||
if (cache->overlay_facedots) Batch_discard_all(cache->overlay_facedots);
|
||||
BATCH_DISCARD_ALL_SAFE(cache->overlay_triangles);
|
||||
BATCH_DISCARD_ALL_SAFE(cache->overlay_loose_verts);
|
||||
BATCH_DISCARD_ALL_SAFE(cache->overlay_loose_edges);
|
||||
BATCH_DISCARD_ALL_SAFE(cache->overlay_facedots);
|
||||
|
||||
if (cache->triangles_with_normals) Batch_discard(cache->triangles_with_normals);
|
||||
if (cache->points_with_normals) Batch_discard(cache->points_with_normals);
|
||||
if (cache->pos_with_normals) VertexBuffer_discard(cache->pos_with_normals);
|
||||
|
||||
BATCH_DISCARD_SAFE(cache->triangles_with_normals);
|
||||
BATCH_DISCARD_SAFE(cache->points_with_normals);
|
||||
VERTEXBUFFER_DISCARD_SAFE(cache->pos_with_normals);
|
||||
|
||||
if (cache->fancy_edges) {
|
||||
Batch_discard_all(cache->fancy_edges);
|
||||
}
|
||||
BATCH_DISCARD_ALL_SAFE(cache->fancy_edges);
|
||||
}
|
||||
|
||||
void BKE_mesh_batch_cache_free(Mesh *me)
|
||||
|
|
|
@ -632,18 +632,10 @@ static void CLAY_collection_settings_create(RenderEngine *UNUSED(engine), IDProp
|
|||
|
||||
static void CLAY_engine_free(void)
|
||||
{
|
||||
if (e_data.clay_sh) {
|
||||
DRW_shader_free(e_data.clay_sh);
|
||||
}
|
||||
if (e_data.matcap_array) {
|
||||
DRW_texture_free(e_data.matcap_array);
|
||||
}
|
||||
if (e_data.jitter_tx) {
|
||||
DRW_texture_free(e_data.jitter_tx);
|
||||
}
|
||||
if (e_data.sampling_tx) {
|
||||
DRW_texture_free(e_data.sampling_tx);
|
||||
}
|
||||
DRW_SHADER_FREE_SAFE(e_data.clay_sh);
|
||||
DRW_TEXTURE_FREE_SAFE(e_data.matcap_array);
|
||||
DRW_TEXTURE_FREE_SAFE(e_data.jitter_tx);
|
||||
DRW_TEXTURE_FREE_SAFE(e_data.sampling_tx);
|
||||
}
|
||||
|
||||
static const DrawEngineDataSize CLAY_data_size = DRW_VIEWPORT_DATA_SIZE(CLAY_Data);
|
||||
|
|
|
@ -248,16 +248,11 @@ static void EEVEE_draw_scene(void *vedata)
|
|||
|
||||
static void EEVEE_engine_free(void)
|
||||
{
|
||||
if (e_data.default_lit)
|
||||
DRW_shader_free(e_data.default_lit);
|
||||
if (e_data.shadow_sh)
|
||||
DRW_shader_free(e_data.shadow_sh);
|
||||
if (e_data.tonemap)
|
||||
DRW_shader_free(e_data.tonemap);
|
||||
if (e_data.ltc_mat)
|
||||
DRW_texture_free(e_data.ltc_mat);
|
||||
if (e_data.ltc_mag)
|
||||
DRW_texture_free(e_data.ltc_mag);
|
||||
DRW_SHADER_FREE_SAFE(e_data.default_lit);
|
||||
DRW_SHADER_FREE_SAFE(e_data.shadow_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.tonemap);
|
||||
DRW_TEXTURE_FREE_SAFE(e_data.ltc_mat);
|
||||
DRW_TEXTURE_FREE_SAFE(e_data.ltc_mag);
|
||||
}
|
||||
|
||||
static void EEVEE_collection_settings_create(RenderEngine *UNUSED(engine), IDProperty *props)
|
||||
|
|
|
@ -125,24 +125,15 @@ void EEVEE_lights_cache_finish(EEVEE_StorageList *stl, EEVEE_TextureList *txl, E
|
|||
/* Step 5 Setup enough layers */
|
||||
/* Free textures if number mismatch */
|
||||
if (linfo->num_cube != linfo->cache_num_cube) {
|
||||
if (txl->shadow_depth_cube_pool) {
|
||||
DRW_texture_free(txl->shadow_depth_cube_pool);
|
||||
txl->shadow_depth_cube_pool = NULL;
|
||||
}
|
||||
DRW_TEXTURE_FREE_SAFE(txl->shadow_depth_cube_pool);
|
||||
linfo->cache_num_cube = linfo->num_cube;
|
||||
}
|
||||
if (linfo->num_map != linfo->cache_num_map) {
|
||||
if (txl->shadow_depth_map_pool) {
|
||||
DRW_texture_free(txl->shadow_depth_map_pool);
|
||||
txl->shadow_depth_map_pool = NULL;
|
||||
}
|
||||
DRW_TEXTURE_FREE_SAFE(txl->shadow_depth_map_pool);
|
||||
linfo->cache_num_map = linfo->num_map;
|
||||
}
|
||||
if (linfo->num_cascade != linfo->cache_num_cascade) {
|
||||
if (txl->shadow_depth_cascade_pool) {
|
||||
DRW_texture_free(txl->shadow_depth_cascade_pool);
|
||||
txl->shadow_depth_cascade_pool = NULL;
|
||||
}
|
||||
DRW_TEXTURE_FREE_SAFE(txl->shadow_depth_cascade_pool);
|
||||
linfo->cache_num_cascade = linfo->num_cascade;
|
||||
}
|
||||
|
||||
|
|
|
@ -153,6 +153,12 @@ struct GPUTexture *DRW_texture_create_2D_array(
|
|||
struct GPUTexture *DRW_texture_create_cube(
|
||||
int w, DRWTextureFormat format, DRWTextureFlag flags, const float *fpixels);
|
||||
void DRW_texture_free(struct GPUTexture *tex);
|
||||
#define DRW_TEXTURE_FREE_SAFE(tex) do { \
|
||||
if (tex != NULL) { \
|
||||
DRW_texture_free(tex); \
|
||||
tex = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* UBOs */
|
||||
struct GPUUniformBuffer *DRW_uniformbuffer_create(int size, const void *data);
|
||||
|
@ -200,6 +206,12 @@ struct GPUShader *DRW_shader_create_3D(const char *frag, const char *defines);
|
|||
struct GPUShader *DRW_shader_create_fullscreen(const char *frag, const char *defines);
|
||||
struct GPUShader *DRW_shader_create_3D_depth_only(void);
|
||||
void DRW_shader_free(struct GPUShader *shader);
|
||||
#define DRW_SHADER_FREE_SAFE(shader) do { \
|
||||
if (shader != NULL) { \
|
||||
DRW_shader_free(shader); \
|
||||
shader = NULL; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Batches */
|
||||
|
||||
|
|
|
@ -76,72 +76,39 @@ static struct DRWShapeCache {
|
|||
|
||||
void DRW_shape_cache_free(void)
|
||||
{
|
||||
if (SHC.drw_single_vertice)
|
||||
Batch_discard_all(SHC.drw_single_vertice);
|
||||
if (SHC.drw_fullscreen_quad)
|
||||
Batch_discard_all(SHC.drw_fullscreen_quad);
|
||||
if (SHC.drw_plain_axes)
|
||||
Batch_discard_all(SHC.drw_plain_axes);
|
||||
if (SHC.drw_single_arrow)
|
||||
Batch_discard_all(SHC.drw_single_arrow);
|
||||
if (SHC.drw_cube)
|
||||
Batch_discard_all(SHC.drw_cube);
|
||||
if (SHC.drw_circle)
|
||||
Batch_discard_all(SHC.drw_circle);
|
||||
if (SHC.drw_square)
|
||||
Batch_discard_all(SHC.drw_square);
|
||||
if (SHC.drw_line)
|
||||
Batch_discard_all(SHC.drw_line);
|
||||
if (SHC.drw_line_endpoints)
|
||||
Batch_discard_all(SHC.drw_line_endpoints);
|
||||
if (SHC.drw_empty_sphere)
|
||||
Batch_discard_all(SHC.drw_empty_sphere);
|
||||
if (SHC.drw_empty_cone)
|
||||
Batch_discard_all(SHC.drw_empty_cone);
|
||||
if (SHC.drw_arrows)
|
||||
Batch_discard_all(SHC.drw_arrows);
|
||||
if (SHC.drw_axis_names)
|
||||
Batch_discard_all(SHC.drw_axis_names);
|
||||
if (SHC.drw_field_wind)
|
||||
Batch_discard_all(SHC.drw_field_wind);
|
||||
if (SHC.drw_field_force)
|
||||
Batch_discard_all(SHC.drw_field_force);
|
||||
if (SHC.drw_field_vortex)
|
||||
Batch_discard_all(SHC.drw_field_vortex);
|
||||
if (SHC.drw_field_tube_limit)
|
||||
Batch_discard_all(SHC.drw_field_tube_limit);
|
||||
if (SHC.drw_field_cone_limit)
|
||||
Batch_discard_all(SHC.drw_field_cone_limit);
|
||||
if (SHC.drw_lamp)
|
||||
Batch_discard_all(SHC.drw_lamp);
|
||||
if (SHC.drw_lamp_sunrays)
|
||||
Batch_discard_all(SHC.drw_lamp_sunrays);
|
||||
if (SHC.drw_lamp_area)
|
||||
Batch_discard_all(SHC.drw_lamp_area);
|
||||
if (SHC.drw_lamp_hemi)
|
||||
Batch_discard_all(SHC.drw_lamp_hemi);
|
||||
if (SHC.drw_lamp_spot)
|
||||
Batch_discard_all(SHC.drw_lamp_spot);
|
||||
if (SHC.drw_lamp_spot_square)
|
||||
Batch_discard_all(SHC.drw_lamp_spot_square);
|
||||
if (SHC.drw_speaker)
|
||||
Batch_discard_all(SHC.drw_speaker);
|
||||
if (SHC.drw_bone_octahedral)
|
||||
Batch_discard_all(SHC.drw_bone_octahedral);
|
||||
if (SHC.drw_bone_octahedral_wire)
|
||||
Batch_discard_all(SHC.drw_bone_octahedral_wire);
|
||||
if (SHC.drw_bone_point)
|
||||
Batch_discard_all(SHC.drw_bone_point);
|
||||
if (SHC.drw_bone_point_wire)
|
||||
Batch_discard_all(SHC.drw_bone_point_wire);
|
||||
if (SHC.drw_bone_arrows)
|
||||
Batch_discard_all(SHC.drw_bone_arrows);
|
||||
if (SHC.drw_camera)
|
||||
Batch_discard_all(SHC.drw_camera);
|
||||
if (SHC.drw_camera_tria)
|
||||
Batch_discard_all(SHC.drw_camera_tria);
|
||||
if (SHC.drw_camera_focus)
|
||||
Batch_discard_all(SHC.drw_camera_focus);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_single_vertice);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_fullscreen_quad);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_plain_axes);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_single_arrow);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_cube);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_circle);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_square);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_line);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_line_endpoints);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_empty_sphere);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_empty_cone);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_arrows);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_axis_names);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_field_wind);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_field_force);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_field_vortex);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_field_tube_limit);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_field_cone_limit);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_lamp);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_lamp_sunrays);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_lamp_area);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_lamp_hemi);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_lamp_spot);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_lamp_spot_square);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_speaker);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_bone_octahedral);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_bone_octahedral_wire);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_bone_point);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_bone_point_wire);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_bone_arrows);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_camera);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_camera_tria);
|
||||
BATCH_DISCARD_ALL_SAFE(SHC.drw_camera_focus);
|
||||
}
|
||||
|
||||
/* Helper functions */
|
||||
|
|
|
@ -555,9 +555,7 @@ void DRW_shgroup_free(struct DRWShadingGroup *shgroup)
|
|||
|
||||
MEM_freeN(shgroup->interface);
|
||||
|
||||
if (shgroup->batch_geom) {
|
||||
Batch_discard_all(shgroup->batch_geom);
|
||||
}
|
||||
BATCH_DISCARD_ALL_SAFE(shgroup->batch_geom);
|
||||
}
|
||||
|
||||
void DRW_shgroup_call_add(DRWShadingGroup *shgroup, Batch *geom, float (*obmat)[4])
|
||||
|
|
|
@ -230,8 +230,7 @@ static void EDIT_CURVE_draw_scene(void *vedata)
|
|||
* Mostly used for freeing shaders */
|
||||
static void EDIT_CURVE_engine_free(void)
|
||||
{
|
||||
// if (custom_shader)
|
||||
// DRW_shader_free(custom_shader);
|
||||
// DRW_SHADER_FREE_SAFE(custom_shader);
|
||||
}
|
||||
|
||||
/* Create collection settings here.
|
||||
|
|
|
@ -228,8 +228,7 @@ static void EDIT_LATTICE_draw_scene(void *vedata)
|
|||
* Mostly used for freeing shaders */
|
||||
static void EDIT_LATTICE_engine_free(void)
|
||||
{
|
||||
// if (custom_shader)
|
||||
// DRW_shader_free(custom_shader);
|
||||
// DRW_SHADER_FREE_SAFE(custom_shader);
|
||||
}
|
||||
|
||||
/* Create collection settings here.
|
||||
|
|
|
@ -499,30 +499,18 @@ void EDIT_MESH_collection_settings_create(IDProperty *properties)
|
|||
|
||||
static void EDIT_MESH_engine_free(void)
|
||||
{
|
||||
if (e_data.overlay_tri_sh)
|
||||
DRW_shader_free(e_data.overlay_tri_sh);
|
||||
if (e_data.overlay_tri_fast_sh)
|
||||
DRW_shader_free(e_data.overlay_tri_fast_sh);
|
||||
if (e_data.overlay_tri_vcol_sh)
|
||||
DRW_shader_free(e_data.overlay_tri_vcol_sh);
|
||||
if (e_data.overlay_tri_vcol_fast_sh)
|
||||
DRW_shader_free(e_data.overlay_tri_vcol_fast_sh);
|
||||
if (e_data.overlay_edge_sh)
|
||||
DRW_shader_free(e_data.overlay_edge_sh);
|
||||
if (e_data.overlay_edge_vcol_sh)
|
||||
DRW_shader_free(e_data.overlay_edge_vcol_sh);
|
||||
if (e_data.overlay_vert_sh)
|
||||
DRW_shader_free(e_data.overlay_vert_sh);
|
||||
if (e_data.overlay_facedot_sh)
|
||||
DRW_shader_free(e_data.overlay_facedot_sh);
|
||||
if (e_data.overlay_mix_sh)
|
||||
DRW_shader_free(e_data.overlay_mix_sh);
|
||||
if (e_data.overlay_facefill_sh)
|
||||
DRW_shader_free(e_data.overlay_facefill_sh);
|
||||
if (e_data.normals_face_sh)
|
||||
DRW_shader_free(e_data.normals_face_sh);
|
||||
if (e_data.normals_sh)
|
||||
DRW_shader_free(e_data.normals_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.overlay_tri_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.overlay_tri_fast_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.overlay_tri_vcol_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.overlay_tri_vcol_fast_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.overlay_edge_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.overlay_edge_vcol_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.overlay_vert_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.overlay_facedot_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.overlay_mix_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.overlay_facefill_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.normals_face_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.normals_sh);
|
||||
}
|
||||
|
||||
static const DrawEngineDataSize EDIT_MESH_data_size = DRW_VIEWPORT_DATA_SIZE(EDIT_MESH_Data);
|
||||
|
|
|
@ -228,8 +228,7 @@ static void EDIT_METABALL_draw_scene(void *vedata)
|
|||
* Mostly used for freeing shaders */
|
||||
static void EDIT_METABALL_engine_free(void)
|
||||
{
|
||||
// if (custom_shader)
|
||||
// DRW_shader_free(custom_shader);
|
||||
// DRW_SHADER_FREE_SAFE(custom_shader);
|
||||
}
|
||||
|
||||
/* Create collection settings here.
|
||||
|
|
|
@ -228,8 +228,7 @@ static void EDIT_SURFACE_draw_scene(void *vedata)
|
|||
* Mostly used for freeing shaders */
|
||||
static void EDIT_SURFACE_engine_free(void)
|
||||
{
|
||||
// if (custom_shader)
|
||||
// DRW_shader_free(custom_shader);
|
||||
// DRW_SHADER_FREE_SAFE(custom_shader);
|
||||
}
|
||||
|
||||
/* Create collection settings here.
|
||||
|
|
|
@ -228,8 +228,7 @@ static void EDIT_TEXT_draw_scene(void *vedata)
|
|||
* Mostly used for freeing shaders */
|
||||
static void EDIT_TEXT_engine_free(void)
|
||||
{
|
||||
// if (custom_shader)
|
||||
// DRW_shader_free(custom_shader);
|
||||
// DRW_SHADER_FREE_SAFE(custom_shader);
|
||||
}
|
||||
|
||||
/* Create collection settings here.
|
||||
|
|
|
@ -371,14 +371,10 @@ static void OBJECT_engine_init(void *vedata)
|
|||
|
||||
static void OBJECT_engine_free(void)
|
||||
{
|
||||
if (e_data.outline_resolve_sh)
|
||||
DRW_shader_free(e_data.outline_resolve_sh);
|
||||
if (e_data.outline_detect_sh)
|
||||
DRW_shader_free(e_data.outline_detect_sh);
|
||||
if (e_data.outline_fade_sh)
|
||||
DRW_shader_free(e_data.outline_fade_sh);
|
||||
if (e_data.grid_sh)
|
||||
DRW_shader_free(e_data.grid_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.outline_resolve_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.outline_detect_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.outline_fade_sh);
|
||||
DRW_SHADER_FREE_SAFE(e_data.grid_sh);
|
||||
}
|
||||
|
||||
static DRWShadingGroup *shgroup_outline(DRWPass *pass, const float col[4], struct GPUShader *sh)
|
||||
|
|
|
@ -228,8 +228,7 @@ static void PAINT_TEXTURE_draw_scene(void *vedata)
|
|||
* Mostly used for freeing shaders */
|
||||
static void PAINT_TEXTURE_engine_free(void)
|
||||
{
|
||||
// if (custom_shader)
|
||||
// DRW_shader_free(custom_shader);
|
||||
// DRW_SHADER_FREE_SAFE(custom_shader);
|
||||
}
|
||||
|
||||
/* Create collection settings here.
|
||||
|
|
|
@ -228,8 +228,7 @@ static void PAINT_VERTEX_draw_scene(void *vedata)
|
|||
* Mostly used for freeing shaders */
|
||||
static void PAINT_VERTEX_engine_free(void)
|
||||
{
|
||||
// if (custom_shader)
|
||||
// DRW_shader_free(custom_shader);
|
||||
// DRW_SHADER_FREE_SAFE(custom_shader);
|
||||
}
|
||||
|
||||
/* Create collection settings here.
|
||||
|
|
|
@ -225,8 +225,7 @@ static void PAINT_WEIGHT_draw_scene(void *vedata)
|
|||
* Mostly used for freeing shaders */
|
||||
static void PAINT_WEIGHT_engine_free(void)
|
||||
{
|
||||
// if (custom_shader)
|
||||
// DRW_shader_free(custom_shader);
|
||||
// DRW_SHADER_FREE_SAFE(custom_shader);
|
||||
}
|
||||
|
||||
/* Create collection settings here.
|
||||
|
|
|
@ -223,8 +223,7 @@ static void PARTICLE_draw_scene(void *vedata)
|
|||
* Mostly used for freeing shaders */
|
||||
static void PARTICLE_engine_free(void)
|
||||
{
|
||||
// if (custom_shader)
|
||||
// DRW_shader_free(custom_shader);
|
||||
// DRW_SHADER_FREE_SAFE(custom_shader);
|
||||
}
|
||||
|
||||
/* Create collection settings here.
|
||||
|
|
|
@ -223,8 +223,7 @@ static void POSE_draw_scene(void *vedata)
|
|||
* Mostly used for freeing shaders */
|
||||
static void POSE_engine_free(void)
|
||||
{
|
||||
// if (custom_shader)
|
||||
// DRW_shader_free(custom_shader);
|
||||
// DRW_SHADER_FREE_SAFE(custom_shader);
|
||||
}
|
||||
|
||||
/* Create collection settings here.
|
||||
|
|
|
@ -222,8 +222,7 @@ static void SCULPT_draw_scene(void *vedata)
|
|||
* Mostly used for freeing shaders */
|
||||
static void SCULPT_engine_free(void)
|
||||
{
|
||||
// if (custom_shader)
|
||||
// DRW_shader_free(custom_shader);
|
||||
// DRW_SHADER_FREE_SAFE(custom_shader);
|
||||
}
|
||||
|
||||
/* Create collection settings here.
|
||||
|
|
Loading…
Reference in New Issue