diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-01-13 04:05:49 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-01-13 04:05:49 +0300 |
commit | cdc31c3e6e953b8e10c757db113b7a60f701e1dd (patch) | |
tree | 6bb85293faf6b7ab7ad7e8d169106584590fbc94 /source/blender | |
parent | 49d51a1e6246f00233abf54a8b24b5d829848e44 (diff) | |
parent | 40dbf2fc0000f2905d436fc28b93a9b97431f72d (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/intern/blender.c | 4 | ||||
-rw-r--r-- | source/blender/editors/interface/resources.c | 2 | ||||
-rw-r--r-- | source/blender/editors/screen/area.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw.c | 4 | ||||
-rw-r--r-- | source/blender/imbuf/intern/openexr/openexr_api.cpp | 50 | ||||
-rw-r--r-- | source/blender/imbuf/intern/openexr/openexr_multi.h | 2 | ||||
-rw-r--r-- | source/blender/imbuf/intern/openexr/openexr_stub.cpp | 2 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_userdef_types.h | 15 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_userdef.c | 17 | ||||
-rw-r--r-- | source/blender/python/bmesh/bmesh_py_utils.c | 2 | ||||
-rw-r--r-- | source/blender/render/intern/source/render_result.c | 6 |
11 files changed, 65 insertions, 41 deletions
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index d03be79baad..27d38fcfb37 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -285,8 +285,10 @@ void BKE_blender_userdef_app_template_data_swap(UserDef *userdef_a, UserDef *use DATA_SWAP(keyconfigstr); DATA_SWAP(manipulator_flag); + DATA_SWAP(app_flag); - FLAG_SWAP(uiflag, int, USER_LOCK_UI_LAYOUT); + /* We could add others. */ + FLAG_SWAP(uiflag, int, USER_QUIT_PROMPT); #undef SWAP_TYPELESS #undef DATA_SWAP diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c index 788c5fb3913..2eae452debb 100644 --- a/source/blender/editors/interface/resources.c +++ b/source/blender/editors/interface/resources.c @@ -2923,7 +2923,7 @@ void init_userdef_do_versions(void) USER_FLAG_DEPRECATED_6 | USER_FLAG_DEPRECATED_7 | USER_FLAG_DEPRECATED_9 | USER_FLAG_DEPRECATED_10); U.uiflag &= ~( - USER_LOCK_UI_LAYOUT); + USER_UIFLAG_DEPRECATED_7); U.transopts &= ~( USER_TR_DEPRECATED_2 | USER_TR_DEPRECATED_3 | USER_TR_DEPRECATED_4 | USER_TR_DEPRECATED_6 | USER_TR_DEPRECATED_7); diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index e097cd34eac..274dbcc73cb 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -769,7 +769,7 @@ static void area_azone_initialize(wmWindow *win, const bScreen *screen, ScrArea return; } - if (U.uiflag & USER_LOCK_UI_LAYOUT) { + if (U.app_flag & USER_APP_LOCK_UI_LAYOUT) { return; } diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index f07f988d930..b1140113601 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -1318,6 +1318,10 @@ float ED_view3d_grid_scale(Scene *scene, View3D *v3d, const char **grid_unit) static bool is_cursor_visible(Scene *scene, ViewLayer *view_layer) { + if (U.app_flag & USER_APP_VIEW3D_HIDE_CURSOR) { + return false; + } + Object *ob = OBACT(view_layer); /* don't draw cursor in paint modes, but with a few exceptions */ diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp index ca534e3e2a8..2fa830dc42a 100644 --- a/source/blender/imbuf/intern/openexr/openexr_api.cpp +++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp @@ -1059,11 +1059,11 @@ void IMB_exr_write_channels(void *handle) /* temporary function, used for FSA and Save Buffers */ /* called once per tile * view */ -void IMB_exrtile_write_channels(void *handle, int partx, int party, int level, const char *viewname) +void IMB_exrtile_write_channels(void *handle, int partx, int party, int level, const char *viewname, bool empty) { + /* Can write empty channels for incomplete renders. */ ExrHandle *data = (ExrHandle *)handle; FrameBuffer frameBuffer; - ExrChannel *echan; std::string view(viewname); const int view_id = imb_exr_get_multiView_id(*data->multiView, view); @@ -1071,28 +1071,32 @@ void IMB_exrtile_write_channels(void *handle, int partx, int party, int level, c exr_printf("%s %-6s %-22s \"%s\"\n", "p", "view", "name", "internal_name"); exr_printf("---------------------------------------------------------------------\n"); - for (echan = (ExrChannel *)data->channels.first; echan; echan = echan->next) { + if (!empty) { + ExrChannel *echan; + + for (echan = (ExrChannel *)data->channels.first; echan; echan = echan->next) { + + /* eventually we can make the parts' channels to include + only the current view TODO */ + if (strcmp(viewname, echan->m->view.c_str()) != 0) + continue; - /* eventually we can make the parts' channels to include - only the current view TODO */ - if (strcmp(viewname, echan->m->view.c_str()) != 0) - continue; - - exr_printf("%d %-6s %-22s \"%s\"\n", - echan->m->part_number, - echan->m->view.c_str(), - echan->m->name.c_str(), - echan->m->internal_name.c_str() - ); - - float *rect = echan->rect - echan->xstride * partx - echan->ystride * party; - frameBuffer.insert(echan->m->internal_name, - Slice(Imf::FLOAT, - (char *)rect, - echan->xstride * sizeof(float), - echan->ystride * sizeof(float) - ) - ); + exr_printf("%d %-6s %-22s \"%s\"\n", + echan->m->part_number, + echan->m->view.c_str(), + echan->m->name.c_str(), + echan->m->internal_name.c_str() + ); + + float *rect = echan->rect - echan->xstride * partx - echan->ystride * party; + frameBuffer.insert(echan->m->internal_name, + Slice(Imf::FLOAT, + (char *)rect, + echan->xstride * sizeof(float), + echan->ystride * sizeof(float) + ) + ); + } } TiledOutputPart out (*data->mpofile, view_id); diff --git a/source/blender/imbuf/intern/openexr/openexr_multi.h b/source/blender/imbuf/intern/openexr/openexr_multi.h index d9517d13cc4..d9338c888a7 100644 --- a/source/blender/imbuf/intern/openexr/openexr_multi.h +++ b/source/blender/imbuf/intern/openexr/openexr_multi.h @@ -67,7 +67,7 @@ float *IMB_exr_channel_rect(void *handle, const char *layname, const char *pass void IMB_exr_read_channels(void *handle); void IMB_exr_write_channels(void *handle); -void IMB_exrtile_write_channels(void *handle, int partx, int party, int level, const char *viewname); +void IMB_exrtile_write_channels(void *handle, int partx, int party, int level, const char *viewname, bool empty); void IMB_exr_clear_channels(void *handle); void IMB_exr_multilayer_convert( diff --git a/source/blender/imbuf/intern/openexr/openexr_stub.cpp b/source/blender/imbuf/intern/openexr/openexr_stub.cpp index 05fddcb5fa5..301e827d739 100644 --- a/source/blender/imbuf/intern/openexr/openexr_stub.cpp +++ b/source/blender/imbuf/intern/openexr/openexr_stub.cpp @@ -47,7 +47,7 @@ float *IMB_exr_channel_rect (void * /*handle*/, const char * /*layname*/ void IMB_exr_read_channels (void * /*handle*/) { } void IMB_exr_write_channels (void * /*handle*/) { } -void IMB_exrtile_write_channels (void * /*handle*/, int /*partx*/, int /*party*/, int /*level*/, const char * /*viewname*/) { } +void IMB_exrtile_write_channels (void * /*handle*/, int /*partx*/, int /*party*/, int /*level*/, const char * /*viewname*/, bool /*empty*/) { } void IMB_exr_clear_channels (void * /*handle*/) { } void IMB_exr_multilayer_convert( diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 237091e1391..281c16ac892 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -471,7 +471,10 @@ typedef struct UserDef { short wheellinescroll; int uiflag; /* eUserpref_UI_Flag */ int uiflag2; /* eUserpref_UI_Flag2 */ - int language; + /* Experimental flag for app-templates to make changes to behavior + * which are outside the scope of typical preferences. */ + short app_flag; + short language; short userpref, viewzoom; int mixbufsize; @@ -681,7 +684,7 @@ typedef enum eUserpref_UI_Flag { USER_LOCK_CURSOR_ADJUST = (1 << 6), /* Avoid accidentally adjusting the layout * (exact behavior may change based on whats considered reasonable to lock down). */ - USER_LOCK_UI_LAYOUT = (1 << 7), + USER_UIFLAG_DEPRECATED_7 = (1 << 7), USER_ALLWINCODECS = (1 << 8), USER_MENUOPENAUTO = (1 << 9), USER_ZBUF_CURSOR = (1 << 10), @@ -714,7 +717,13 @@ typedef enum eUserpref_UI_Flag2 { USER_REGION_OVERLAP = (1 << 1), USER_TRACKPAD_NATURAL = (1 << 2), } eUserpref_UI_Flag2; - + +/* UserDef.app_flag */ +typedef enum eUserpref_APP_Flag { + USER_APP_LOCK_UI_LAYOUT = (1 << 0), + USER_APP_VIEW3D_HIDE_CURSOR = (1 << 1), +} eUserpref_APP_Flag; + /* Auto-Keying mode. * UserDef.autokey_mode */ typedef enum eAutokey_Mode { diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index e2a0769490d..4f396ea6161 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -3399,17 +3399,24 @@ static void rna_def_userdef_view(BlenderRNA *brna) RNA_def_property_boolean_negative_sdna(prop, NULL, "uiflag", USER_SPLASH_DISABLE); RNA_def_property_ui_text(prop, "Show Splash", "Display splash screen on startup"); - prop = RNA_def_property(srna, "show_layout_ui", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_negative_sdna(prop, NULL, "uiflag", USER_LOCK_UI_LAYOUT); - RNA_def_property_ui_text(prop, "Show Layout Widgets", "Show screen layout editing UI"); - RNA_def_property_update(prop, 0, "rna_userdef_update_ui"); prop = RNA_def_property(srna, "show_playback_fps", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_SHOW_FPS); RNA_def_property_ui_text(prop, "Show Playback FPS", "Show the frames per second screen refresh rate, while animation is played back"); RNA_def_property_update(prop, 0, "rna_userdef_update"); - + + /* app flags (use for app-templates) */ + prop = RNA_def_property(srna, "show_layout_ui", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "app_flag", USER_APP_LOCK_UI_LAYOUT); + RNA_def_property_ui_text(prop, "Show Layout Widgets", "Show screen layout editing UI"); + RNA_def_property_update(prop, 0, "rna_userdef_update_ui"); + + prop = RNA_def_property(srna, "show_view3d_cursor", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, NULL, "app_flag", USER_APP_VIEW3D_HIDE_CURSOR); + RNA_def_property_ui_text(prop, "Show 3D View Cursor", ""); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + /* menus */ prop = RNA_def_property(srna, "use_mouse_over_open", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_MENUOPENAUTO); diff --git a/source/blender/python/bmesh/bmesh_py_utils.c b/source/blender/python/bmesh/bmesh_py_utils.c index fc0cd9e475b..224c8295a9b 100644 --- a/source/blender/python/bmesh/bmesh_py_utils.c +++ b/source/blender/python/bmesh/bmesh_py_utils.c @@ -650,7 +650,7 @@ static PyObject *bpy_bm_utils_face_join(PyObject *UNUSED(self), PyObject *args) bool do_remove = true; if (!PyArg_ParseTuple( - args, "O|i:face_join", + args, "O|O&:face_join", &py_face_array, PyC_ParseBool, &do_remove)) { diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c index 92458e2e96b..c250a91f4cb 100644 --- a/source/blender/render/intern/source/render_result.c +++ b/source/blender/render/intern/source/render_result.c @@ -1081,7 +1081,7 @@ static void save_render_result_tile(RenderResult *rr, RenderResult *rrpart, cons continue; } - IMB_exrtile_write_channels(rl->exrhandle, partx, party, 0, viewname); + IMB_exrtile_write_channels(rl->exrhandle, partx, party, 0, viewname, false); } BLI_unlock_thread(LOCK_IMAGE); @@ -1095,13 +1095,11 @@ void render_result_save_empty_result_tiles(Render *re) for (rr = re->result; rr; rr = rr->next) { for (rl = rr->layers.first; rl; rl = rl->next) { - IMB_exr_clear_channels(rl->exrhandle); - for (pa = re->parts.first; pa; pa = pa->next) { if (pa->status != PART_STATUS_MERGED) { int party = pa->disprect.ymin - re->disprect.ymin + pa->crop; int partx = pa->disprect.xmin - re->disprect.xmin + pa->crop; - IMB_exrtile_write_channels(rl->exrhandle, partx, party, 0, re->viewname); + IMB_exrtile_write_channels(rl->exrhandle, partx, party, 0, re->viewname, true); } } } |