Commit: 885260117d6a9080ce073a1fb402b7af060f8645
Author: Bastien Montagne
Date:   Tue Mar 28 10:41:10 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB885260117d6a9080ce073a1fb402b7af060f8645

Merge branch 'master' into blender2.8

Conflicts:
        source/blender/blenloader/intern/readfile.c
        source/blender/windowmanager/intern/wm_window.c

===================================================================



===================================================================

diff --cc source/blender/blenloader/intern/readfile.c
index efa3e09329f,18c4034c0dd..81d72dce3a4
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -5670,33 -5660,8 +5670,25 @@@ static bool scene_validate_setscene__li
  }
  #endif
  
 +static void lib_link_scene_collection(FileData *fd, Library *lib, 
SceneCollection *sc)
 +{
 +      for (LinkData *link = sc->objects.first; link; link = link->next) {
 +              link->data = newlibadr_us(fd, lib, link->data);
 +              BLI_assert(link->data);
 +      }
 +
 +      for (LinkData *link = sc->filter_objects.first; link; link = 
link->next) {
 +              link->data = newlibadr_us(fd, lib, link->data);
 +              BLI_assert(link->data);
 +      }
 +
 +      for (SceneCollection *nsc = sc->scene_collections.first; nsc; nsc = 
nsc->next) {
 +              lib_link_scene_collection(fd, lib, nsc);
 +      }
 +}
 +
  static void lib_link_scene(FileData *fd, Main *main)
  {
-       Scene *sce;
-       BaseLegacy *base_legacy, *base_legacy_next;
-       Sequence *seq;
-       SceneLayer *sl;
-       SceneRenderLayer *srl;
-       FreestyleModuleConfig *fmc;
-       FreestyleLineSet *fls;
- 
  #ifdef USE_SETSCENE_CHECK
        bool need_check_set = false;
        int totscene = 0;
@@@ -5742,17 -5707,17 +5734,17 @@@
                        
                        sce->toolsettings->particle.shape_object = 
newlibadr(fd, sce->id.lib, sce->toolsettings->particle.shape_object);
                        
-                       for (base_legacy = sce->base.first; base_legacy; 
base_legacy = base_legacy_next) {
 -                      for (Base *next, *base = sce->base.first; base; base = 
next) {
 -                              next = base->next;
++                      for (BaseLegacy *base_legacy_next, *base_legacy = 
sce->base.first; base_legacy; base_legacy = base_legacy_next) {
 +                              base_legacy_next = base_legacy->next;
                                
 -                              base->object = newlibadr_us(fd, sce->id.lib, 
base->object);
 +                              base_legacy->object = newlibadr_us(fd, 
sce->id.lib, base_legacy->object);
                                
 -                              if (base->object == NULL) {
 +                              if (base_legacy->object == NULL) {
                                        blo_reportf_wrap(fd->reports, 
RPT_WARNING, TIP_("LIB: object lost from scene: '%s'"),
                                                         sce->id.name + 2);
 -                                      BLI_remlink(&sce->base, base);
 -                                      if (base == sce->basact) sce->basact = 
NULL;
 -                                      MEM_freeN(base);
 +                                      BLI_remlink(&sce->base, base_legacy);
 +                                      if (base_legacy == sce->basact) 
sce->basact = NULL;
 +                                      MEM_freeN(base_legacy);
                                }
                        }
                        
@@@ -5838,18 -5804,6 +5831,18 @@@
                        /* Motion Tracking */
                        sce->clip = newlibadr_us(fd, sce->id.lib, sce->clip);
  
 +                      lib_link_scene_collection(fd, sce->id.lib, 
sce->collection);
 +
-                       for (sl = sce->render_layers.first; sl; sl = sl->next) {
++                      for (SceneLayer *sl = sce->render_layers.first; sl; sl 
= sl->next) {
 +                              /* tag scene layer to update for collection 
tree evaluation */
 +                              sl->flag |= SCENE_LAYER_ENGINE_DIRTY;
 +                              for (Base *base = sl->object_bases.first; base; 
base = base->next) {
 +                                      /* we only bump the use count for the 
collection objects */
 +                                      base->object = newlibadr(fd, 
sce->id.lib, base->object);
 +                                      base->flag |= 
BASE_DIRTY_ENGINE_SETTINGS;
 +                              }
 +                      }
 +
  #ifdef USE_SETSCENE_CHECK
                        if (sce->set != NULL) {
                                /* link flag for scenes with set would be reset 
later,
@@@ -7591,7 -7501,9 +7608,9 @@@ static void lib_link_group(FileData *fd
                        if (add_us) {
                                id_us_ensure_real(&group->id);
                        }
 -                      BKE_group_object_unlink(group, NULL, NULL, NULL);       
/* removes NULL entries */
 +                      BKE_group_object_unlink(group, NULL);   /* removes NULL 
entries */
+ 
+                       group->id.tag &= ~LIB_TAG_NEED_LINK;
                }
        }
  }
@@@ -8535,8 -8435,8 +8543,9 @@@ static void do_versions_after_linking(M
  {
  //    printf("%s for %s (%s), %d.%d\n", __func__, main->curlib ? 
main->curlib->name : main->name,
  //           main->curlib ? "LIB" : "MAIN", main->versionfile, 
main->subversionfile);
+ 
        do_versions_after_linking_270(main);
 +      do_versions_after_linking_280(main);
  }
  
  static void lib_link_all(FileData *fd, Main *main)
diff --cc source/blender/windowmanager/intern/wm_window.c
index b6f1b431009,40baab8809c..49fe3a1d015
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@@ -79,10 -76,9 +79,11 @@@
  #include "GPU_draw.h"
  #include "GPU_extensions.h"
  #include "GPU_init_exit.h"
 -#include "GPU_glew.h"
 +#include "GPU_immediate.h"
+ #include "BLF_api.h"
  
 +#include "UI_resources.h"
 +
  /* for assert */
  #ifndef NDEBUG
  #  include "BLI_threads.h"
@@@ -918,14 -854,10 +940,13 @@@ void wm_window_make_drawable(wmWindowMa
                if (G.debug & G_DEBUG_EVENTS) {
                        printf("%s: set drawable %d\n", __func__, win->winid);
                }
 +
 +              immDeactivate();
                GHOST_ActivateWindowDrawingContext(win->ghostwin);
 -              
 +              immActivate();
 +
                /* this can change per window */
-               U.pixelsize = wm_window_pixelsize(win);
-               BKE_blender_userdef_refresh();
+               wm_window_set_dpi(win);
        }
  }
  
@@@ -1289,12 -1234,9 +1324,11 @@@ static int ghost_event_proc(GHOST_Event
                        {
                                // only update if the actual pixel size changes
                                float prev_pixelsize = U.pixelsize;
-                               U.pixelsize = wm_window_pixelsize(win);
+                               wm_window_set_dpi(win);
  
                                if (U.pixelsize != prev_pixelsize) {
-                                       BKE_blender_userdef_refresh();
 +                                      
BKE_icon_changed(win->screen->id.icon_id);
 +
                                        // close all popups since they are 
positioned with the pixel
                                        // size baked in and it's difficult to 
correct them
                                        wmWindow *oldWindow = CTX_wm_window(C);

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to