Merge branch 'blender-v4.3-release'

This commit is contained in:
Germano Cavalcante
2024-10-08 22:18:52 -03:00
6 changed files with 38 additions and 4 deletions

View File

@@ -36,7 +36,11 @@ ExternalProject_Add(external_tbb
${PATCH_CMD} -p 1 -d
${BUILD_DIR}/tbb/src/external_tbb <
${PATCH_DIR}/tbb.diff
${PATCH_DIR}/tbb.diff &&
${PATCH_CMD} -p 1 -d
${BUILD_DIR}/tbb/src/external_tbb <
${PATCH_DIR}/tbb_1478.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/tbb ${DEFAULT_CMAKE_FLAGS} ${TBB_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/tbb

View File

@@ -0,0 +1,19 @@
diff -Naur orig/src/tbbmalloc/proxy.cpp external_tbb/src/tbbmalloc/proxy.cpp
--- orig/src/tbbmalloc/proxy.cpp 2024-10-08 14:43:58 -0600
+++ external_tbb/src/tbbmalloc/proxy.cpp 2024-10-08 14:48:26 -0600
@@ -452,14 +452,12 @@
const char* known_bytecodes[] = {
#if _WIN64
// "========================================================" - 56 symbols
+ "E9********CCCC", // multiple - jmp(0xE9) with address followed by empty space (0xCC - INT 3)
"4883EC284885C974", // release free()
"4883EC284885C975", // release _msize()
"4885C974375348", // release free() 8.0.50727.42, 10.0
- "E907000000CCCC", // release _aligned_msize(), _aligned_free() ucrtbase.dll
"C7442410000000008B", // release free() ucrtbase.dll 10.0.14393.33
- "E90B000000CCCC", // release _msize() ucrtbase.dll 10.0.14393.33
"48895C24085748", // release _aligned_msize() ucrtbase.dll 10.0.14393.33
- "E903000000CCCC", // release _aligned_msize() ucrtbase.dll 10.0.16299.522
"48894C24084883EC28BA", // debug prologue
"4C894424184889542410", // debug _aligned_msize() 10.0
"48894C24084883EC2848", // debug _aligned_free 10.0

View File

@@ -53,6 +53,8 @@ struct SnapObjectParams {
eSnapTargetOP snap_target_select;
/** Geometry for snapping in edit mode. */
eSnapEditType edit_mode_type;
/** Grid unit size. "0.0" is automatic. */
float grid_size;
/** Break nearest face snapping into steps to improve transformations across U-shaped targets. */
short face_nearest_steps;
/** Snap to the closest element, use when using more than one snap type. */

View File

@@ -1289,7 +1289,10 @@ int transformEvent(TransInfo *t, wmOperator *op, const wmEvent *event)
}
else if (event->prev_val == KM_PRESS) {
t->modifiers |= MOD_PRECISION;
t->mouse.precision = true;
/* Mouse position during Snap to Grid is not affected by precision. */
if (!(validSnap(t) && t->tsnap.target_type == SCE_SNAP_TO_GRID)) {
t->mouse.precision = true;
}
t->redraw |= TREDRAW_HARD;
}

View File

@@ -1570,6 +1570,7 @@ static eSnapMode snapObjectsTransform(
{
SnapObjectParams snap_object_params{};
snap_object_params.snap_target_select = t->tsnap.target_operation;
snap_object_params.grid_size = (t->modifiers & MOD_PRECISION) ? t->snap[1] : t->snap[0];
snap_object_params.edit_mode_type = (t->flag & T_EDIT) != 0 ? SNAP_GEOM_EDIT : SNAP_GEOM_FINAL;
snap_object_params.use_occlusion_test = true;
snap_object_params.use_backface_culling = (t->tsnap.flag & SCE_SNAP_BACKFACE_CULLING) != 0;

View File

@@ -1130,10 +1130,15 @@ static bool snap_object_context_runtime_init(SnapObjectContext *sctx,
if (sctx->runtime.snap_to_flag & SCE_SNAP_TO_GRID) {
sctx->grid.use_init_co = init_co != nullptr;
if (params->grid_size) {
sctx->grid.size = params->grid_size;
}
if (!compare_m4m4(sctx->grid.persmat.ptr(), rv3d->persmat, FLT_EPSILON)) {
sctx->grid.persmat = float4x4(rv3d->persmat);
sctx->grid.size = ED_view3d_grid_view_scale(
sctx->scene, sctx->runtime.v3d, region, nullptr);
if (params->grid_size == 0.0f) {
sctx->grid.size = ED_view3d_grid_view_scale(
sctx->scene, sctx->runtime.v3d, region, nullptr);
}
if (!sctx->grid.use_init_co) {
memset(sctx->grid.planes, 0, sizeof(sctx->grid.planes));