remove the pointer from BLI_bitmap's typedef,
hides that an arg passed is really an array which may be modified by other functions.
This commit is contained in:
@@ -223,7 +223,7 @@ typedef struct PBVHVertexIter {
|
|||||||
struct CCGElem **grids;
|
struct CCGElem **grids;
|
||||||
struct CCGElem *grid;
|
struct CCGElem *grid;
|
||||||
struct CCGKey *key;
|
struct CCGKey *key;
|
||||||
BLI_bitmap *grid_hidden, gh;
|
BLI_bitmap **grid_hidden, *gh;
|
||||||
int *grid_indices;
|
int *grid_indices;
|
||||||
int totgrid;
|
int totgrid;
|
||||||
int gridsize;
|
int gridsize;
|
||||||
|
|||||||
@@ -2190,7 +2190,7 @@ void BKE_editmesh_statvis_calc(BMEditMesh *em, DerivedMesh *dm,
|
|||||||
struct CageUserData {
|
struct CageUserData {
|
||||||
int totvert;
|
int totvert;
|
||||||
float (*cos_cage)[3];
|
float (*cos_cage)[3];
|
||||||
BLI_bitmap visit_bitmap;
|
BLI_bitmap *visit_bitmap;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void cage_mapped_verts_callback(void *userData, int index, const float co[3],
|
static void cage_mapped_verts_callback(void *userData, int index, const float co[3],
|
||||||
@@ -2207,7 +2207,7 @@ static void cage_mapped_verts_callback(void *userData, int index, const float co
|
|||||||
float (*BKE_editmesh_vertexCos_get(BMEditMesh *em, Scene *scene, int *r_numVerts))[3]
|
float (*BKE_editmesh_vertexCos_get(BMEditMesh *em, Scene *scene, int *r_numVerts))[3]
|
||||||
{
|
{
|
||||||
DerivedMesh *cage, *final;
|
DerivedMesh *cage, *final;
|
||||||
BLI_bitmap visit_bitmap;
|
BLI_bitmap *visit_bitmap;
|
||||||
struct CageUserData data;
|
struct CageUserData data;
|
||||||
float (*cos_cage)[3];
|
float (*cos_cage)[3];
|
||||||
|
|
||||||
|
|||||||
@@ -105,15 +105,15 @@ void multires_customdata_delete(Mesh *me)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Grid hiding **/
|
/** Grid hiding **/
|
||||||
static BLI_bitmap multires_mdisps_upsample_hidden(BLI_bitmap lo_hidden,
|
static BLI_bitmap *multires_mdisps_upsample_hidden(BLI_bitmap *lo_hidden,
|
||||||
int lo_level,
|
int lo_level,
|
||||||
int hi_level,
|
int hi_level,
|
||||||
|
|
||||||
/* assumed to be at hi_level (or
|
/* assumed to be at hi_level (or
|
||||||
* null) */
|
* null) */
|
||||||
BLI_bitmap prev_hidden)
|
BLI_bitmap *prev_hidden)
|
||||||
{
|
{
|
||||||
BLI_bitmap subd;
|
BLI_bitmap *subd;
|
||||||
int hi_gridsize = ccg_gridsize(hi_level);
|
int hi_gridsize = ccg_gridsize(hi_level);
|
||||||
int lo_gridsize = ccg_gridsize(lo_level);
|
int lo_gridsize = ccg_gridsize(lo_level);
|
||||||
int yh, xh, xl, yl, xo, yo, hi_ndx;
|
int yh, xh, xl, yl, xo, yo, hi_ndx;
|
||||||
@@ -168,11 +168,11 @@ static BLI_bitmap multires_mdisps_upsample_hidden(BLI_bitmap lo_hidden,
|
|||||||
return subd;
|
return subd;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BLI_bitmap multires_mdisps_downsample_hidden(BLI_bitmap old_hidden,
|
static BLI_bitmap *multires_mdisps_downsample_hidden(BLI_bitmap *old_hidden,
|
||||||
int old_level,
|
int old_level,
|
||||||
int new_level)
|
int new_level)
|
||||||
{
|
{
|
||||||
BLI_bitmap new_hidden;
|
BLI_bitmap *new_hidden;
|
||||||
int new_gridsize = ccg_gridsize(new_level);
|
int new_gridsize = ccg_gridsize(new_level);
|
||||||
int old_gridsize = ccg_gridsize(old_level);
|
int old_gridsize = ccg_gridsize(old_level);
|
||||||
int x, y, factor, old_value;
|
int x, y, factor, old_value;
|
||||||
@@ -200,7 +200,7 @@ static void multires_output_hidden_to_ccgdm(CCGDerivedMesh *ccgdm,
|
|||||||
Mesh *me, int level)
|
Mesh *me, int level)
|
||||||
{
|
{
|
||||||
const MDisps *mdisps = CustomData_get_layer(&me->ldata, CD_MDISPS);
|
const MDisps *mdisps = CustomData_get_layer(&me->ldata, CD_MDISPS);
|
||||||
BLI_bitmap *grid_hidden = ccgdm->gridHidden;
|
BLI_bitmap **grid_hidden = ccgdm->gridHidden;
|
||||||
int *gridOffset;
|
int *gridOffset;
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
@@ -210,7 +210,7 @@ static void multires_output_hidden_to_ccgdm(CCGDerivedMesh *ccgdm,
|
|||||||
for (j = 0; j < me->mpoly[i].totloop; j++) {
|
for (j = 0; j < me->mpoly[i].totloop; j++) {
|
||||||
int g = gridOffset[i] + j;
|
int g = gridOffset[i] + j;
|
||||||
const MDisps *md = &mdisps[g];
|
const MDisps *md = &mdisps[g];
|
||||||
BLI_bitmap gh = md->hidden;
|
BLI_bitmap *gh = md->hidden;
|
||||||
|
|
||||||
if (gh) {
|
if (gh) {
|
||||||
grid_hidden[g] =
|
grid_hidden[g] =
|
||||||
@@ -224,7 +224,7 @@ static void multires_output_hidden_to_ccgdm(CCGDerivedMesh *ccgdm,
|
|||||||
* the current level of md.hidden) */
|
* the current level of md.hidden) */
|
||||||
static void multires_mdisps_subdivide_hidden(MDisps *md, int new_level)
|
static void multires_mdisps_subdivide_hidden(MDisps *md, int new_level)
|
||||||
{
|
{
|
||||||
BLI_bitmap subd;
|
BLI_bitmap *subd;
|
||||||
|
|
||||||
BLI_assert(md->hidden);
|
BLI_assert(md->hidden);
|
||||||
|
|
||||||
@@ -647,7 +647,7 @@ static void multires_del_higher(MultiresModifierData *mmd, Object *ob, int lvl)
|
|||||||
|
|
||||||
multires_copy_grid(ndisps, hdisps, nsize, hsize);
|
multires_copy_grid(ndisps, hdisps, nsize, hsize);
|
||||||
if (mdisp->hidden) {
|
if (mdisp->hidden) {
|
||||||
BLI_bitmap gh =
|
BLI_bitmap *gh =
|
||||||
multires_mdisps_downsample_hidden(mdisp->hidden,
|
multires_mdisps_downsample_hidden(mdisp->hidden,
|
||||||
mdisp->level,
|
mdisp->level,
|
||||||
lvl);
|
lvl);
|
||||||
@@ -1251,7 +1251,7 @@ void multires_modifier_update_mdisps(struct DerivedMesh *dm)
|
|||||||
void multires_modifier_update_hidden(DerivedMesh *dm)
|
void multires_modifier_update_hidden(DerivedMesh *dm)
|
||||||
{
|
{
|
||||||
CCGDerivedMesh *ccgdm = (CCGDerivedMesh *)dm;
|
CCGDerivedMesh *ccgdm = (CCGDerivedMesh *)dm;
|
||||||
BLI_bitmap *grid_hidden = ccgdm->gridHidden;
|
BLI_bitmap **grid_hidden = ccgdm->gridHidden;
|
||||||
Mesh *me = ccgdm->multires.ob->data;
|
Mesh *me = ccgdm->multires.ob->data;
|
||||||
MDisps *mdisps = CustomData_get_layer(&me->ldata, CD_MDISPS);
|
MDisps *mdisps = CustomData_get_layer(&me->ldata, CD_MDISPS);
|
||||||
int totlvl = ccgdm->multires.totlvl;
|
int totlvl = ccgdm->multires.totlvl;
|
||||||
@@ -1262,7 +1262,7 @@ void multires_modifier_update_hidden(DerivedMesh *dm)
|
|||||||
|
|
||||||
for (i = 0; i < me->totloop; i++) {
|
for (i = 0; i < me->totloop; i++) {
|
||||||
MDisps *md = &mdisps[i];
|
MDisps *md = &mdisps[i];
|
||||||
BLI_bitmap gh = grid_hidden[i];
|
BLI_bitmap *gh = grid_hidden[i];
|
||||||
|
|
||||||
if (!gh && md->hidden) {
|
if (!gh && md->hidden) {
|
||||||
MEM_freeN(md->hidden);
|
MEM_freeN(md->hidden);
|
||||||
|
|||||||
@@ -538,7 +538,7 @@ void BKE_pbvh_build_mesh(PBVH *bvh, MFace *faces, MVert *verts, int totface, int
|
|||||||
|
|
||||||
/* Do a full rebuild with on Grids data structure */
|
/* Do a full rebuild with on Grids data structure */
|
||||||
void BKE_pbvh_build_grids(PBVH *bvh, CCGElem **grids, DMGridAdjacency *gridadj,
|
void BKE_pbvh_build_grids(PBVH *bvh, CCGElem **grids, DMGridAdjacency *gridadj,
|
||||||
int totgrid, CCGKey *key, void **gridfaces, DMFlagMat *flagmats, BLI_bitmap *grid_hidden)
|
int totgrid, CCGKey *key, void **gridfaces, DMFlagMat *flagmats, BLI_bitmap **grid_hidden)
|
||||||
{
|
{
|
||||||
BBC *prim_bbc = NULL;
|
BBC *prim_bbc = NULL;
|
||||||
BB cb;
|
BB cb;
|
||||||
@@ -1253,7 +1253,7 @@ void BKE_pbvh_bounding_box(const PBVH *bvh, float min[3], float max[3])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BLI_bitmap *BKE_pbvh_grid_hidden(const PBVH *bvh)
|
BLI_bitmap **BKE_pbvh_grid_hidden(const PBVH *bvh)
|
||||||
{
|
{
|
||||||
BLI_assert(bvh->type == PBVH_GRIDS);
|
BLI_assert(bvh->type == PBVH_GRIDS);
|
||||||
return bvh->grid_hidden;
|
return bvh->grid_hidden;
|
||||||
@@ -1469,7 +1469,7 @@ static int pbvh_grids_node_raycast(PBVH *bvh, PBVHNode *node,
|
|||||||
|
|
||||||
for (i = 0; i < totgrid; ++i) {
|
for (i = 0; i < totgrid; ++i) {
|
||||||
CCGElem *grid = bvh->grids[node->prim_indices[i]];
|
CCGElem *grid = bvh->grids[node->prim_indices[i]];
|
||||||
BLI_bitmap gh;
|
BLI_bitmap *gh;
|
||||||
|
|
||||||
if (!grid)
|
if (!grid)
|
||||||
continue;
|
continue;
|
||||||
@@ -1664,7 +1664,7 @@ void BKE_pbvh_draw(PBVH *bvh, float (*planes)[4], float (*face_nors)[3],
|
|||||||
}
|
}
|
||||||
|
|
||||||
void BKE_pbvh_grids_update(PBVH *bvh, CCGElem **grids, DMGridAdjacency *gridadj, void **gridfaces,
|
void BKE_pbvh_grids_update(PBVH *bvh, CCGElem **grids, DMGridAdjacency *gridadj, void **gridfaces,
|
||||||
DMFlagMat *flagmats, BLI_bitmap *grid_hidden)
|
DMFlagMat *flagmats, BLI_bitmap **grid_hidden)
|
||||||
{
|
{
|
||||||
int a;
|
int a;
|
||||||
|
|
||||||
|
|||||||
@@ -139,11 +139,11 @@ struct PBVH {
|
|||||||
void **gridfaces;
|
void **gridfaces;
|
||||||
const DMFlagMat *grid_flag_mats;
|
const DMFlagMat *grid_flag_mats;
|
||||||
int totgrid;
|
int totgrid;
|
||||||
BLI_bitmap *grid_hidden;
|
BLI_bitmap **grid_hidden;
|
||||||
|
|
||||||
/* Only used during BVH build and update,
|
/* Only used during BVH build and update,
|
||||||
* don't need to remain valid after */
|
* don't need to remain valid after */
|
||||||
BLI_bitmap vert_bitmap;
|
BLI_bitmap *vert_bitmap;
|
||||||
|
|
||||||
#ifdef PERFCNTRS
|
#ifdef PERFCNTRS
|
||||||
int perf_modified;
|
int perf_modified;
|
||||||
|
|||||||
@@ -2930,7 +2930,7 @@ static void ccgdm_create_grids(DerivedMesh *dm)
|
|||||||
gridFaces = MEM_mallocN(sizeof(CCGFace *) * numGrids, "ccgdm.gridFaces");
|
gridFaces = MEM_mallocN(sizeof(CCGFace *) * numGrids, "ccgdm.gridFaces");
|
||||||
gridFlagMats = MEM_mallocN(sizeof(DMFlagMat) * numGrids, "ccgdm.gridFlagMats");
|
gridFlagMats = MEM_mallocN(sizeof(DMFlagMat) * numGrids, "ccgdm.gridFlagMats");
|
||||||
|
|
||||||
ccgdm->gridHidden = MEM_callocN(sizeof(BLI_bitmap) * numGrids, "ccgdm.gridHidden");
|
ccgdm->gridHidden = MEM_callocN(sizeof(*ccgdm->gridHidden) * numGrids, "ccgdm.gridHidden");
|
||||||
|
|
||||||
for (gIndex = 0, index = 0; index < numFaces; index++) {
|
for (gIndex = 0, index = 0; index < numFaces; index++) {
|
||||||
CCGFace *f = ccgdm->faceMap[index].face;
|
CCGFace *f = ccgdm->faceMap[index].face;
|
||||||
@@ -3002,7 +3002,7 @@ static DMFlagMat *ccgDM_getGridFlagMats(DerivedMesh *dm)
|
|||||||
return ccgdm->gridFlagMats;
|
return ccgdm->gridFlagMats;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BLI_bitmap *ccgDM_getGridHidden(DerivedMesh *dm)
|
static BLI_bitmap **ccgDM_getGridHidden(DerivedMesh *dm)
|
||||||
{
|
{
|
||||||
CCGDerivedMesh *ccgdm = (CCGDerivedMesh *)dm;
|
CCGDerivedMesh *ccgdm = (CCGDerivedMesh *)dm;
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
#ifndef __BLI_BITMAP_H__
|
#ifndef __BLI_BITMAP_H__
|
||||||
#define __BLI_BITMAP_H__
|
#define __BLI_BITMAP_H__
|
||||||
|
|
||||||
typedef unsigned int *BLI_bitmap;
|
typedef unsigned int BLI_bitmap;
|
||||||
|
|
||||||
/* warning: the bitmap does not keep track of its own size or check
|
/* warning: the bitmap does not keep track of its own size or check
|
||||||
* for out-of-bounds access */
|
* for out-of-bounds access */
|
||||||
@@ -48,7 +48,7 @@ typedef unsigned int *BLI_bitmap;
|
|||||||
/* allocate memory for a bitmap with '_tot' bits; free
|
/* allocate memory for a bitmap with '_tot' bits; free
|
||||||
* with MEM_freeN() */
|
* with MEM_freeN() */
|
||||||
#define BLI_BITMAP_NEW(_tot, _alloc_string) \
|
#define BLI_BITMAP_NEW(_tot, _alloc_string) \
|
||||||
((BLI_bitmap)MEM_callocN(BLI_BITMAP_SIZE(_tot), \
|
((BLI_bitmap *)MEM_callocN(BLI_BITMAP_SIZE(_tot), \
|
||||||
_alloc_string))
|
_alloc_string))
|
||||||
|
|
||||||
/* get the value of a single bit at '_index' */
|
/* get the value of a single bit at '_index' */
|
||||||
|
|||||||
@@ -5174,7 +5174,7 @@ static int select_more_exec(bContext *C, wmOperator *UNUSED(op))
|
|||||||
/* may not be optimal always (example: end of NURBS sphere) */
|
/* may not be optimal always (example: end of NURBS sphere) */
|
||||||
if (obedit->type == OB_SURF) {
|
if (obedit->type == OB_SURF) {
|
||||||
for (nu = editnurb->first; nu; nu = nu->next) {
|
for (nu = editnurb->first; nu; nu = nu->next) {
|
||||||
BLI_bitmap selbpoints;
|
BLI_bitmap *selbpoints;
|
||||||
a = nu->pntsu * nu->pntsv;
|
a = nu->pntsu * nu->pntsv;
|
||||||
bp = nu->bp;
|
bp = nu->bp;
|
||||||
selbpoints = BLI_BITMAP_NEW(a, "selectlist");
|
selbpoints = BLI_BITMAP_NEW(a, "selectlist");
|
||||||
@@ -5260,7 +5260,7 @@ static int select_less_exec(bContext *C, wmOperator *UNUSED(op))
|
|||||||
|
|
||||||
if (obedit->type == OB_SURF) {
|
if (obedit->type == OB_SURF) {
|
||||||
for (nu = editnurb->first; nu; nu = nu->next) {
|
for (nu = editnurb->first; nu; nu = nu->next) {
|
||||||
BLI_bitmap selbpoints;
|
BLI_bitmap *selbpoints;
|
||||||
a = nu->pntsu * nu->pntsv;
|
a = nu->pntsu * nu->pntsv;
|
||||||
bp = nu->bp;
|
bp = nu->bp;
|
||||||
selbpoints = BLI_BITMAP_NEW(a, "selectlist");
|
selbpoints = BLI_BITMAP_NEW(a, "selectlist");
|
||||||
|
|||||||
@@ -198,8 +198,8 @@ static void select_linked_tfaces_with_seams(Mesh *me, const unsigned int index,
|
|||||||
bool do_it = true;
|
bool do_it = true;
|
||||||
bool mark = false;
|
bool mark = false;
|
||||||
|
|
||||||
BLI_bitmap edge_tag = BLI_BITMAP_NEW(me->totedge, __func__);
|
BLI_bitmap *edge_tag = BLI_BITMAP_NEW(me->totedge, __func__);
|
||||||
BLI_bitmap poly_tag = BLI_BITMAP_NEW(me->totpoly, __func__);
|
BLI_bitmap *poly_tag = BLI_BITMAP_NEW(me->totpoly, __func__);
|
||||||
|
|
||||||
if (index != (unsigned int)-1) {
|
if (index != (unsigned int)-1) {
|
||||||
/* only put face under cursor in array */
|
/* only put face under cursor in array */
|
||||||
|
|||||||
@@ -228,7 +228,7 @@ void LATTICE_OT_select_random(wmOperatorType *ot)
|
|||||||
|
|
||||||
/************************** Select More/Less Operator *************************/
|
/************************** Select More/Less Operator *************************/
|
||||||
|
|
||||||
static bool lattice_test_bitmap_uvw(Lattice *lt, BLI_bitmap selpoints, int u, int v, int w, const bool selected)
|
static bool lattice_test_bitmap_uvw(Lattice *lt, BLI_bitmap *selpoints, int u, int v, int w, const bool selected)
|
||||||
{
|
{
|
||||||
if ((u < 0 || u >= lt->pntsu) ||
|
if ((u < 0 || u >= lt->pntsu) ||
|
||||||
(v < 0 || v >= lt->pntsv) ||
|
(v < 0 || v >= lt->pntsv) ||
|
||||||
@@ -252,7 +252,7 @@ static int lattice_select_more_less(bContext *C, const bool select)
|
|||||||
BPoint *bp;
|
BPoint *bp;
|
||||||
const int tot = lt->pntsu * lt->pntsv * lt->pntsw;
|
const int tot = lt->pntsu * lt->pntsv * lt->pntsw;
|
||||||
int i, w, u, v;
|
int i, w, u, v;
|
||||||
BLI_bitmap selpoints;
|
BLI_bitmap *selpoints;
|
||||||
|
|
||||||
lt->actbp = LT_ACTBP_NONE;
|
lt->actbp = LT_ACTBP_NONE;
|
||||||
|
|
||||||
|
|||||||
@@ -1671,7 +1671,7 @@ void OBJECT_OT_skin_radii_equalize(wmOperatorType *ot)
|
|||||||
static void skin_armature_bone_create(Object *skin_ob,
|
static void skin_armature_bone_create(Object *skin_ob,
|
||||||
MVert *mvert, MEdge *medge,
|
MVert *mvert, MEdge *medge,
|
||||||
bArmature *arm,
|
bArmature *arm,
|
||||||
BLI_bitmap edges_visited,
|
BLI_bitmap *edges_visited,
|
||||||
const MeshElemMap *emap,
|
const MeshElemMap *emap,
|
||||||
EditBone *parent_bone,
|
EditBone *parent_bone,
|
||||||
int parent_v)
|
int parent_v)
|
||||||
@@ -1720,7 +1720,7 @@ static void skin_armature_bone_create(Object *skin_ob,
|
|||||||
|
|
||||||
static Object *modifier_skin_armature_create(Main *bmain, Scene *scene, Object *skin_ob)
|
static Object *modifier_skin_armature_create(Main *bmain, Scene *scene, Object *skin_ob)
|
||||||
{
|
{
|
||||||
BLI_bitmap edges_visited;
|
BLI_bitmap *edges_visited;
|
||||||
DerivedMesh *deform_dm;
|
DerivedMesh *deform_dm;
|
||||||
MVert *mvert;
|
MVert *mvert;
|
||||||
Mesh *me = skin_ob->data;
|
Mesh *me = skin_ob->data;
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ static void partialvis_update_grids(Object *ob,
|
|||||||
{
|
{
|
||||||
CCGElem **grids;
|
CCGElem **grids;
|
||||||
CCGKey key;
|
CCGKey key;
|
||||||
BLI_bitmap *grid_hidden;
|
BLI_bitmap **grid_hidden;
|
||||||
int any_visible = 0;
|
int any_visible = 0;
|
||||||
int *grid_indices, totgrid, any_changed, i;
|
int *grid_indices, totgrid, any_changed, i;
|
||||||
|
|
||||||
@@ -171,7 +171,7 @@ static void partialvis_update_grids(Object *ob,
|
|||||||
for (i = 0; i < totgrid; i++) {
|
for (i = 0; i < totgrid; i++) {
|
||||||
int any_hidden = 0;
|
int any_hidden = 0;
|
||||||
int g = grid_indices[i], x, y;
|
int g = grid_indices[i], x, y;
|
||||||
BLI_bitmap gh = grid_hidden[g];
|
BLI_bitmap *gh = grid_hidden[g];
|
||||||
|
|
||||||
if (!gh) {
|
if (!gh) {
|
||||||
switch (action) {
|
switch (action) {
|
||||||
|
|||||||
@@ -1529,7 +1529,7 @@ static void do_multires_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *no
|
|||||||
float *tmpgrid_mask, *tmprow_mask;
|
float *tmpgrid_mask, *tmprow_mask;
|
||||||
int v1, v2, v3, v4;
|
int v1, v2, v3, v4;
|
||||||
int thread_num;
|
int thread_num;
|
||||||
BLI_bitmap *grid_hidden;
|
BLI_bitmap **grid_hidden;
|
||||||
int *grid_indices, totgrid, gridsize, i, x, y;
|
int *grid_indices, totgrid, gridsize, i, x, y;
|
||||||
|
|
||||||
sculpt_brush_test_init(ss, &test);
|
sculpt_brush_test_init(ss, &test);
|
||||||
@@ -1554,7 +1554,7 @@ static void do_multires_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *no
|
|||||||
|
|
||||||
for (i = 0; i < totgrid; ++i) {
|
for (i = 0; i < totgrid; ++i) {
|
||||||
int gi = grid_indices[i];
|
int gi = grid_indices[i];
|
||||||
BLI_bitmap gh = grid_hidden[gi];
|
BLI_bitmap *gh = grid_hidden[gi];
|
||||||
data = griddata[gi];
|
data = griddata[gi];
|
||||||
adj = &gridadj[gi];
|
adj = &gridadj[gi];
|
||||||
|
|
||||||
|
|||||||
@@ -100,14 +100,14 @@ typedef struct SculptUndoNode {
|
|||||||
/* non-multires */
|
/* non-multires */
|
||||||
int maxvert; /* to verify if totvert it still the same */
|
int maxvert; /* to verify if totvert it still the same */
|
||||||
int *index; /* to restore into right location */
|
int *index; /* to restore into right location */
|
||||||
BLI_bitmap vert_hidden;
|
BLI_bitmap *vert_hidden;
|
||||||
|
|
||||||
/* multires */
|
/* multires */
|
||||||
int maxgrid; /* same for grid */
|
int maxgrid; /* same for grid */
|
||||||
int gridsize; /* same for grid */
|
int gridsize; /* same for grid */
|
||||||
int totgrid; /* to restore into right location */
|
int totgrid; /* to restore into right location */
|
||||||
int *grids; /* to restore into right location */
|
int *grids; /* to restore into right location */
|
||||||
BLI_bitmap *grid_hidden;
|
BLI_bitmap **grid_hidden;
|
||||||
|
|
||||||
/* bmesh */
|
/* bmesh */
|
||||||
struct BMLogEntry *bm_entry;
|
struct BMLogEntry *bm_entry;
|
||||||
|
|||||||
@@ -210,10 +210,10 @@ static int sculpt_undo_restore_hidden(bContext *C, DerivedMesh *dm,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (unode->maxgrid && dm->getGridData) {
|
else if (unode->maxgrid && dm->getGridData) {
|
||||||
BLI_bitmap *grid_hidden = dm->getGridHidden(dm);
|
BLI_bitmap **grid_hidden = dm->getGridHidden(dm);
|
||||||
|
|
||||||
for (i = 0; i < unode->totgrid; i++) {
|
for (i = 0; i < unode->totgrid; i++) {
|
||||||
SWAP(BLI_bitmap,
|
SWAP(BLI_bitmap *,
|
||||||
unode->grid_hidden[i],
|
unode->grid_hidden[i],
|
||||||
grid_hidden[unode->grids[i]]);
|
grid_hidden[unode->grids[i]]);
|
||||||
|
|
||||||
@@ -531,7 +531,7 @@ static void sculpt_undo_alloc_and_store_hidden(PBVH *pbvh,
|
|||||||
SculptUndoNode *unode)
|
SculptUndoNode *unode)
|
||||||
{
|
{
|
||||||
PBVHNode *node = unode->node;
|
PBVHNode *node = unode->node;
|
||||||
BLI_bitmap *grid_hidden;
|
BLI_bitmap **grid_hidden;
|
||||||
int i, *grid_indices, totgrid;
|
int i, *grid_indices, totgrid;
|
||||||
|
|
||||||
grid_hidden = BKE_pbvh_grid_hidden(pbvh);
|
grid_hidden = BKE_pbvh_grid_hidden(pbvh);
|
||||||
@@ -539,7 +539,7 @@ static void sculpt_undo_alloc_and_store_hidden(PBVH *pbvh,
|
|||||||
BKE_pbvh_node_get_grids(pbvh, node, &grid_indices, &totgrid,
|
BKE_pbvh_node_get_grids(pbvh, node, &grid_indices, &totgrid,
|
||||||
NULL, NULL, NULL, NULL);
|
NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
unode->grid_hidden = MEM_mapallocN(sizeof(BLI_bitmap) * totgrid,
|
unode->grid_hidden = MEM_mapallocN(sizeof(*unode->grid_hidden) * totgrid,
|
||||||
"unode->grid_hidden");
|
"unode->grid_hidden");
|
||||||
|
|
||||||
for (i = 0; i < totgrid; i++) {
|
for (i = 0; i < totgrid; i++) {
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
/* user data structures for derived mesh callbacks */
|
/* user data structures for derived mesh callbacks */
|
||||||
typedef struct drawMeshFaceSelect_userData {
|
typedef struct drawMeshFaceSelect_userData {
|
||||||
Mesh *me;
|
Mesh *me;
|
||||||
BLI_bitmap edge_flags; /* pairs of edge options (visible, select) */
|
BLI_bitmap *edge_flags; /* pairs of edge options (visible, select) */
|
||||||
} drawMeshFaceSelect_userData;
|
} drawMeshFaceSelect_userData;
|
||||||
|
|
||||||
typedef struct drawEMTFMapped_userData {
|
typedef struct drawEMTFMapped_userData {
|
||||||
@@ -100,9 +100,9 @@ typedef struct drawTFace_userData {
|
|||||||
BLI_INLINE int edge_vis_index(const int index) { return index * 2; }
|
BLI_INLINE int edge_vis_index(const int index) { return index * 2; }
|
||||||
BLI_INLINE int edge_sel_index(const int index) { return index * 2 + 1; }
|
BLI_INLINE int edge_sel_index(const int index) { return index * 2 + 1; }
|
||||||
|
|
||||||
static BLI_bitmap get_tface_mesh_marked_edge_info(Mesh *me)
|
static BLI_bitmap *get_tface_mesh_marked_edge_info(Mesh *me)
|
||||||
{
|
{
|
||||||
BLI_bitmap bitmap_edge_flags = BLI_BITMAP_NEW(me->totedge * 2, __func__);
|
BLI_bitmap *bitmap_edge_flags = BLI_BITMAP_NEW(me->totedge * 2, __func__);
|
||||||
MPoly *mp;
|
MPoly *mp;
|
||||||
MLoop *ml;
|
MLoop *ml;
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|||||||
@@ -1266,7 +1266,7 @@ struct GPU_Buffers {
|
|||||||
CCGKey gridkey;
|
CCGKey gridkey;
|
||||||
CCGElem **grids;
|
CCGElem **grids;
|
||||||
const DMFlagMat *grid_flag_mats;
|
const DMFlagMat *grid_flag_mats;
|
||||||
const BLI_bitmap *grid_hidden;
|
BLI_bitmap * const *grid_hidden;
|
||||||
int *grid_indices;
|
int *grid_indices;
|
||||||
int totgrid;
|
int totgrid;
|
||||||
int has_hidden;
|
int has_hidden;
|
||||||
@@ -1686,7 +1686,7 @@ void GPU_update_grid_buffers(GPU_Buffers *buffers, CCGElem **grids,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Returns the number of visible quads in the nodes' grids. */
|
/* Returns the number of visible quads in the nodes' grids. */
|
||||||
static int gpu_count_grid_quads(BLI_bitmap *grid_hidden,
|
static int gpu_count_grid_quads(BLI_bitmap **grid_hidden,
|
||||||
int *grid_indices, int totgrid,
|
int *grid_indices, int totgrid,
|
||||||
int gridsize)
|
int gridsize)
|
||||||
{
|
{
|
||||||
@@ -1697,7 +1697,7 @@ static int gpu_count_grid_quads(BLI_bitmap *grid_hidden,
|
|||||||
* visibility */
|
* visibility */
|
||||||
|
|
||||||
for (i = 0, totquad = 0; i < totgrid; i++) {
|
for (i = 0, totquad = 0; i < totgrid; i++) {
|
||||||
const BLI_bitmap gh = grid_hidden[grid_indices[i]];
|
const BLI_bitmap *gh = grid_hidden[grid_indices[i]];
|
||||||
|
|
||||||
if (gh) {
|
if (gh) {
|
||||||
/* grid hidden are present, have to check each element */
|
/* grid hidden are present, have to check each element */
|
||||||
@@ -1732,7 +1732,7 @@ static int gpu_count_grid_quads(BLI_bitmap *grid_hidden,
|
|||||||
GL_WRITE_ONLY_ARB); \
|
GL_WRITE_ONLY_ARB); \
|
||||||
if (quad_data) { \
|
if (quad_data) { \
|
||||||
for (i = 0; i < totgrid; ++i) { \
|
for (i = 0; i < totgrid; ++i) { \
|
||||||
BLI_bitmap gh = NULL; \
|
BLI_bitmap *gh = NULL; \
|
||||||
if (grid_hidden) \
|
if (grid_hidden) \
|
||||||
gh = grid_hidden[(grid_indices)[i]]; \
|
gh = grid_hidden[(grid_indices)[i]]; \
|
||||||
\
|
\
|
||||||
@@ -1770,7 +1770,7 @@ static GLuint gpu_get_grid_buffer(int gridsize, GLenum *index_type, unsigned *to
|
|||||||
static unsigned prev_totquad;
|
static unsigned prev_totquad;
|
||||||
|
|
||||||
/* used in the FILL_QUAD_BUFFER macro */
|
/* used in the FILL_QUAD_BUFFER macro */
|
||||||
const BLI_bitmap *grid_hidden = NULL;
|
BLI_bitmap * const *grid_hidden = NULL;
|
||||||
int *grid_indices = NULL;
|
int *grid_indices = NULL;
|
||||||
int totgrid = 1;
|
int totgrid = 1;
|
||||||
|
|
||||||
@@ -1815,7 +1815,7 @@ static GLuint gpu_get_grid_buffer(int gridsize, GLenum *index_type, unsigned *to
|
|||||||
}
|
}
|
||||||
|
|
||||||
GPU_Buffers *GPU_build_grid_buffers(int *grid_indices, int totgrid,
|
GPU_Buffers *GPU_build_grid_buffers(int *grid_indices, int totgrid,
|
||||||
BLI_bitmap *grid_hidden, int gridsize)
|
BLI_bitmap **grid_hidden, int gridsize)
|
||||||
{
|
{
|
||||||
GPU_Buffers *buffers;
|
GPU_Buffers *buffers;
|
||||||
int totquad;
|
int totquad;
|
||||||
@@ -2200,7 +2200,7 @@ static void gpu_draw_buffers_legacy_grids(GPU_Buffers *buffers)
|
|||||||
for (i = 0; i < buffers->totgrid; ++i) {
|
for (i = 0; i < buffers->totgrid; ++i) {
|
||||||
int g = buffers->grid_indices[i];
|
int g = buffers->grid_indices[i];
|
||||||
CCGElem *grid = buffers->grids[g];
|
CCGElem *grid = buffers->grids[g];
|
||||||
BLI_bitmap gh = buffers->grid_hidden[g];
|
BLI_bitmap *gh = buffers->grid_hidden[g];
|
||||||
|
|
||||||
/* TODO: could use strips with hiding as well */
|
/* TODO: could use strips with hiding as well */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user