1
1

Compare commits

...

15 Commits

Author SHA1 Message Date
f1aa4d18d4 Blender 2.81a: Update submodule for addons 2019-12-04 12:32:27 +01:00
96f6520734 Fix crash exiting edit-mode with an active basis shape key
Exposed by T71865, while the bug remains this resolves the crash.
2019-12-04 11:16:37 +01:00
4a440ecb99 Fix T72071: Crash on snap to edge
Caused when the vertices index is dirty due to some mesh editing
operation like Extrude
2019-12-03 14:30:57 +01:00
bdfcee347e Fix T71864: Broken 'Select' > 'More' in face mode in UV Editor
Caused by rBeead6a604602.

Above commit didnt account for different element types being tagged (face
select mode tagged faces, others tagged loops) and always flushed from
loops.

Now restore to flush from faces if we are in face select mode.

Maniphest Tasks: T71864

Differential Revision: https://developer.blender.org/D6315
2019-12-03 14:01:14 +01:00
60e817693c Fix T69332: 'Reset to Default Value' on a custom string property crashes
Thx @campbellbarton for the heads up!

Maniphest Tasks: T69332

Differential Revision: https://developer.blender.org/D6284
2019-12-03 13:56:26 +01:00
73ce35d332 Fix segfault when polling MESH_OT_paint_mask_extract
`CTX_data_active_object(C)` returns `NULL` when there is no active object,
and this was not tested for in the code.
2019-12-03 12:34:17 +01:00
6334f97093 Fix T71558: Hair particles: Brush effect not occluded by emitter geometry 2019-12-03 10:42:41 +01:00
3a344a61e8 Fix T71612: Viewport rotate doesn't work
Error in version patching.
2019-12-03 10:42:37 +01:00
2ccc52a7f1 Fix T71741: Crash showing the object relations menu 2019-12-03 10:42:32 +01:00
893c29c15c Fix T71213: Mask or Mirror before Armature breaks weight paint.
This is a revert of a small fraction of commit rB5e332fd700
that introduced the issue according to bisect.

Doing a break here is wrong, because BKE_crazyspace_build_sculpt
assumes that processing stopped at the first deform modifier
without deformMatrices, and thus skips all modifiers until it
finds one like that. Thus this early loop exit makes the behavior
worse, as instead of skipping just Mask and Mirror, it skips all.
2019-12-03 10:42:28 +01:00
54bff9dc89 Fix T71147 Eevee stops rendering after selection attempt
This is caused by the fallback path used by OSX, which is reconfiguring
the same default VAO. But it seems to be an issue on certain drivers.
2019-12-03 10:42:19 +01:00
c14b164e8a Blender 2.81: Begin corrective 'a' release cycle 2019-12-03 10:41:42 +01:00
26bd5ebd42 Update rest of submodules to correct commit for Blender 2.81 release 2019-11-20 16:27:37 +02:00
e8b0a13c31 Update to correct locale submodule for 2.81 release 2019-11-20 16:22:26 +02:00
ab1b02e389 Blender 2.81: New splash and release cycle bump
Splash by Alex Trevino / aendom.com
Original concept by Anaïs Maamar

Change release cycle to release.
2019-11-20 15:06:14 +02:00
18 changed files with 55 additions and 23 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 KiB

After

Width:  |  Height:  |  Size: 863 KiB

View File

@@ -34,9 +34,9 @@
/** Used by packaging tools. */
/** Can be left blank, otherwise a,b,c... etc with no quotes. */
#define BLENDER_VERSION_CHAR
#define BLENDER_VERSION_CHAR a
/** alpha/beta/rc/release, docs use this. */
#define BLENDER_VERSION_CYCLE beta
#define BLENDER_VERSION_CYCLE release
/** Optionally set to 1,2,... for example to to get alpha1 or rc2. */
#define BLENDER_VERSION_CYCLE_NUMBER

View File

