ソースを参照

Merge branch 'master' into deploy-ng

rdb 8 年 前
コミット
3a2435b2d9

+ 2 - 2
dtool/src/dtoolbase/deletedBufferChain.cxx

@@ -106,8 +106,8 @@ deallocate(void *ptr, TypeHandle type_handle) {
   assert(ptr != (void *)NULL);
   assert(ptr != (void *)NULL);
 
 
 #ifdef DO_MEMORY_USAGE
 #ifdef DO_MEMORY_USAGE
-  type_handle.dec_memory_usage(TypeHandle::MC_deleted_chain_active,
-                               _buffer_size + flag_reserved_bytes);
+  const size_t alloc_size = _buffer_size + flag_reserved_bytes + MEMORY_HOOK_ALIGNMENT - 1;
+  type_handle.dec_memory_usage(TypeHandle::MC_deleted_chain_active, alloc_size);
   // type_handle.inc_memory_usage(TypeHandle::MC_deleted_chain_inactive,
   // type_handle.inc_memory_usage(TypeHandle::MC_deleted_chain_inactive,
   // _buffer_size + flag_reserved_bytes);
   // _buffer_size + flag_reserved_bytes);
 
 

+ 3 - 3
makepanda/makepanda.py

@@ -865,7 +865,7 @@ if (COMPILER=="GCC"):
         if not PkgSkip("NVIDIACG") and not RUNTIME:
         if not PkgSkip("NVIDIACG") and not RUNTIME:
             SmartPkgEnable("CGGL", "", ("CgGL"), "Cg/cgGL.h", thirdparty_dir = "nvidiacg")
             SmartPkgEnable("CGGL", "", ("CgGL"), "Cg/cgGL.h", thirdparty_dir = "nvidiacg")
         if not RUNTIME:
         if not RUNTIME:
-            SmartPkgEnable("X11", "x11", "X11", ("X11", "X11/Xlib.h"))
+            SmartPkgEnable("X11", "x11", "X11", ("X11", "X11/Xlib.h", "X11/XKBlib.h"))
 
 
     if GetHost() != "darwin":
     if GetHost() != "darwin":
         # Workaround for an issue where pkg-config does not include this path
         # Workaround for an issue where pkg-config does not include this path
@@ -7241,8 +7241,8 @@ def MakeInstallerFreeBSD():
             plist_txt += os.path.join(root, f)[21:] + "\n"
             plist_txt += os.path.join(root, f)[21:] + "\n"
 
 
     if not RUNTIME:
     if not RUNTIME:
-        plist_txt += "@exec /sbin/ldconfig -m /usr/local/lib\n"
-        plist_txt += "@unexec /sbin/ldconfig -R\n"
+        plist_txt += "@postexec /sbin/ldconfig -m /usr/local/lib\n"
+        plist_txt += "@postunexec /sbin/ldconfig -R\n"
 
 
         for remdir in ("lib/panda3d", "share/panda3d", "include/panda3d"):
         for remdir in ("lib/panda3d", "share/panda3d", "include/panda3d"):
             for root, dirs, files in os.walk("targetroot/usr/local/" + remdir, False):
             for root, dirs, files in os.walk("targetroot/usr/local/" + remdir, False):

+ 1 - 0
panda/src/display/get_x11.h

@@ -45,6 +45,7 @@ struct XVisualInfo;
 #else
 #else
 
 
 #include "pre_x11_include.h"
 #include "pre_x11_include.h"
+#include <X11/XKBlib.h>
 #include <X11/Xlib.h>
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <X11/Xutil.h>
 #include <X11/keysym.h>
 #include <X11/keysym.h>

+ 7 - 4
panda/src/egg/eggLine.h

@@ -31,7 +31,7 @@ PUBLISHED:
 
 
   virtual EggLine *make_copy() const OVERRIDE;
   virtual EggLine *make_copy() const OVERRIDE;
 
 
-  virtual void write(ostream &out, int indent_level) const;
+  virtual void write(ostream &out, int indent_level) const OVERRIDE;
 
 
   INLINE bool has_thick() const;
   INLINE bool has_thick() const;
   INLINE double get_thick() const;
   INLINE double get_thick() const;
@@ -39,7 +39,7 @@ PUBLISHED:
   INLINE void clear_thick();
   INLINE void clear_thick();
 
 
 protected:
 protected:
-  virtual int get_num_lead_vertices() const;
+  virtual int get_num_lead_vertices() const OVERRIDE;
 
 
 private:
 private:
   double _thick;
   double _thick;
@@ -54,10 +54,13 @@ public:
     register_type(_type_handle, "EggLine",
     register_type(_type_handle, "EggLine",
                   EggCompositePrimitive::get_class_type());
                   EggCompositePrimitive::get_class_type());
   }
   }
