Merge branch 'blender-v3.6-release'
This commit is contained in:
@@ -203,16 +203,13 @@ static void change_frame_seq_preview_begin(bContext *C, const wmEvent *event, Sp
|
||||
}
|
||||
}
|
||||
|
||||
static void change_frame_seq_preview_end(bContext *C, SpaceSeq *sseq)
|
||||
static void change_frame_seq_preview_end(SpaceSeq *sseq)
|
||||
{
|
||||
BLI_assert(sseq != NULL);
|
||||
UNUSED_VARS_NDEBUG(sseq);
|
||||
if (ED_sequencer_special_preview_get() != NULL) {
|
||||
ED_sequencer_special_preview_clear();
|
||||
}
|
||||
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
WM_event_add_notifier(C, NC_SCENE | ND_FRAME, scene);
|
||||
}
|
||||
|
||||
static bool use_sequencer_snapping(bContext *C)
|
||||
@@ -260,6 +257,36 @@ static int change_frame_invoke(bContext *C, wmOperator *op, const wmEvent *event
|
||||
return OPERATOR_RUNNING_MODAL;
|
||||
}
|
||||
|
||||
static bool need_extra_redraw_after_scrubbing_ends(bContext *C)
|
||||
{
|
||||
if (CTX_wm_space_seq(C)) {
|
||||
/* During scrubbing in the sequencer, a preview of the final video might be drawn. After
|
||||
* scrubbing, the actual result should be shown again. */
|
||||
return true;
|
||||
}
|
||||
wmWindowManager *wm = CTX_wm_manager(C);
|
||||
Object *object = CTX_data_active_object(C);
|
||||
if (object && object->type == OB_GPENCIL_LEGACY) {
|
||||
LISTBASE_FOREACH (wmWindow *, win, &wm->windows) {
|
||||
bScreen *screen = WM_window_get_active_screen(win);
|
||||
LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) {
|
||||
SpaceLink *sl = (SpaceLink *)area->spacedata.first;
|
||||
if (sl->spacetype == SPACE_VIEW3D) {
|
||||
View3D *v3d = (View3D *)sl;
|
||||
if ((v3d->flag2 & V3D_HIDE_OVERLAYS) == 0) {
|
||||
if (v3d->gp_flag & V3D_GP_SHOW_ONION_SKIN) {
|
||||
/* Grease pencil onion skin is not drawn during scrubbing. Redraw is necessary after
|
||||
* scrubbing ends to show onion skin again. */
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static void change_frame_cancel(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
bScreen *screen = CTX_wm_screen(C);
|
||||
@@ -267,7 +294,12 @@ static void change_frame_cancel(bContext *C, wmOperator *UNUSED(op))
|
||||
|
||||
SpaceSeq *sseq = CTX_wm_space_seq(C);
|
||||
if (sseq != NULL) {
|
||||
change_frame_seq_preview_end(C, sseq);
|
||||
change_frame_seq_preview_end(sseq);
|
||||
}
|
||||
|
||||
if (need_extra_redraw_after_scrubbing_ends(C)) {
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
WM_event_add_notifier(C, NC_SCENE | ND_FRAME, scene);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,7 +355,11 @@ static int change_frame_modal(bContext *C, wmOperator *op, const wmEvent *event)
|
||||
|
||||
SpaceSeq *sseq = CTX_wm_space_seq(C);
|
||||
if (sseq != NULL) {
|
||||
change_frame_seq_preview_end(C, sseq);
|
||||
change_frame_seq_preview_end(sseq);
|
||||
}
|
||||
if (need_extra_redraw_after_scrubbing_ends(C)) {
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
WM_event_add_notifier(C, NC_SCENE | ND_FRAME, scene);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -397,8 +397,8 @@ static void generator_panel_draw(const bContext *C, Panel *panel)
|
||||
uiLayoutColumn(split, false);
|
||||
uiLayout *title_col = uiLayoutColumn(split, false);
|
||||
uiLayout *title_row = uiLayoutRow(title_col, true);
|
||||
uiItemL(title_row, IFACE_("A"), ICON_NONE);
|
||||
uiItemL(title_row, IFACE_("B"), ICON_NONE);
|
||||
uiItemL(title_row, CTX_IFACE_(BLT_I18NCONTEXT_ID_ACTION, "A"), ICON_NONE);
|
||||
uiItemL(title_row, CTX_IFACE_(BLT_I18NCONTEXT_ID_ACTION, "B"), ICON_NONE);
|
||||
}
|
||||
|
||||
uiLayout *first_row = uiLayoutRow(col, true);
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
#include "BLI_string.h"
|
||||
#include "BLI_string_utf8.h"
|
||||
|
||||
#include "BLT_translation.h"
|
||||
|
||||
#include "UI_interface.h"
|
||||
#include "UI_resources.h"
|
||||
|
||||
@@ -23,20 +25,22 @@ NODE_STORAGE_FUNCS(NodeFunctionCompare)
|
||||
static void node_declare(NodeDeclarationBuilder &b)
|
||||
{
|
||||
b.is_function_node();
|
||||
b.add_input<decl::Float>("A").min(-10000.0f).max(10000.0f);
|
||||
b.add_input<decl::Float>("B").min(-10000.0f).max(10000.0f);
|
||||
b.add_input<decl::Float>("A").min(-10000.0f).max(10000.0f).translation_context(
|
||||
BLT_I18NCONTEXT_ID_NODETREE);
|
||||
b.add_input<decl::Float>("B").min(-10000.0f).max(10000.0f).translation_context(
|
||||
BLT_I18NCONTEXT_ID_NODETREE);
|
||||
|
||||
b.add_input<decl::Int>("A", "A_INT");
|
||||
b.add_input<decl::Int>("B", "B_INT");
|
||||
b.add_input<decl::Int>("A", "A_INT").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
b.add_input<decl::Int>("B", "B_INT").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
|
||||
b.add_input<decl::Vector>("A", "A_VEC3");
|
||||
b.add_input<decl::Vector>("B", "B_VEC3");
|
||||
b.add_input<decl::Vector>("A", "A_VEC3").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
b.add_input<decl::Vector>("B", "B_VEC3").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
|
||||
b.add_input<decl::Color>("A", "A_COL");
|
||||
b.add_input<decl::Color>("B", "B_COL");
|
||||
b.add_input<decl::Color>("A", "A_COL").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
b.add_input<decl::Color>("B", "B_COL").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
|
||||
b.add_input<decl::String>("A", "A_STR");
|
||||
b.add_input<decl::String>("B", "B_STR");
|
||||
b.add_input<decl::String>("A", "A_STR").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
b.add_input<decl::String>("B", "B_STR").translation_context(BLT_I18NCONTEXT_ID_NODETREE);
|
||||
|
||||
b.add_input<decl::Float>("C").default_value(0.9f);
|
||||
b.add_input<decl::Float>("Angle").default_value(0.0872665f).subtype(PROP_ANGLE);
|
||||
|
||||
Reference in New Issue
Block a user