Revision: 43087
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43087
Author:   campbellbarton
Date:     2012-01-03 02:16:52 +0000 (Tue, 03 Jan 2012)
Log Message:
-----------
svn merge ^/trunk/blender -r43062:43085

Revision Links:
--------------
    
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43062

Modified Paths:
--------------
    branches/bmesh/blender/CMakeLists.txt
    branches/bmesh/blender/intern/cycles/blender/blender_mesh.cpp
    branches/bmesh/blender/intern/cycles/blender/blender_object.cpp
    branches/bmesh/blender/intern/cycles/blender/blender_sync.cpp
    branches/bmesh/blender/intern/ghost/CMakeLists.txt
    branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerSDL.cpp
    branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerSDL.h
    branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerX11.cpp
    branches/bmesh/blender/release/scripts/startup/bl_operators/anim.py
    branches/bmesh/blender/release/scripts/startup/bl_ui/properties_data_mesh.py
    
branches/bmesh/blender/release/scripts/startup/bl_ui/space_userpref_keymap.py
    branches/bmesh/blender/release/scripts/startup/bl_ui/space_view3d.py
    branches/bmesh/blender/source/blender/blenkernel/BKE_particle.h
    branches/bmesh/blender/source/blender/blenkernel/intern/particle_system.c
    branches/bmesh/blender/source/blender/editors/armature/editarmature.c
    branches/bmesh/blender/source/blender/editors/armature/poselib.c
    branches/bmesh/blender/source/blender/editors/armature/poseobject.c
    branches/bmesh/blender/source/blender/editors/include/ED_object.h
    branches/bmesh/blender/source/blender/editors/interface/interface_handlers.c
    branches/bmesh/blender/source/blender/editors/mesh/mesh_data.c
    branches/bmesh/blender/source/blender/editors/object/object_edit.c
    branches/bmesh/blender/source/blender/editors/object/object_group.c
    branches/bmesh/blender/source/blender/editors/object/object_shapekey.c
    branches/bmesh/blender/source/blender/editors/object/object_vgroup.c
    branches/bmesh/blender/source/blender/editors/physics/dynamicpaint_ops.c
    branches/bmesh/blender/source/blender/editors/physics/particle_object.c
    branches/bmesh/blender/source/blender/editors/render/render_shading.c
    branches/bmesh/blender/source/blender/gpu/GPU_buffers.h
    branches/bmesh/blender/source/blender/gpu/intern/gpu_buffers.c
    branches/bmesh/blender/source/blender/makesrna/intern/makesrna.c
    branches/bmesh/blender/source/blender/python/mathutils/mathutils_Matrix.c
    branches/bmesh/blender/source/blender/render/intern/source/external_engine.c
    branches/bmesh/blender/source/gameengine/GameLogic/CMakeLists.txt
    branches/bmesh/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp

Property Changed:
----------------
    branches/bmesh/blender/
    branches/bmesh/blender/release/


Property changes on: branches/bmesh/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2011-cucumber:37517,38384,38387,38403-38404,38407,42997-42998
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801
/trunk/blender:39992-43062
   + /branches/soc-2011-cucumber:37517,38384,38387,38403-38404,38407,42997-42998
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801
/trunk/blender:39992-43085

Modified: branches/bmesh/blender/CMakeLists.txt
===================================================================
--- branches/bmesh/blender/CMakeLists.txt       2012-01-03 02:11:11 UTC (rev 
43086)
+++ branches/bmesh/blender/CMakeLists.txt       2012-01-03 02:16:52 UTC (rev 
43087)
@@ -156,6 +156,7 @@
 
 if(UNIX AND NOT APPLE)
        option(WITH_X11_XINPUT "Enable X11 Xinput (tablet support and unicode 
input)"   ON)
+       option(WITH_X11_XF86VMODE "Enable X11 video mode switching"     OFF)
        option(WITH_BUILTIN_GLEW "Use GLEW OpenGL wrapper library bundled with 
blender" ON)
        option(WITH_XDG_USER_DIRS    "Build with XDG Base Directory 
Specification (only config and documents for now)" OFF)
        mark_as_advanced(WITH_XDG_USER_DIRS)
@@ -584,6 +585,17 @@
                if(WITH_X11_XINPUT)
                        set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} 
${X11_Xinput_LIB}")
                endif()
+
+               if(WITH_X11_XF86VMODE)
+                       # XXX, why dont cmake make this available?
+                       FIND_LIBRARY(X11_Xxf86vmode_LIB Xxf86vm   
${X11_LIB_SEARCH_PATH})
+                       mark_as_advanced(X11_Xxf86vmode_LIB)
+                       if(X11_Xxf86vmode_LIB)
+                               set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} 
${X11_Xxf86vmode_LIB}")
+                       else()
+                               set(WITH_X11_XF86VMODE OFF)
+                       endif()
+               endif()
        endif()
 
        if(CMAKE_SYSTEM_NAME MATCHES "Linux")
@@ -1547,6 +1559,7 @@
 
        info_cfg_text("System Options:")
        info_cfg_option(WITH_INSTALL_PORTABLE)