-  virtual TypeHandle get_type() const {
+  virtual TypeHandle get_type() const OVERRIDE {
+    return get_class_type();
+  }
+  virtual TypeHandle force_init_type() OVERRIDE {
+    init_type();
     return get_class_type();
     return get_class_type();
   }
   }
-  virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
 
 
 private:
 private:
   static TypeHandle _type_handle;
   static TypeHandle _type_handle;

+ 6 - 3
panda/src/egg/eggNurbsCurve.h

@@ -50,7 +50,7 @@ PUBLISHED:
   INLINE double get_knot(int k) const;
   INLINE double get_knot(int k) const;
   MAKE_SEQ(get_knots, get_num_knots, get_knot);
   MAKE_SEQ(get_knots, get_num_knots, get_knot);
 
 
-  virtual void write(ostream &out, int indent_level) const;
+  virtual void write(ostream &out, int indent_level) const OVERRIDE;
 
 
   MAKE_PROPERTY(order, get_order, set_order);
   MAKE_PROPERTY(order, get_order, set_order);
   MAKE_PROPERTY(degree, get_degree);
   MAKE_PROPERTY(degree, get_degree);
@@ -72,10 +72,13 @@ public:
     register_type(_type_handle, "EggNurbsCurve",
     register_type(_type_handle, "EggNurbsCurve",
                   EggCurve::get_class_type());
                   EggCurve::get_class_type());
   }
   }
-  virtual TypeHandle get_type() const {
+  virtual TypeHandle get_type() const OVERRIDE {
+    return get_class_type();
+  }
+  virtual TypeHandle force_init_type() OVERRIDE {
+    init_type();
     return get_class_type();
     return get_class_type();
   }
   }
-  virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
 
 
 private:
 private:
   static TypeHandle _type_handle;
   static TypeHandle _type_handle;

+ 7 - 4
panda/src/egg/eggNurbsSurface.h

@@ -75,14 +75,14 @@ PUBLISHED:
   MAKE_SEQ(get_v_knots, get_num_v_knots, get_v_knot);
   MAKE_SEQ(get_v_knots, get_num_v_knots, get_v_knot);
   INLINE EggVertex *get_cv(int ui, int vi) const;
   INLINE EggVertex *get_cv(int ui, int vi) const;
 
 
-  virtual void write(ostream &out, int indent_level) const;
+  virtual void write(ostream &out, int indent_level) const OVERRIDE;
 
 
 public:
 public:
   Curves _curves_on_surface;
   Curves _curves_on_surface;
   Trims _trims;
   Trims _trims;
 
 
 protected:
 protected:
-  virtual void r_apply_texmats(EggTextureCollection &textures);
+  virtual void r_apply_texmats(EggTextureCollection &textures) OVERRIDE;
 
 
 private:
 private:
   typedef vector_double Knots;
   typedef vector_double Knots;
@@ -101,10 +101,13 @@ public:
     register_type(_type_handle, "EggNurbsSurface",
     register_type(_type_handle, "EggNurbsSurface",
                   EggSurface::get_class_type());
                   EggSurface::get_class_type());
   }
   }
-  virtual TypeHandle get_type() const {
+  virtual TypeHandle get_type() const OVERRIDE {
+    return get_class_type();
+  }
+  virtual TypeHandle force_init_type() OVERRIDE {
+    init_type();
     return get_class_type();
     return get_class_type();
   }
   }
-  virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
 
 
 private:
 private:
   static TypeHandle _type_handle;
   static TypeHandle _type_handle;

+ 6 - 3
panda/src/egg/eggPatch.h

@@ -30,7 +30,7 @@ PUBLISHED:
 
 
   virtual EggPatch *make_copy() const OVERRIDE;
   virtual EggPatch *make_copy() const OVERRIDE;
 
 
-  virtual void write(ostream &out, int indent_level) const;
+  virtual void write(ostream &out, int indent_level) const OVERRIDE;
 
 
 public:
 public:
   static TypeHandle get_class_type() {
   static TypeHandle get_class_type() {
@@ -41,10 +41,13 @@ public:
     register_type(_type_handle, "EggPatch",
     register_type(_type_handle, "EggPatch",
                   EggPrimitive::get_class_type());
                   EggPrimitive::get_class_type());
   }
   }
-  virtual TypeHandle get_type() const {
+  virtual TypeHandle get_type() const OVERRIDE {
+    return get_class_type();
+  }
+  virtual TypeHandle force_init_type() OVERRIDE {
+    init_type();
     return get_class_type();
     return get_class_type();
   }
   }