@@ -415,12 +415,12 @@ int BKE_sculpt_get_first_deform_matrices(struct Depsgraph *depsgraph,
mti->deformMatrices(md, &mectx, me_eval, deformedVerts, defmats, me_eval->totvert);
}
else {
/* More complex handling will continue in BKE_crazyspace_build_sculpt.
* Exiting the loop on a non-deform modifier causes issues - T71213. */
BLI_assert(crazyspace_modifier_supports_deform(md));
break;
}
}
else {
break;
}
}
for (; md; md = md->next) {

View File

@@ -3710,10 +3710,6 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
if (!MAIN_VERSION_ATLEAST(bmain, 281, 3)) {
if (U.view_rotate_sensitivity_turntable == 0) {
U.view_rotate_sensitivity_turntable = DEG2RADF(0.4f);
U.view_rotate_sensitivity_trackball = 1.0f;
}
for (bScreen *screen = bmain->screens.first; screen; screen = screen->id.next) {
for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) {
for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) {

View File

@@ -664,6 +664,10 @@ void BLO_version_defaults_userpref_blend(Main *bmain, UserDef *userdef)
* Include next version bump.
*/
{
if (userdef->view_rotate_sensitivity_turntable == 0.0f) {
userdef->view_rotate_sensitivity_turntable = DEG2RADF(0.4f);
userdef->view_rotate_sensitivity_trackball = 1.0f;
}
/* pass */
}

View File

@@ -879,7 +879,7 @@ void BM_mesh_bm_to_me(Main *bmain, BMesh *bm, Mesh *me, const struct BMeshToMesh
BM_ITER_MESH_INDEX (eve, &iter, bm, BM_VERTS_OF_MESH, i) {
const int keyi = BM_ELEM_CD_GET_INT(eve, cd_shape_keyindex_offset);
if (keyi != ORIGINDEX_NONE) {
if (keyi != ORIGINDEX_NONE && keyi < actkey->totelem) {
sub_v3_v3v3(ofs[i], mvert->co, fp[keyi]);
}
else {

View File

@@ -2668,6 +2668,9 @@ void DRW_draw_depth_object(ARegion *ar, GPUViewport *viewport, Object *object)
RegionView3D *rv3d = ar->regiondata;
DRW_opengl_context_enable();
GPU_matrix_projection_set(rv3d->winmat);
GPU_matrix_set(rv3d->viewmat);
GPU_matrix_mul(object->obmat);
/* Setup framebuffer */
DefaultFramebufferList *fbl = GPU_viewport_framebuffer_list_get(viewport);
@@ -2675,7 +2678,6 @@ void DRW_draw_depth_object(ARegion *ar, GPUViewport *viewport, Object *object)
GPU_framebuffer_bind(fbl->depth_only_fb);
GPU_framebuffer_clear_depth(fbl->depth_only_fb, 1.0f);
GPU_depth_test(true);
GPU_matrix_mul(object->obmat);
const float(*world_clip_planes)[4] = NULL;
if (rv3d->rflag & RV3D_CLIPPING) {

View File

@@ -59,7 +59,7 @@
static bool paint_mask_extract_poll(bContext *C)
{
Object *ob = CTX_data_active_object(C);
if (ob->mode == OB_MODE_SCULPT) {
if (ob != NULL && ob->mode == OB_MODE_SCULPT) {
if (ob->sculpt->bm) {
CTX_wm_operator_poll_msg_set(C, "The mask can not be extracted with dyntopo activated.");
return false;

View File

@@ -923,6 +923,7 @@ bool edit_modifier_poll_generic(bContext *C,
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "modifier", rna_type);
Object *ob = (ptr.owner_id) ? (Object *)ptr.owner_id : ED_object_active_context(C);
ModifierData *mod = ptr.data; /* May be NULL. */
if (!ob || ID_IS_LINKED(ob)) {
return 0;
@@ -935,8 +936,10 @@ bool edit_modifier_poll_generic(bContext *C,
}
if (ID_IS_OVERRIDE_LIBRARY(ob)) {
CTX_wm_operator_poll_msg_set(C, "Cannot edit modifiers coming from library override");
return (((ModifierData *)ptr.data)->flag & eModifierFlag_OverrideLibrary_Local) != 0;
if ((mod != NULL) && (mod->flag & eModifierFlag_OverrideLibrary_Local) == 0) {
CTX_wm_operator_poll_msg_set(C, "Cannot edit modifiers coming from library override");
return 0;
}
}
if (!is_editmode_allowed && CTX_data_edit_object(C) != NULL) {

View File

@@ -1312,7 +1312,7 @@ static short snap_mesh_polygon(SnapObjectContext *sctx,
l_iter = l_first = BM_FACE_FIRST_LOOP(f);
if (snapdata->snap_to_flag & SCE_SNAP_MODE_EDGE) {
elem = SCE_SNAP_MODE_EDGE;
BM_mesh_elem_index_ensure(em->bm, BM_EDGE);
BM_mesh_elem_index_ensure(em->bm, BM_VERT | BM_EDGE);
BM_mesh_elem_table_ensure(em->bm, BM_VERT | BM_EDGE);
do {
cb_snap_edge(&nearest2d,

View File

@@ -1478,6 +1478,8 @@ static int uv_select_more_less(bContext *C, const bool select)
Object **objects = BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(
view_layer, ((View3D *)NULL), &objects_len);
const bool is_uv_face_selectmode = (ts->uv_selectmode == UV_SELECT_FACE);
for (uint ob_index = 0; ob_index < objects_len; ob_index++) {
Object *obedit = objects[ob_index];
BMEditMesh *em = BKE_editmesh_from_object(obedit);
@@ -1499,7 +1501,7 @@ static int uv_select_more_less(bContext *C, const bool select)
continue;
}
if (ts->uv_selectmode == UV_SELECT_FACE) {
if (is_uv_face_selectmode) {
/* clear tags */
BM_mesh_elem_hflag_disable_all(em->bm, BM_FACE, BM_ELEM_TAG, false);
@@ -1562,8 +1564,14 @@ static int uv_select_more_less(bContext *C, const bool select)
}
if (changed) {
/* Select tagged loops. */
uv_select_flush_from_tag_loop(sima, scene, obedit, select);
if (is_uv_face_selectmode) {
/* Select tagged faces. */
uv_select_flush_from_tag_face(sima, scene, obedit, select);
}
else {
/* Select tagged loops. */
uv_select_flush_from_tag_loop(sima, scene, obedit, select);
}
DEG_id_tag_update(obedit->data, ID_RECALC_SELECT);
WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data);
}

View File

@@ -655,11 +655,24 @@ void GPU_batch_draw_advanced(GPUBatch *batch, int v_first, int v_count, int i_fi
// BLI_assert(v_first + v_count <=
// (batch->elem ? batch->elem->index_len : batch->verts[0]->vertex_len));
#ifdef __APPLE__
GLuint vao = 0;
#endif
if (!GPU_arb_base_instance_is_supported()) {
if (i_first > 0) {
#ifdef __APPLE__
/**
* There seems to be a nasty bug when drawing using the same VAO reconfiguring. (see T71147)
* We just use a throwaway VAO for that. Note that this is likely to degrade performance.
**/
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
#else
/* If using offset drawing with instancing, we must
* use the default VAO and redo bindings. */
glBindVertexArray(GPU_vao_default());
#endif
batch_update_program_bindings(batch, i_first);
}
else {
@@ -698,6 +711,12 @@ void GPU_batch_draw_advanced(GPUBatch *batch, int v_first, int v_count, int i_fi
glEnable(GL_PRIMITIVE_RESTART);
#endif
}
#ifdef __APPLE__
if (vao != 0) {
glDeleteVertexArrays(1, &vao);
}
#endif
}
/* just draw some vertices and let shader place them where we want. */

View File

@@ -3604,7 +3604,7 @@ char *RNA_property_string_get_default_alloc(PointerRNA *ptr,
/* this is the length without \0 terminator */
int RNA_property_string_default_length(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
{
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
StringPropertyRNA *sprop = (StringPropertyRNA *)rna_ensure_property(prop);
BLI_assert(RNA_property_type(prop) == PROP_STRING);