2.5/Sculpt:

* Hopefully fixed the tablet pressure in sculpt mode? Can't test because Blender isn't seeing my tablet.
This commit is contained in:
2009-08-17 16:08:09 +00:00
parent 21ca9a6049
commit 2a9e6b7237
2 changed files with 13 additions and 2 deletions

View File

@@ -87,8 +87,10 @@ void paint_brush_set(Paint *p, Brush *br)
}
if(!found)
if(!found) {
paint_brush_slot_add(p);
id_us_plus(&br->id);
}
/* Make sure the current slot is the new brush */
p->brushes[p->active_brush_index] = br;

View File

@@ -1272,6 +1272,7 @@ static void sculpt_update_cache_variants(Sculpt *sd, SculptSession *ss, PointerR
RNA_float_get_array(ptr, "location", cache->true_location);
cache->flip = RNA_boolean_get(ptr, "flip");
RNA_int_get_array(ptr, "mouse", cache->mouse);
cache->pressure = RNA_float_get(ptr, "pressure");
/* Truly temporary data that isn't stored in properties */
@@ -1467,17 +1468,25 @@ static void sculpt_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *e
SculptSession *ss = CTX_data_active_object(C)->sculpt;
StrokeCache *cache = ss->cache;
PointerRNA itemptr;
float cur_depth;
float cur_depth, pressure = 1;
float center[3];
cur_depth = read_cached_depth(&cache->vc, mouse[0], mouse[1]);
unproject(ss->cache->mats, center, mouse[0], mouse[1], cur_depth);
/* Tablet */
if(event->custom == EVT_DATA_TABLET) {
wmTabletData *wmtab= event->customdata;
if(wmtab->Active != EVT_TABLET_NONE)
pressure= wmtab->Pressure;
}
/* Add to stroke */
RNA_collection_add(op->ptr, "stroke", &itemptr);
RNA_float_set_array(&itemptr, "location", center);
RNA_int_set_array(&itemptr, "mouse", mouse);
RNA_boolean_set(&itemptr, "flip", event->shift);
RNA_float_set(&itemptr, "pressure", pressure);
sculpt_update_cache_variants(sd, ss, &itemptr);
sculpt_restore_mesh(sd, ss);