-  virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
 
 
 private:
 private:
   static TypeHandle _type_handle;
   static TypeHandle _type_handle;

+ 7 - 4
panda/src/egg/eggPoint.h

@@ -40,9 +40,9 @@ PUBLISHED:
   INLINE void set_perspective(bool perspective);
   INLINE void set_perspective(bool perspective);
   INLINE void clear_perspective();
   INLINE void clear_perspective();
 
 
-  virtual bool cleanup();
+  virtual bool cleanup() OVERRIDE;
 
 
-  virtual void write(ostream &out, int indent_level) const;
+  virtual void write(ostream &out, int indent_level) const OVERRIDE;
 
 
 private:
 private:
   enum Flags {
   enum Flags {
@@ -64,10 +64,13 @@ public:
     register_type(_type_handle, "EggPoint",
     register_type(_type_handle, "EggPoint",
                   EggPrimitive::get_class_type());
                   EggPrimitive::get_class_type());
   }
   }
-  virtual TypeHandle get_type() const {
+  virtual TypeHandle get_type() const OVERRIDE {
+    return get_class_type();
+  }
+  virtual TypeHandle force_init_type() OVERRIDE {
+    init_type();
     return get_class_type();
     return get_class_type();
   }
   }
-  virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
 
 
 private:
 private:
   static TypeHandle _type_handle;
   static TypeHandle _type_handle;

+ 7 - 4
panda/src/egg/eggPolygon.h

@@ -29,7 +29,7 @@ PUBLISHED:
 
 
   virtual EggPolygon *make_copy() const OVERRIDE;
   virtual EggPolygon *make_copy() const OVERRIDE;
 
 
-  virtual bool cleanup();
+  virtual bool cleanup() OVERRIDE;
 
 
   bool calculate_normal(LNormald &result, CoordinateSystem cs = CS_default) const;
   bool calculate_normal(LNormald &result, CoordinateSystem cs = CS_default) const;
   bool is_planar() const;
   bool is_planar() const;
@@ -39,7 +39,7 @@ PUBLISHED:
   INLINE bool triangulate_into(EggGroupNode *container, bool convex_also) const;
   INLINE bool triangulate_into(EggGroupNode *container, bool convex_also) const;
   PT(EggPolygon) triangulate_in_place(bool convex_also);
   PT(EggPolygon) triangulate_in_place(bool convex_also);
 
 
-  virtual void write(ostream &out, int indent_level) const;
+  virtual void write(ostream &out, int indent_level) const OVERRIDE;
 
 
 private:
 private:
   bool decomp_concave(EggGroupNode *container, int asum, int x, int y) const;
   bool decomp_concave(EggGroupNode *container, int asum, int x, int y) const;
@@ -55,10 +55,13 @@ public:
     register_type(_type_handle, "EggPolygon",
     register_type(_type_handle, "EggPolygon",
                   EggPrimitive::get_class_type());
                   EggPrimitive::get_class_type());
   }
   }
-  virtual TypeHandle get_type() const {
+  virtual TypeHandle get_type() const OVERRIDE {
+    return get_class_type();
+  }
+  virtual TypeHandle force_init_type() OVERRIDE {
+    init_type();
     return get_class_type();
     return get_class_type();
   }
   }
-  virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
 
 
 private:
 private:
   static TypeHandle _type_handle;
   static TypeHandle _type_handle;

+ 9 - 6
panda/src/egg/eggTriangleFan.h

@@ -31,12 +31,12 @@ PUBLISHED:
 
 
   virtual EggTriangleFan *make_copy() const OVERRIDE;
   virtual EggTriangleFan *make_copy() const OVERRIDE;
 
 
-  virtual void write(ostream &out, int indent_level) const;
-  virtual void apply_first_attribute();
+  virtual void write(ostream &out, int indent_level) const OVERRIDE;
+  virtual void apply_first_attribute() OVERRIDE;
 
 
 protected:
 protected:
-  virtual int get_num_lead_vertices() const;
-  virtual bool do_triangulate(EggGroupNode *container) const;
+  virtual int get_num_lead_vertices() const OVERRIDE;
+  virtual bool do_triangulate(EggGroupNode *container) const OVERRIDE;
 
 
 public:
 public:
   static TypeHandle get_class_type() {
   static TypeHandle get_class_type() {
@@ -47,10 +47,13 @@ public:
     register_type(_type_handle, "EggTriangleFan",
     register_type(_type_handle, "EggTriangleFan",
                   EggCompositePrimitive::get_class_type());
                   EggCompositePrimitive::get_class_type());
   }
   }
-  virtual TypeHandle get_type() const {
+  virtual TypeHandle get_type() const OVERRIDE {
+    return get_class_type();
+  }
+  virtual TypeHandle force_init_type() OVERRIDE {
+    init_type();
     return get_class_type();
     return get_class_type();
   }
   }