+       info_cfg_option(WITH_X11_XF86VMODE)
        info_cfg_option(WITH_X11_XINPUT)
        info_cfg_option(WITH_BUILTIN_GLEW)
 

Modified: branches/bmesh/blender/intern/cycles/blender/blender_mesh.cpp
===================================================================
--- branches/bmesh/blender/intern/cycles/blender/blender_mesh.cpp       
2012-01-03 02:11:11 UTC (rev 43086)
+++ branches/bmesh/blender/intern/cycles/blender/blender_mesh.cpp       
2012-01-03 02:16:52 UTC (rev 43087)
@@ -78,8 +78,9 @@
 
        for(b_mesh.faces.begin(f); f != b_mesh.faces.end(); ++f) {
                int4 vi = get_int4(f->vertices_raw());
-               int n= (vi[3] == 0)? 3: 4;
-               int shader = used_shaders[f->material_index()];
+               int n = (vi[3] == 0)? 3: 4;
+               int mi = clamp(f->material_index(), 0, used_shaders.size()-1);
+               int shader = used_shaders[mi];
                bool smooth = f->use_smooth();
 
                mesh->add_triangle(vi[0], vi[1], vi[2], shader, smooth);

Modified: branches/bmesh/blender/intern/cycles/blender/blender_object.cpp
===================================================================
--- branches/bmesh/blender/intern/cycles/blender/blender_object.cpp     
2012-01-03 02:11:11 UTC (rev 43086)
+++ branches/bmesh/blender/intern/cycles/blender/blender_object.cpp     
2012-01-03 02:16:52 UTC (rev 43087)
@@ -234,13 +234,20 @@
 
                                object_free_duplilist(*b_ob);
 
-                               /* check if we should render duplicator */
                                hide = true;
-                               BL::Object::particle_systems_iterator b_psys;
+                       }
 
-                               for(b_ob->particle_systems.begin(b_psys); 
b_psys != b_ob->particle_systems.end(); ++b_psys)
-                                       
if(b_psys->settings().use_render_emitter())
-                                               hide = false;
+                       /* check if we should render or hide particle emitter */
+                       BL::Object::particle_systems_iterator b_psys;
+                       bool render_emitter = false;
+
+                       for(b_ob->particle_systems.begin(b_psys); b_psys != 
b_ob->particle_systems.end(); ++b_psys) {
+                               if(b_psys->settings().use_render_emitter()) {
+                                       hide = false;
+                                       render_emitter = true;
+                               }
+                               else if(!render_emitter)
+                                       hide = true;
                        }
 
                        if(!hide) {

Modified: branches/bmesh/blender/intern/cycles/blender/blender_sync.cpp
===================================================================
--- branches/bmesh/blender/intern/cycles/blender/blender_sync.cpp       
2012-01-03 02:11:11 UTC (rev 43086)
+++ branches/bmesh/blender/intern/cycles/blender/blender_sync.cpp       
2012-01-03 02:16:52 UTC (rev 43087)
@@ -69,13 +69,13 @@
        BL::BlendData::materials_iterator b_mat;
 
        for(b_data.materials.begin(b_mat); b_mat != b_data.materials.end(); 
++b_mat)
-               if(b_mat->is_updated())
+               if(b_mat->is_updated() || (b_mat->node_tree() && 
b_mat->node_tree().is_updated()))
                        shader_map.set_recalc(*b_mat);
 
        BL::BlendData::lamps_iterator b_lamp;
 
        for(b_data.lamps.begin(b_lamp); b_lamp != b_data.lamps.end(); ++b_lamp)
-               if(b_lamp->is_updated())
+               if(b_lamp->is_updated() || (b_lamp->node_tree() && 
b_lamp->node_tree().is_updated()))
                        shader_map.set_recalc(*b_lamp);
 
        BL::BlendData::objects_iterator b_ob;
@@ -107,7 +107,8 @@
        BL::BlendData::worlds_iterator b_world;
 
        for(b_data.worlds.begin(b_world); b_world != b_data.worlds.end(); 
++b_world)
-               if(world_map == b_world->ptr.data && b_world->is_updated())
+               if(world_map == b_world->ptr.data &&
+                       (b_world->is_updated() || (b_world->node_tree() && 
b_world->node_tree().is_updated())))
                        world_recalc = true;
 
        bool recalc =

Modified: branches/bmesh/blender/intern/ghost/CMakeLists.txt
===================================================================
--- branches/bmesh/blender/intern/ghost/CMakeLists.txt  2012-01-03 02:11:11 UTC 
(rev 43086)
+++ branches/bmesh/blender/intern/ghost/CMakeLists.txt  2012-01-03 02:16:52 UTC 
(rev 43087)
@@ -234,6 +234,13 @@
                )
        endif()
 
+       if(WITH_X11_XF86VMODE)
+               add_definitions(-DWITH_X11_XF86VMODE)
+               list(APPEND INC_SYS
+                       ${X11_xf86vmode_INCLUDE_PATH}
+               )
+       endif()
+
        if(WITH_INPUT_NDOF)
                list(APPEND SRC
                        intern/GHOST_NDOFManagerX11.cpp

Modified: branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerSDL.cpp
===================================================================
--- branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerSDL.cpp      
2012-01-03 02:11:11 UTC (rev 43086)
+++ branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerSDL.cpp      
2012-01-03 02:16:52 UTC (rev 43087)
@@ -36,7 +36,7 @@
 }
 
 GHOST_TSuccess