-  virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
 
 
 private:
 private:
   static TypeHandle _type_handle;
   static TypeHandle _type_handle;

+ 8 - 5
panda/src/egg/eggTriangleStrip.h

@@ -31,11 +31,11 @@ PUBLISHED:
 
 
   virtual EggTriangleStrip *make_copy() const OVERRIDE;
   virtual EggTriangleStrip *make_copy() const OVERRIDE;
 
 
-  virtual void write(ostream &out, int indent_level) const;
+  virtual void write(ostream &out, int indent_level) const OVERRIDE;
 
 
 protected:
 protected:
-  virtual int get_num_lead_vertices() const;
-  virtual bool do_triangulate(EggGroupNode *container) const;
+  virtual int get_num_lead_vertices() const OVERRIDE;
+  virtual bool do_triangulate(EggGroupNode *container) const OVERRIDE;
 
 
 public:
 public:
   static TypeHandle get_class_type() {
   static TypeHandle get_class_type() {
@@ -46,10 +46,13 @@ public:
     register_type(_type_handle, "EggTriangleStrip",
     register_type(_type_handle, "EggTriangleStrip",
                   EggCompositePrimitive::get_class_type());
                   EggCompositePrimitive::get_class_type());
   }
   }
-  virtual TypeHandle get_type() const {
+  virtual TypeHandle get_type() const OVERRIDE {
+    return get_class_type();
+  }
+  virtual TypeHandle force_init_type() OVERRIDE {
+    init_type();
     return get_class_type();
     return get_class_type();
   }
   }
-  virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
 
 
 private:
 private:
   static TypeHandle _type_handle;
   static TypeHandle _type_handle;

+ 3 - 3
panda/src/gobj/geom.cxx

@@ -1257,15 +1257,15 @@ compute_internal_bounds(Geom::CData *cdata, Thread *current_thread) const {
                        InternalName::get_vertex(),
                        InternalName::get_vertex(),
                        cdata, current_thread);
                        cdata, current_thread);
 
 
-  nassertv(!pmin.is_nan());
-  nassertv(!pmax.is_nan());
-
   BoundingVolume::BoundsType btype = cdata->_bounds_type;
   BoundingVolume::BoundsType btype = cdata->_bounds_type;
   if (btype == BoundingVolume::BT_default) {
   if (btype == BoundingVolume::BT_default) {
     btype = bounds_type;
     btype = bounds_type;
   }
   }
 
 
   if (found_any) {
   if (found_any) {
+    nassertv(!pmin.is_nan());
+    nassertv(!pmax.is_nan());
+
     // Then we put the bounding volume around both of those points.
     // Then we put the bounding volume around both of those points.
     PN_stdfloat avg_box_area;
     PN_stdfloat avg_box_area;
     switch (btype) {
     switch (btype) {

+ 3 - 3
panda/src/pgraph/renderState.cxx

@@ -947,8 +947,6 @@ garbage_collect() {
     return num_attribs;
     return num_attribs;
   }
   }
 
 
-  bool break_and_uniquify = (auto_break_cycles && uniquify_transforms);
-
   LightReMutexHolder holder(*_states_lock);
   LightReMutexHolder holder(*_states_lock);
 
 
   PStatTimer timer(_garbage_collect_pcollector);
   PStatTimer timer(_garbage_collect_pcollector);
@@ -961,10 +959,12 @@ garbage_collect() {
     return num_attribs;
     return num_attribs;
   }
   }
 
 
+  bool break_and_uniquify = (auto_break_cycles && uniquify_transforms);
+
   size_t si = _garbage_index;
   size_t si = _garbage_index;
 
 
   num_this_pass = min(num_this_pass, size);
   num_this_pass = min(num_this_pass, size);
-  size_t stop_at_element = (si + num_this_pass) % (size - 1);
+  size_t stop_at_element = (si + num_this_pass) & (size - 1);
 
 
   do {
   do {
     if (_states->has_element(si)) {
     if (_states->has_element(si)) {

+ 1 - 1
panda/src/x11display/x11GraphicsWindow.cxx

@@ -2051,7 +2051,7 @@ get_keyboard_map() const {
       continue;
       continue;
     }
     }
 
 
-    KeySym sym = XKeycodeToKeysym(_display, k, 0);
+    KeySym sym = XkbKeycodeToKeysym(_display, k, 0, 0);
     ButtonHandle button = map_button(sym);
     ButtonHandle button = map_button(sym);
     if (button == ButtonHandle::none()) {
     if (button == ButtonHandle::none()) {
       continue;
       continue;