-GHOST_DisplayManagerSDL::getNumDisplays(GHOST_TUns8& numDisplays)
+GHOST_DisplayManagerSDL::getNumDisplays(GHOST_TUns8& numDisplays) const
 {
        numDisplays=  SDL_GetNumVideoDisplays();
        return GHOST_kSuccess;
@@ -44,7 +44,7 @@
 
 
 GHOST_TSuccess GHOST_DisplayManagerSDL::getNumDisplaySettings(GHOST_TUns8 
display,
-                                                              GHOST_TInt32& 
numSettings)
+                                                              GHOST_TInt32& 
numSettings) const
 {
        GHOST_ASSERT(display < 1, "Only single display systems are currently 
supported.\n");
        numSettings= GHOST_TInt32(1);
@@ -54,7 +54,7 @@
 GHOST_TSuccess
 GHOST_DisplayManagerSDL::getDisplaySetting(GHOST_TUns8 display,
                                            GHOST_TInt32 index,
-                                           GHOST_DisplaySetting& setting)
+                                           GHOST_DisplaySetting& setting) const
 {
 
        GHOST_ASSERT(display < 1, "Only single display systems are currently 
supported.\n");
@@ -74,7 +74,7 @@
 
 GHOST_TSuccess
 GHOST_DisplayManagerSDL::getCurrentDisplaySetting(GHOST_TUns8 display,
-                                                  GHOST_DisplaySetting& 
setting)
+                                                  GHOST_DisplaySetting& 
setting) const
 {
        return getDisplaySetting(display,GHOST_TInt32(0),setting);
 }

Modified: branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerSDL.h
===================================================================
--- branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerSDL.h        
2012-01-03 02:11:11 UTC (rev 43086)
+++ branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerSDL.h        
2012-01-03 02:16:52 UTC (rev 43087)
@@ -46,20 +46,20 @@
        GHOST_DisplayManagerSDL(GHOST_SystemSDL *system);
 
        GHOST_TSuccess
-       getNumDisplays(GHOST_TUns8& numDisplays);
+       getNumDisplays(GHOST_TUns8& numDisplays) const;
 
        GHOST_TSuccess
        getNumDisplaySettings(GHOST_TUns8 display,
-                             GHOST_TInt32& numSettings);
+                             GHOST_TInt32& numSettings) const;
 
        GHOST_TSuccess
        getDisplaySetting(GHOST_TUns8 display,
                          GHOST_TInt32 index,
-                         GHOST_DisplaySetting& setting);
+                         GHOST_DisplaySetting& setting) const;
 
        GHOST_TSuccess
        getCurrentDisplaySetting(GHOST_TUns8 display,
-                                GHOST_DisplaySetting& setting);
+                                GHOST_DisplaySetting& setting) const;
 
        GHOST_TSuccess
        setCurrentDisplaySetting(GHOST_TUns8 display,

Modified: branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerX11.cpp
===================================================================
--- branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerX11.cpp      
2012-01-03 02:11:11 UTC (rev 43086)
+++ branches/bmesh/blender/intern/ghost/intern/GHOST_DisplayManagerX11.cpp      
2012-01-03 02:16:52 UTC (rev 43087)
@@ -20,7 +20,9 @@
  *
  * The Original Code is: all of this file.
  *
- * Contributor(s): none yet.
+ * Video mode switching
+ * Copyright (C) 1997-2001 Id Software, Inc.
+ * Ported from Quake 2 by Alex Fraser <[email protected]>
  *
  * ***** END GPL LICENSE BLOCK *****
  */
@@ -29,6 +31,10 @@
  *  \ingroup GHOST
  */
 
+#ifdef WITH_X11_XF86VMODE
+#  include <X11/Xlib.h>
+#  include <X11/extensions/xf86vmode.h>
+#endif
 
 #include "GHOST_DisplayManagerX11.h"
 #include "GHOST_SystemX11.h"
@@ -112,12 +118,74 @@
        GHOST_TUns8 display,
        const GHOST_DisplaySetting& setting
 ){
-       // This is never going to work robustly in X 
-       // but it's currently part of the full screen interface
+#ifdef WITH_X11_XF86VMODE
+       //
+       // Mode switching code ported from Quake 2:
+       // ftp://ftp.idsoftware.com/idstuff/source/q2source-3.21.zip
+       // See linux/gl_glx.c:GLimp_SetMode
+       //
+       int majorVersion, minorVersion;
+       XF86VidModeModeInfo **vidmodes;
+       Display *dpy = m_system->getXDisplay();
+       int scrnum, num_vidmodes;
+       int best_fit, best_dist, dist, x, y;
 
-       // we fudge it for now.
+       scrnum = DefaultScreen(dpy);
 
+       // Get video mode list
+       majorVersion = minorVersion = 0;

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to