Browse Source

Merge branch 'release/1.10.x'

rdb 3 years ago
parent
commit
ecf4d19e83
44 changed files with 412 additions and 195 deletions
  1. 1 1
      direct/src/filter/FilterManager.py
  2. 150 102
      dtool/metalibs/dtoolconfig/pydtool.cxx
  3. 1 1
      dtool/src/dtoolbase/mutexWin32Impl.cxx
  4. 3 0
      dtool/src/interrogate/functionRemap.cxx
  5. 22 3
      dtool/src/interrogate/interrogateBuilder.cxx
  6. 40 0
      dtool/src/interrogate/typeManager.cxx
  7. 1 0
      dtool/src/interrogate/typeManager.h
  8. 11 0
      dtool/src/interrogatedb/interrogateDatabase.cxx
  9. 16 0
      dtool/src/interrogatedb/interrogateFunction.I
  10. 6 1
      dtool/src/interrogatedb/interrogateFunction.h
  11. 11 0
      dtool/src/interrogatedb/interrogateFunctionWrapper.I
  12. 2 0
      dtool/src/interrogatedb/interrogateFunctionWrapper.h
  13. 30 0
      dtool/src/interrogatedb/interrogate_interface.cxx
  14. 5 0
      dtool/src/interrogatedb/interrogate_interface.h
  15. 1 1
      dtool/src/prc/notifyCategory.I
  16. 4 2
      makepanda/makepanda.py
  17. 1 1
      panda/src/device/inputDevice.I
  18. 1 1
      panda/src/display/drawableRegion.I
  19. 5 4
      panda/src/display/frameBufferProperties.I
  20. 12 12
      panda/src/display/graphicsOutput.I
  21. 2 2
      panda/src/display/graphicsStateGuardian.I
  22. 1 1
      panda/src/egg/eggMesherEdge.I
  23. 1 1
      panda/src/express/multifile.I
  24. 6 6
      panda/src/express/pointerToArray.I
  25. 6 6
      panda/src/express/pointerToArray_ext.I
  26. 25 2
      panda/src/glstuff/glGraphicsBuffer_src.cxx
  27. 2 2
      panda/src/gobj/geomVertexArrayData.I
  28. 2 2
      panda/src/gobj/geomVertexWriter.I
  29. 1 1
      panda/src/gobj/paramTexture.I
  30. 1 1
      panda/src/gobj/textureContext.I
  31. 2 2
      panda/src/grutil/geoMipTerrain.I
  32. 2 2
      panda/src/linmath/lvector3_src.I
  33. 1 1
      panda/src/parametrics/nurbsBasisVector.I
  34. 1 1
      panda/src/parametrics/parametricCurveCollection.I
  35. 1 1
      panda/src/particlesystem/baseParticleRenderer.I
  36. 1 1
      panda/src/pgui/pgEntry.I
  37. 1 1
      panda/src/pgui/pgSliderBar.I
  38. 1 1
      panda/src/pipeline/pipeline.I
  39. 1 1
      panda/src/pipeline/thread.I
  40. 4 4
      panda/src/pnmimage/convert_srgb.I
  41. 4 4
      panda/src/pnmimage/pfmFile.I
  42. 18 18
      panda/src/pnmimage/pnmImage.I
  43. 1 1
      panda/src/putil/clockObject.I
  44. 4 4
      pandatool/src/pstatserver/pStatTimeline.I

+ 1 - 1
direct/src/filter/FilterManager.py

@@ -323,7 +323,7 @@ class FilterManager(DirectObject):
             props.setAuxRgba(1)
             props.setAuxRgba(1)
         if auxtex1 is not None:
         if auxtex1 is not None:
             props.setAuxRgba(2)
             props.setAuxRgba(2)
-        buffer=base.graphicsEngine.makeOutput(
+        buffer=self.engine.makeOutput(
             self.win.getPipe(), name, -1,
             self.win.getPipe(), name, -1,
             props, winprops, GraphicsPipe.BFRefuseWindow | GraphicsPipe.BFResizeable,
             props, winprops, GraphicsPipe.BFRefuseWindow | GraphicsPipe.BFResizeable,
             self.win.getGsg(), self.win)
             self.win.getGsg(), self.win)

File diff suppressed because it is too large
+ 150 - 102
dtool/metalibs/dtoolconfig/pydtool.cxx


+ 1 - 1
dtool/src/dtoolbase/mutexWin32Impl.cxx

@@ -13,7 +13,7 @@
 
 
 #include "selectThreadImpl.h"
 #include "selectThreadImpl.h"
 
 
-#if defined(_WIN32) && !defined(CPPPARSER)
+#ifdef _WIN32
 
 
 #include "mutexWin32Impl.h"
 #include "mutexWin32Impl.h"
 
 

+ 3 - 0
dtool/src/interrogate/functionRemap.cxx

@@ -327,6 +327,9 @@ make_wrapper_entry(FunctionIndex function_index) {
     if ((*pi)._has_name) {
     if ((*pi)._has_name) {
       param._parameter_flags |= InterrogateFunctionWrapper::PF_has_name;
       param._parameter_flags |= InterrogateFunctionWrapper::PF_has_name;
     }
     }
+    if ((*pi)._remap->has_default_value()) {
+      param._parameter_flags |= InterrogateFunctionWrapper::PF_is_optional;
+    }
     iwrapper._parameters.push_back(param);
     iwrapper._parameters.push_back(param);
   }
   }
 
 

+ 22 - 3
dtool/src/interrogate/interrogateBuilder.cxx

@@ -1071,6 +1071,10 @@ scan_function(CPPInstance *function) {
     return;
     return;
   }
   }
 
 
+  if (TypeManager::involves_rvalue_reference(ftype)) {
+    return;
+  }
+
   get_function(function, "",
   get_function(function, "",
                nullptr, scope,
                nullptr, scope,
                InterrogateFunction::F_global);
                InterrogateFunction::F_global);
@@ -1770,6 +1774,16 @@ get_function(CPPInstance *function, string description,
     ifunction->_flags |= InterrogateFunction::F_operator_typecast;
     ifunction->_flags |= InterrogateFunction::F_operator_typecast;
   }
   }
 
 
+  if (ftype->_flags & CPPFunctionType::F_constructor) {
+    // This is a constructor.
+    ifunction->_flags |= InterrogateFunction::F_constructor;
+  }
+
+  if (ftype->_flags & CPPFunctionType::F_destructor) {
+    // This is a destructor.
+    ifunction->_flags |= InterrogateFunction::F_destructor;
+  }
+
   if (function->_storage_class & CPPInstance::SC_virtual) {
   if (function->_storage_class & CPPInstance::SC_virtual) {
     // This is a virtual function.
     // This is a virtual function.
     ifunction->_flags |= InterrogateFunction::F_virtual;
     ifunction->_flags |= InterrogateFunction::F_virtual;
@@ -2747,7 +2761,8 @@ define_struct_type(InterrogateType &itype, CPPStructType *cpptype,
     function->_storage_class |= CPPInstance::SC_inline | CPPInstance::SC_defaulted;
     function->_storage_class |= CPPInstance::SC_inline | CPPInstance::SC_defaulted;
     function->_vis = V_published;
     function->_vis = V_published;
 
 
-    FunctionIndex index = get_function(function, "", cpptype, cpptype->get_scope(), 0);
+    FunctionIndex index = get_function(function, "", cpptype, cpptype->get_scope(),
+                                       InterrogateFunction::F_constructor);
     if (find(itype._constructors.begin(), itype._constructors.end(),
     if (find(itype._constructors.begin(), itype._constructors.end(),
              index) == itype._constructors.end()) {
              index) == itype._constructors.end()) {
       itype._constructors.push_back(index);
       itype._constructors.push_back(index);
@@ -2773,7 +2788,8 @@ define_struct_type(InterrogateType &itype, CPPStructType *cpptype,
     function->_storage_class |= CPPInstance::SC_inline | CPPInstance::SC_defaulted;
     function->_storage_class |= CPPInstance::SC_inline | CPPInstance::SC_defaulted;
     function->_vis = V_published;
     function->_vis = V_published;
 
 
-    FunctionIndex index = get_function(function, "", cpptype, cpptype->get_scope(), 0);
+    FunctionIndex index = get_function(function, "", cpptype, cpptype->get_scope(),
+                                       InterrogateFunction::F_constructor);
     if (find(itype._constructors.begin(), itype._constructors.end(),
     if (find(itype._constructors.begin(), itype._constructors.end(),
              index) == itype._constructors.end()) {
              index) == itype._constructors.end()) {
       itype._constructors.push_back(index);
       itype._constructors.push_back(index);
@@ -2814,7 +2830,7 @@ define_struct_type(InterrogateType &itype, CPPStructType *cpptype,
 
 
     itype._destructor = get_function(function, "",
     itype._destructor = get_function(function, "",
                                      cpptype, cpptype->get_scope(),
                                      cpptype, cpptype->get_scope(),
-                                     0);
+                                     InterrogateFunction::F_destructor);
     itype._flags |= InterrogateType::F_implicit_destructor;
     itype._flags |= InterrogateType::F_implicit_destructor;
   }
   }
 }
 }
@@ -2988,6 +3004,9 @@ define_method(CPPInstance *function, InterrogateType &itype,
     // If it isn't, we should publish this method anyway.
     // If it isn't, we should publish this method anyway.
   }
   }
 
 
+  if (TypeManager::involves_rvalue_reference(ftype)) {
+    return;
+  }
 
 
   FunctionIndex index = get_function(function, "", struct_type, scope, 0);
   FunctionIndex index = get_function(function, "", struct_type, scope, 0);
   if (index != 0) {
   if (index != 0) {

+ 40 - 0
dtool/src/interrogate/typeManager.cxx

@@ -2017,6 +2017,46 @@ involves_protected(CPPType *type) {
   }
   }
 }
 }
 
 
+/**
+ * Returns true if the type involves an rvalue reference.
+ */
+bool TypeManager::
+involves_rvalue_reference(CPPType *type) {
+  switch (type->get_subtype()) {
+  case CPPDeclaration::ST_const:
+    return involves_rvalue_reference(type->as_const_type()->_wrapped_around);
+
+  case CPPDeclaration::ST_reference:
+    return type->as_reference_type()->_value_category == CPPReferenceType::VC_rvalue;
+
+  case CPPDeclaration::ST_pointer:
+    return involves_rvalue_reference(type->as_pointer_type()->_pointing_at);
+
+  case CPPDeclaration::ST_function:
+    {
+      CPPFunctionType *ftype = type->as_function_type();
+      if (involves_rvalue_reference(ftype->_return_type)) {
+        return true;
+      }
+      const CPPParameterList::Parameters &params =
+        ftype->_parameters->_parameters;
+      CPPParameterList::Parameters::const_iterator pi;
+      for (pi = params.begin(); pi != params.end(); ++pi) {
+        if (involves_rvalue_reference((*pi)->_type)) {
+          return true;
+        }
+      }
+      return false;
+    }
+
+  case CPPDeclaration::ST_typedef:
+    return involves_rvalue_reference(type->as_typedef_type()->_type);
+
+  default:
+    return false;
+  }
+}
+
 /**
 /**
  * Returns the type this pointer type points to.
  * Returns the type this pointer type points to.
  */
  */

+ 1 - 0
dtool/src/interrogate/typeManager.h

@@ -118,6 +118,7 @@ public:
   static bool is_handle(CPPType *type);
   static bool is_handle(CPPType *type);
   static bool involves_unpublished(CPPType *type);
   static bool involves_unpublished(CPPType *type);
   static bool involves_protected(CPPType *type);
   static bool involves_protected(CPPType *type);
+  static bool involves_rvalue_reference(CPPType *type);
 
 
   static bool is_ostream(CPPType *type);
   static bool is_ostream(CPPType *type);
   static bool is_pointer_to_ostream(CPPType *type);
   static bool is_pointer_to_ostream(CPPType *type);

+ 11 - 0
dtool/src/interrogatedb/interrogateDatabase.cxx

@@ -968,6 +968,17 @@ read_new(std::istream &in, InterrogateModuleDef *def) {
 
 
       add_type(index, type);
       add_type(index, type);
       num_types--;
       num_types--;
+
+      // Older versions of interrogate were not setting these flags.
+      const InterrogateType &itype = get_type(index);
+      FunctionIndex dtor = itype.get_destructor();
+      if (dtor != 0) {
+        update_function(dtor)._flags |= InterrogateFunction::F_destructor;
+      }
+      for (int i = 0; i < itype.number_of_constructors(); ++i) {
+        FunctionIndex ctor = itype.get_constructor(i);
+        update_function(ctor)._flags |= InterrogateFunction::F_constructor;
+      }
     }
     }
   }
   }
 
 

+ 16 - 0
dtool/src/interrogatedb/interrogateFunction.I

@@ -54,6 +54,22 @@ is_operator_typecast() const {
   return (_flags & F_operator_typecast) != 0;
   return (_flags & F_operator_typecast) != 0;
 }
 }
 
 
+/**
+ * Returns true if the function is a constructor.
+ */
+INLINE bool InterrogateFunction::
+is_constructor() const {
+  return (_flags & F_constructor) != 0;
+}
+
+/**
+ * Returns true if the function is a destructor.
+ */
+INLINE bool InterrogateFunction::
+is_destructor() const {
+  return (_flags & F_destructor) != 0;
+}
+
 /**
 /**
  * Return the class that owns the method, if is_method() returns true.
  * Return the class that owns the method, if is_method() returns true.
  */
  */

+ 6 - 1
dtool/src/interrogatedb/interrogateFunction.h

@@ -38,6 +38,8 @@ public:
   INLINE bool is_method() const;
   INLINE bool is_method() const;
   INLINE bool is_unary_op() const;
   INLINE bool is_unary_op() const;
   INLINE bool is_operator_typecast() const;
   INLINE bool is_operator_typecast() const;
+  INLINE bool is_constructor() const;
+  INLINE bool is_destructor() const;
   INLINE TypeIndex get_class() const;
   INLINE TypeIndex get_class() const;
 
 
   INLINE bool has_scoped_name() const;
   INLINE bool has_scoped_name() const;
@@ -70,7 +72,9 @@ private:
     F_setter          = 0x0020,
     F_setter          = 0x0020,
     F_unary_op        = 0x0040,
     F_unary_op        = 0x0040,
     F_operator_typecast = 0x0080,
     F_operator_typecast = 0x0080,
-    F_item_assignment = 0x0100,
+    F_constructor     = 0x0100,
+    F_destructor      = 0x0200,
+    F_item_assignment = 0x0400,
   };
   };
 
 
   int _flags;
   int _flags;
@@ -98,6 +102,7 @@ public:
   std::string _expression;
   std::string _expression;
 
 
   friend class InterrogateBuilder;
   friend class InterrogateBuilder;
+  friend class InterrogateDatabase;
   friend class InterfaceMakerC;
   friend class InterfaceMakerC;
   friend class InterfaceMakerPythonSimple;
   friend class InterfaceMakerPythonSimple;
   friend class InterfaceMakerPythonNative;
   friend class InterfaceMakerPythonNative;

+ 11 - 0
dtool/src/interrogatedb/interrogateFunctionWrapper.I

@@ -148,6 +148,17 @@ parameter_is_this(int n) const {
   return false;
   return false;
 }
 }
 
 
+/**
+ *
+ */
+INLINE bool InterrogateFunctionWrapper::
+parameter_is_optional(int n) const {
+  if (n >= 0 && n < (int)_parameters.size()) {
+    return (_parameters[n]._parameter_flags & PF_is_optional) != 0;
+  }
+  return false;
+}
+
 /**
 /**
  *
  *
  */
  */

+ 2 - 0
dtool/src/interrogatedb/interrogateFunctionWrapper.h

@@ -45,6 +45,7 @@ public:
   INLINE bool parameter_has_name(int n) const;
   INLINE bool parameter_has_name(int n) const;
   INLINE const std::string &parameter_get_name(int n) const;
   INLINE const std::string &parameter_get_name(int n) const;
   INLINE bool parameter_is_this(int n) const;
   INLINE bool parameter_is_this(int n) const;
+  INLINE bool parameter_is_optional(int n) const;
 
 
   INLINE const std::string &get_unique_name() const;
   INLINE const std::string &get_unique_name() const;
 
 
@@ -66,6 +67,7 @@ private:
   enum ParameterFlags {
   enum ParameterFlags {
     PF_has_name       = 0x0001,
     PF_has_name       = 0x0001,
     PF_is_this        = 0x0002,
     PF_is_this        = 0x0002,
+    PF_is_optional    = 0x0004,
   };
   };
 
 
   int _flags;
   int _flags;

+ 30 - 0
dtool/src/interrogatedb/interrogate_interface.cxx

@@ -266,6 +266,18 @@ interrogate_function_class(FunctionIndex function) {
   return InterrogateDatabase::get_ptr()->get_function(function).get_class();
   return InterrogateDatabase::get_ptr()->get_function(function).get_class();
 }
 }
 
 
+bool
+interrogate_function_is_constructor(FunctionIndex function) {
+  // cerr << "interrogate_function_is_constructor(" << function << ")\n";
+  return InterrogateDatabase::get_ptr()->get_function(function).is_constructor();
+}
+
+bool
+interrogate_function_is_destructor(FunctionIndex function) {
+  // cerr << "interrogate_function_is_destructor(" << function << ")\n";
+  return InterrogateDatabase::get_ptr()->get_function(function).is_destructor();
+}
+
 bool
 bool
 interrogate_function_has_module_name(FunctionIndex function) {
 interrogate_function_has_module_name(FunctionIndex function) {
   // cerr << "interrogate_function_has_module_name(" << function << ")\n";
   // cerr << "interrogate_function_has_module_name(" << function << ")\n";
@@ -411,6 +423,12 @@ interrogate_wrapper_parameter_is_this(FunctionWrapperIndex wrapper, int n) {
   return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).parameter_is_this(n);
   return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).parameter_is_this(n);
 }
 }
 
 
+bool
+interrogate_wrapper_parameter_is_optional(FunctionWrapperIndex wrapper, int n) {
+  // cerr << "interrogate_wrapper_is_optional(" << wrapper << ", " << n << ")\n";
+  return InterrogateDatabase::get_ptr()->get_wrapper(wrapper).parameter_is_optional(n);
+}
+
 bool
 bool
 interrogate_wrapper_has_pointer(FunctionWrapperIndex wrapper) {
 interrogate_wrapper_has_pointer(FunctionWrapperIndex wrapper) {
   // cerr << "interrogate_wrapper_has_pointer(" << wrapper << ")\n";
   // cerr << "interrogate_wrapper_has_pointer(" << wrapper << ")\n";
@@ -674,6 +692,12 @@ interrogate_type_is_enum(TypeIndex type) {
   return InterrogateDatabase::get_ptr()->get_type(type).is_enum();
   return InterrogateDatabase::get_ptr()->get_type(type).is_enum();
 }
 }
 
 
+bool
+interrogate_type_is_scoped_enum(TypeIndex type) {
+  // cerr << "interrogate_type_is_scoped_enum(" << type << ")\n";
+  return InterrogateDatabase::get_ptr()->get_type(type).is_scoped_enum();
+}
+
 int
 int
 interrogate_type_number_of_enum_values(TypeIndex type) {
 interrogate_type_number_of_enum_values(TypeIndex type) {
   // cerr << "interrogate_type_number_of_enum_values(" << type << ")\n";
   // cerr << "interrogate_type_number_of_enum_values(" << type << ")\n";
@@ -828,6 +852,12 @@ interrogate_type_get_derivation(TypeIndex type, int n) {
   return InterrogateDatabase::get_ptr()->get_type(type).get_derivation(n);
   return InterrogateDatabase::get_ptr()->get_type(type).get_derivation(n);
 }
 }
 
 
+bool
+interrogate_type_is_final(TypeIndex type) {
+  // cerr << "interrogate_type_is_final(" << type << ")\n";
+  return InterrogateDatabase::get_ptr()->get_type(type).is_final();
+}
+
 bool
 bool
 interrogate_type_derivation_has_upcast(TypeIndex type, int n) {
 interrogate_type_derivation_has_upcast(TypeIndex type, int n) {
   // cerr << "interrogate_type_derivation_has_upcast(" << type << ", " << n <<
   // cerr << "interrogate_type_derivation_has_upcast(" << type << ", " << n <<

+ 5 - 0
dtool/src/interrogatedb/interrogate_interface.h

@@ -210,6 +210,8 @@ EXPCL_INTERROGATEDB const char *interrogate_function_prototype(FunctionIndex fun
 // if the function is a class method.
 // if the function is a class method.
 EXPCL_INTERROGATEDB bool interrogate_function_is_method(FunctionIndex function);
 EXPCL_INTERROGATEDB bool interrogate_function_is_method(FunctionIndex function);
 EXPCL_INTERROGATEDB TypeIndex interrogate_function_class(FunctionIndex function);
 EXPCL_INTERROGATEDB TypeIndex interrogate_function_class(FunctionIndex function);
+EXPCL_INTERROGATEDB bool interrogate_function_is_constructor(FunctionIndex function);
+EXPCL_INTERROGATEDB bool interrogate_function_is_destructor(FunctionIndex function);
 
 
 // This returns the module name reported for the function, if available.
 // This returns the module name reported for the function, if available.
 EXPCL_INTERROGATEDB bool interrogate_function_has_module_name(FunctionIndex function);
 EXPCL_INTERROGATEDB bool interrogate_function_has_module_name(FunctionIndex function);
@@ -299,6 +301,7 @@ EXPCL_INTERROGATEDB TypeIndex interrogate_wrapper_parameter_type(FunctionWrapper
 EXPCL_INTERROGATEDB bool interrogate_wrapper_parameter_has_name(FunctionWrapperIndex wrapper, int n);
 EXPCL_INTERROGATEDB bool interrogate_wrapper_parameter_has_name(FunctionWrapperIndex wrapper, int n);
 EXPCL_INTERROGATEDB const char *interrogate_wrapper_parameter_name(FunctionWrapperIndex wrapper, int n);
 EXPCL_INTERROGATEDB const char *interrogate_wrapper_parameter_name(FunctionWrapperIndex wrapper, int n);
 EXPCL_INTERROGATEDB bool interrogate_wrapper_parameter_is_this(FunctionWrapperIndex wrapper, int n);
 EXPCL_INTERROGATEDB bool interrogate_wrapper_parameter_is_this(FunctionWrapperIndex wrapper, int n);
+EXPCL_INTERROGATEDB bool interrogate_wrapper_parameter_is_optional(FunctionWrapperIndex wrapper, int n);
 
 
 // This returns a pointer to a function that may be called to invoke the
 // This returns a pointer to a function that may be called to invoke the
 // function, if the -fptrs option to return function pointers was specified to
 // function, if the -fptrs option to return function pointers was specified to
@@ -423,6 +426,7 @@ EXPCL_INTERROGATEDB TypeIndex interrogate_type_wrapped_type(TypeIndex type);
 // If interrogate_type_is_enum() returns true, this is an enumerated type,
 // If interrogate_type_is_enum() returns true, this is an enumerated type,
 // which means it may take any one of a number of named integer values.
 // which means it may take any one of a number of named integer values.
 EXPCL_INTERROGATEDB bool interrogate_type_is_enum(TypeIndex type);
 EXPCL_INTERROGATEDB bool interrogate_type_is_enum(TypeIndex type);
+EXPCL_INTERROGATEDB bool interrogate_type_is_scoped_enum(TypeIndex type);
 EXPCL_INTERROGATEDB int interrogate_type_number_of_enum_values(TypeIndex type);
 EXPCL_INTERROGATEDB int interrogate_type_number_of_enum_values(TypeIndex type);
 EXPCL_INTERROGATEDB const char *interrogate_type_enum_value_name(TypeIndex type, int n);
 EXPCL_INTERROGATEDB const char *interrogate_type_enum_value_name(TypeIndex type, int n);
 EXPCL_INTERROGATEDB const char *interrogate_type_enum_value_scoped_name(TypeIndex type, int n);
 EXPCL_INTERROGATEDB const char *interrogate_type_enum_value_scoped_name(TypeIndex type, int n);
@@ -499,6 +503,7 @@ EXPCL_INTERROGATEDB FunctionIndex interrogate_type_get_cast(TypeIndex type, int
 // list of base classes for this particular type.
 // list of base classes for this particular type.
 EXPCL_INTERROGATEDB int interrogate_type_number_of_derivations(TypeIndex type);
 EXPCL_INTERROGATEDB int interrogate_type_number_of_derivations(TypeIndex type);
 EXPCL_INTERROGATEDB TypeIndex interrogate_type_get_derivation(TypeIndex type, int n);
 EXPCL_INTERROGATEDB TypeIndex interrogate_type_get_derivation(TypeIndex type, int n);
+EXPCL_INTERROGATEDB bool interrogate_type_is_final(TypeIndex type);
 
 
 // For each base class, we might need to define an explicit upcast or downcast
 // For each base class, we might need to define an explicit upcast or downcast
 // operation to convert the pointer to the derived class to an appropriate
 // operation to convert the pointer to the derived class to an appropriate

+ 1 - 1
dtool/src/prc/notifyCategory.I

@@ -49,7 +49,7 @@ set_severity(NotifySeverity severity) {
   _severity = severity;
   _severity = severity;
 #else
 #else
   // enforce the no-debug, no-spam rule.
   // enforce the no-debug, no-spam rule.
-  _severity = std::max(severity, NS_info);
+  _severity = (std::max)(severity, NS_info);
 #endif
 #endif
   invalidate_cache();
   invalidate_cache();
 }
 }

+ 4 - 2
makepanda/makepanda.py

@@ -5023,8 +5023,10 @@ if GetTarget() == 'android' and not PkgSkip("EGL") and not PkgSkip("GLES2"):
 # DIRECTORY: panda/src/tinydisplay/
 # DIRECTORY: panda/src/tinydisplay/
 #
 #
 
 
-if (GetTarget() in ('windows', 'darwin') or not PkgSkip("X11")) and not PkgSkip("TINYDISPLAY"):
+if not PkgSkip("TINYDISPLAY"):
     OPTS=['DIR:panda/src/tinydisplay', 'BUILDING:TINYDISPLAY', 'X11']
     OPTS=['DIR:panda/src/tinydisplay', 'BUILDING:TINYDISPLAY', 'X11']
+    if not PkgSkip("X11"):
+        OPTS += ['X11']
     TargetAdd('p3tinydisplay_composite1.obj', opts=OPTS, input='p3tinydisplay_composite1.cxx')
     TargetAdd('p3tinydisplay_composite1.obj', opts=OPTS, input='p3tinydisplay_composite1.cxx')
     TargetAdd('p3tinydisplay_composite2.obj', opts=OPTS, input='p3tinydisplay_composite2.cxx')
     TargetAdd('p3tinydisplay_composite2.obj', opts=OPTS, input='p3tinydisplay_composite2.cxx')
     TargetAdd('p3tinydisplay_ztriangle_1.obj', opts=OPTS, input='ztriangle_1.cxx')
     TargetAdd('p3tinydisplay_ztriangle_1.obj', opts=OPTS, input='ztriangle_1.cxx')
@@ -5035,7 +5037,7 @@ if (GetTarget() in ('windows', 'darwin') or not PkgSkip("X11")) and not PkgSkip(
     if GetTarget() == 'windows':
     if GetTarget() == 'windows':
         TargetAdd('libp3tinydisplay.dll', input='libp3windisplay.dll')
         TargetAdd('libp3tinydisplay.dll', input='libp3windisplay.dll')
         TargetAdd('libp3tinydisplay.dll', opts=['WINIMM', 'WINGDI', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM'])
         TargetAdd('libp3tinydisplay.dll', opts=['WINIMM', 'WINGDI', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM'])
-    elif GetTarget() != 'darwin':
+    elif GetTarget() != 'darwin' and not PkgSkip("X11"):
         TargetAdd('libp3tinydisplay.dll', input='p3x11display_composite1.obj')
         TargetAdd('libp3tinydisplay.dll', input='p3x11display_composite1.obj')
         TargetAdd('libp3tinydisplay.dll', opts=['X11'])
         TargetAdd('libp3tinydisplay.dll', opts=['X11'])
     TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_composite1.obj')
     TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_composite1.obj')

+ 1 - 1
panda/src/device/inputDevice.I

@@ -344,7 +344,7 @@ is_axis_known(size_t index) const {
 INLINE void InputDevice::
 INLINE void InputDevice::
 set_vibration(double strong, double weak) {
 set_vibration(double strong, double weak) {
   LightMutexHolder holder(_lock);
   LightMutexHolder holder(_lock);
-  do_set_vibration(std::max(std::min(strong, 1.0), 0.0), std::max(std::min(weak, 1.0), 0.0));
+  do_set_vibration((std::max)((std::min)(strong, 1.0), 0.0), (std::max)((std::min)(weak, 1.0), 0.0));
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/display/drawableRegion.I

@@ -242,7 +242,7 @@ INLINE void DrawableRegion::
 update_pixel_factor() {
 update_pixel_factor() {
   PN_stdfloat new_pixel_factor;
   PN_stdfloat new_pixel_factor;
   if (supports_pixel_zoom()) {
   if (supports_pixel_zoom()) {
-    new_pixel_factor = (PN_stdfloat)1 / sqrt(std::max(_pixel_zoom, (PN_stdfloat)1.0));
+    new_pixel_factor = (PN_stdfloat)1 / sqrt((std::max)(_pixel_zoom, (PN_stdfloat)1.0));
   } else {
   } else {
     new_pixel_factor = 1;
     new_pixel_factor = 1;
   }
   }

+ 5 - 4
panda/src/display/frameBufferProperties.I

@@ -57,10 +57,11 @@ get_depth_bits() const {
  */
  */
 INLINE int FrameBufferProperties::
 INLINE int FrameBufferProperties::
 get_color_bits() const {
 get_color_bits() const {
-  return std::max(_property[FBP_color_bits],
-             _property[FBP_red_bits] +
-             _property[FBP_green_bits] +
-             _property[FBP_blue_bits]);
+  return (std::max)(
+    _property[FBP_color_bits],
+    _property[FBP_red_bits] +
+    _property[FBP_green_bits] +
+    _property[FBP_blue_bits]);
 }
 }
 
 
 /**
 /**

+ 12 - 12
panda/src/display/graphicsOutput.I

@@ -167,8 +167,8 @@ get_y_size() const {
  */
  */
 INLINE LVecBase2i GraphicsOutput::
 INLINE LVecBase2i GraphicsOutput::
 get_fb_size() const {
 get_fb_size() const {
-  return LVecBase2i(std::max(int(_size.get_x() * get_pixel_factor()), 1),
-                    std::max(int(_size.get_y() * get_pixel_factor()), 1));
+  return LVecBase2i((std::max)(int(_size.get_x() * get_pixel_factor()), 1),
+                    (std::max)(int(_size.get_y() * get_pixel_factor()), 1));
 }
 }
 
 
 /**
 /**
@@ -178,7 +178,7 @@ get_fb_size() const {
  */
  */
 INLINE int GraphicsOutput::
 INLINE int GraphicsOutput::
 get_fb_x_size() const {
 get_fb_x_size() const {
-  return std::max(int(_size.get_x() * get_pixel_factor()), 1);
+  return (std::max)(int(_size.get_x() * get_pixel_factor()), 1);
 }
 }
 
 
 /**
 /**
@@ -188,7 +188,7 @@ get_fb_x_size() const {
  */
  */
 INLINE int GraphicsOutput::
 INLINE int GraphicsOutput::
 get_fb_y_size() const {
 get_fb_y_size() const {
-  return std::max(int(_size.get_y() * get_pixel_factor()), 1);
+  return (std::max)(int(_size.get_y() * get_pixel_factor()), 1);
 }
 }
 
 
 /**
 /**
@@ -200,8 +200,8 @@ INLINE LVecBase2i GraphicsOutput::
 get_sbs_left_size() const {
 get_sbs_left_size() const {
   PN_stdfloat left_w = _sbs_left_dimensions[1] - _sbs_left_dimensions[0];
   PN_stdfloat left_w = _sbs_left_dimensions[1] - _sbs_left_dimensions[0];
   PN_stdfloat left_h = _sbs_left_dimensions[3] - _sbs_left_dimensions[2];
   PN_stdfloat left_h = _sbs_left_dimensions[3] - _sbs_left_dimensions[2];
-  return LVecBase2i(std::max(int(_size.get_x() * left_w), 1),
-                    std::max(int(_size.get_y() * left_h), 1));
+  return LVecBase2i((std::max)(int(_size.get_x() * left_w), 1),
+                    (std::max)(int(_size.get_y() * left_h), 1));
 }
 }
 
 
 /**
 /**
@@ -212,7 +212,7 @@ get_sbs_left_size() const {
 INLINE int GraphicsOutput::
 INLINE int GraphicsOutput::
 get_sbs_left_x_size() const {
 get_sbs_left_x_size() const {
   PN_stdfloat left_w = _sbs_left_dimensions[1] - _sbs_left_dimensions[0];
   PN_stdfloat left_w = _sbs_left_dimensions[1] - _sbs_left_dimensions[0];
-  return std::max(int(_size.get_x() * left_w), 1);
+  return (std::max)(int(_size.get_x() * left_w), 1);
 }
 }
 
 
 /**
 /**
@@ -223,7 +223,7 @@ get_sbs_left_x_size() const {
 INLINE int GraphicsOutput::
 INLINE int GraphicsOutput::
 get_sbs_left_y_size() const {
 get_sbs_left_y_size() const {
   PN_stdfloat left_h = _sbs_left_dimensions[3] - _sbs_left_dimensions[2];
   PN_stdfloat left_h = _sbs_left_dimensions[3] - _sbs_left_dimensions[2];
-  return std::max(int(_size.get_y() * left_h), 1);
+  return (std::max)(int(_size.get_y() * left_h), 1);
 }
 }
 
 
 /**
 /**
@@ -235,8 +235,8 @@ INLINE LVecBase2i GraphicsOutput::
 get_sbs_right_size() const {
 get_sbs_right_size() const {
   PN_stdfloat right_w = _sbs_right_dimensions[1] - _sbs_right_dimensions[0];
   PN_stdfloat right_w = _sbs_right_dimensions[1] - _sbs_right_dimensions[0];
   PN_stdfloat right_h = _sbs_right_dimensions[3] - _sbs_right_dimensions[2];
   PN_stdfloat right_h = _sbs_right_dimensions[3] - _sbs_right_dimensions[2];
-  return LVecBase2i(std::max(int(_size.get_x() * right_w), 1),
-                    std::max(int(_size.get_y() * right_h), 1));
+  return LVecBase2i((std::max)(int(_size.get_x() * right_w), 1),
+                    (std::max)(int(_size.get_y() * right_h), 1));
 }
 }
 
 
 /**
 /**
@@ -247,7 +247,7 @@ get_sbs_right_size() const {
 INLINE int GraphicsOutput::
 INLINE int GraphicsOutput::
 get_sbs_right_x_size() const {
 get_sbs_right_x_size() const {
   PN_stdfloat right_w = _sbs_right_dimensions[1] - _sbs_right_dimensions[0];
   PN_stdfloat right_w = _sbs_right_dimensions[1] - _sbs_right_dimensions[0];
-  return std::max(int(_size.get_x() * right_w), 1);
+  return (std::max)(int(_size.get_x() * right_w), 1);
 }
 }
 
 
 /**
 /**
@@ -258,7 +258,7 @@ get_sbs_right_x_size() const {
 INLINE int GraphicsOutput::
 INLINE int GraphicsOutput::
 get_sbs_right_y_size() const {
 get_sbs_right_y_size() const {
   PN_stdfloat right_h = _sbs_right_dimensions[3] - _sbs_right_dimensions[2];
   PN_stdfloat right_h = _sbs_right_dimensions[3] - _sbs_right_dimensions[2];
-  return std::max(int(_size.get_y() * right_h), 1);
+  return (std::max)(int(_size.get_y() * right_h), 1);
 }
 }
 
 
 /**
 /**

+ 2 - 2
panda/src/display/graphicsStateGuardian.I

@@ -258,7 +258,7 @@ get_max_vertices_per_primitive() const {
 INLINE int GraphicsStateGuardian::
 INLINE int GraphicsStateGuardian::
 get_max_texture_stages() const {
 get_max_texture_stages() const {
   if (max_texture_stages > 0) {
   if (max_texture_stages > 0) {
-    return std::min(_max_texture_stages, (int)max_texture_stages);
+    return (std::min)(_max_texture_stages, (int)max_texture_stages);
   }
   }
   return _max_texture_stages;
   return _max_texture_stages;
 }
 }
@@ -695,7 +695,7 @@ get_timer_queries_active() const {
 INLINE int GraphicsStateGuardian::
 INLINE int GraphicsStateGuardian::
 get_max_color_targets() const {
 get_max_color_targets() const {
   if (max_color_targets > 0) {
   if (max_color_targets > 0) {
-    return std::min(_max_color_targets, (int)max_color_targets);
+    return (std::min)(_max_color_targets, (int)max_color_targets);
   }
   }
   return _max_color_targets;
   return _max_color_targets;
 }
 }

+ 1 - 1
panda/src/egg/eggMesherEdge.I

@@ -46,7 +46,7 @@ matches(const EggMesherEdge &other) const {
  */
  */
 INLINE EggMesherEdge *EggMesherEdge::
 INLINE EggMesherEdge *EggMesherEdge::
 common_ptr() {
 common_ptr() {
-  return std::min(this, _opposite);
+  return (std::min)(this, _opposite);
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/express/multifile.I

@@ -431,6 +431,6 @@ is_cert_special() const {
  */
  */
 INLINE std::streampos Multifile::Subfile::
 INLINE std::streampos Multifile::Subfile::
 get_last_byte_pos() const {
 get_last_byte_pos() const {
-  return std::max(_index_start + (std::streampos)_index_length,
+  return (std::max)(_index_start + (std::streampos)_index_length,
              _data_start + (std::streampos)_data_length) - (std::streampos)1;
              _data_start + (std::streampos)_data_length) - (std::streampos)1;
 }
 }

+ 6 - 6
panda/src/express/pointerToArray.I

@@ -471,9 +471,9 @@ set_data(const std::string &data) {
 template<class Element>
 template<class Element>
 INLINE std::string PointerToArray<Element>::
 INLINE std::string PointerToArray<Element>::
 get_subdata(size_type n, size_type count) const {
 get_subdata(size_type n, size_type count) const {
-  n = std::min(n, size());
-  count = std::max(count, n);
-  count = std::min(count, size() - n);
+  n = (std::min)(n, size());
+  count = (std::max)(count, n);
+  count = (std::min)(count, size() - n);
   return std::string((const char *)(p() + n), sizeof(Element) * count);
   return std::string((const char *)(p() + n), sizeof(Element) * count);
 }
 }
 
 
@@ -965,9 +965,9 @@ get_data() const {
 template<class Element>
 template<class Element>
 INLINE std::string ConstPointerToArray<Element>::
 INLINE std::string ConstPointerToArray<Element>::
 get_subdata(size_type n, size_type count) const {
 get_subdata(size_type n, size_type count) const {
-  n = std::min(n, size());
-  count = std::max(count, n);
-  count = std::min(count, size() - n);
+  n = (std::min)(n, size());
+  count = (std::max)(count, n);
+  count = (std::min)(count, size() - n);
   return std::string((const char *)(p() + n), sizeof(Element) * count);
   return std::string((const char *)(p() + n), sizeof(Element) * count);
 }
 }
 
 

+ 6 - 6
panda/src/express/pointerToArray_ext.I

@@ -213,9 +213,9 @@ set_data(PyObject *data) {
 template<class Element>
 template<class Element>
 INLINE PyObject *Extension<PointerToArray<Element> >::
 INLINE PyObject *Extension<PointerToArray<Element> >::
 get_subdata(size_t n, size_t count) const {
 get_subdata(size_t n, size_t count) const {
-  n = std::min(n, this->_this->size());
-  count = std::max(count, n);
-  count = std::min(count, this->_this->size() - n);
+  n = (std::min)(n, this->_this->size());
+  count = (std::max)(count, n);
+  count = (std::min)(count, this->_this->size() - n);
   return PyBytes_FromStringAndSize((char *)(this->_this->p() + n), sizeof(Element) * count);
   return PyBytes_FromStringAndSize((char *)(this->_this->p() + n), sizeof(Element) * count);
 }
 }
 
 
@@ -269,9 +269,9 @@ get_data() const {
 template<class Element>
 template<class Element>
 INLINE PyObject *Extension<ConstPointerToArray<Element> >::
 INLINE PyObject *Extension<ConstPointerToArray<Element> >::
 get_subdata(size_t n, size_t count) const {
 get_subdata(size_t n, size_t count) const {
-  n = std::min(n, this->_this->size());
-  count = std::max(count, n);
-  count = std::min(count, this->_this->size() - n);
+  n = (std::min)(n, this->_this->size());
+  count = (std::max)(count, n);
+  count = (std::min)(count, this->_this->size() - n);
   return PyBytes_FromStringAndSize((char *)(this->_this->p() + n), sizeof(Element) * count);
   return PyBytes_FromStringAndSize((char *)(this->_this->p() + n), sizeof(Element) * count);
 }
 }
 
 

+ 25 - 2
panda/src/glstuff/glGraphicsBuffer_src.cxx

@@ -855,6 +855,26 @@ bind_slot(int layer, bool rb_resize, Texture **attach, RenderTexturePlane slot,
         gl_format = GL_DEPTH_COMPONENT16;
         gl_format = GL_DEPTH_COMPONENT16;
       }
       }
       break;
       break;
+#ifndef OPENGLES_1
+    case RTP_aux_hrgba_0:
+    case RTP_aux_hrgba_1:
+    case RTP_aux_hrgba_2:
+    case RTP_aux_hrgba_3:
+    case RTP_aux_float_0:
+    case RTP_aux_float_1:
+    case RTP_aux_float_2:
+    case RTP_aux_float_3:
+      if (glgsg->has_extension("GL_EXT_color_buffer_float")) {
+        if (slot >= RTP_aux_float_0 && slot <= RTP_aux_float_3) {
+          gl_format = GL_RGBA32F;
+        } else {
+          gl_format = GL_RGBA16F;
+        }
+      }
+      else if (glgsg->has_extension("GL_EXT_color_buffer_half_float")) {
+        gl_format = GL_RGBA16F_EXT;
+      }
+#endif
     // NB: we currently use RTP_stencil to store the right eye for stereo.
     // NB: we currently use RTP_stencil to store the right eye for stereo.
     // case RTP_stencil: gl_format = GL_STENCIL_INDEX8; break
     // case RTP_stencil: gl_format = GL_STENCIL_INDEX8; break
     default:
     default:
@@ -912,9 +932,12 @@ bind_slot(int layer, bool rb_resize, Texture **attach, RenderTexturePlane slot,
         }
         }
 #ifndef OPENGLES_1
 #ifndef OPENGLES_1
       } else if (_fb_properties.get_float_color() &&
       } else if (_fb_properties.get_float_color() &&
-                 _fb_properties.get_color_bits() > 16 * 3 &&
                  glgsg->has_extension("GL_EXT_color_buffer_float")) {
                  glgsg->has_extension("GL_EXT_color_buffer_float")) {
-        gl_format = GL_RGBA32F_EXT;
+        if (_fb_properties.get_color_bits() > 16 * 3) {
+          gl_format = GL_RGBA32F;
+        } else {
+          gl_format = GL_RGBA16F;
+        }
       } else if (_fb_properties.get_float_color() &&
       } else if (_fb_properties.get_float_color() &&
                  glgsg->has_extension("GL_EXT_color_buffer_half_float")) {
                  glgsg->has_extension("GL_EXT_color_buffer_half_float")) {
         gl_format = GL_RGBA16F_EXT;
         gl_format = GL_RGBA16F_EXT;

+ 2 - 2
panda/src/gobj/geomVertexArrayData.I

@@ -535,8 +535,8 @@ get_data() const {
 INLINE vector_uchar GeomVertexArrayDataHandle::
 INLINE vector_uchar GeomVertexArrayDataHandle::
 get_subdata(size_t start, size_t size) const {
 get_subdata(size_t start, size_t size) const {
   mark_used();
   mark_used();
-  start = std::min(start, _cdata->_buffer.get_size());
-  size = std::min(size, _cdata->_buffer.get_size() - start);
+  start = (std::min)(start, _cdata->_buffer.get_size());
+  size = (std::min)(size, _cdata->_buffer.get_size() - start);
   const unsigned char *ptr = _cdata->_buffer.get_read_pointer(true) + start;
   const unsigned char *ptr = _cdata->_buffer.get_read_pointer(true) + start;
   return vector_uchar(ptr, ptr + size);
   return vector_uchar(ptr, ptr + size);
 }
 }

+ 2 - 2
panda/src/gobj/geomVertexWriter.I

@@ -1383,13 +1383,13 @@ inc_add_pointer() {
       _handle = nullptr;
       _handle = nullptr;
       GeomVertexDataPipelineWriter writer(_vertex_data, true, _current_thread);
       GeomVertexDataPipelineWriter writer(_vertex_data, true, _current_thread);
       writer.check_array_writers();
       writer.check_array_writers();
-      writer.set_num_rows(std::max(write_row + 1, writer.get_num_rows()));
+      writer.set_num_rows((std::max)(write_row + 1, writer.get_num_rows()));
       _handle = writer.get_array_writer(_array);
       _handle = writer.get_array_writer(_array);
 
 
     } else {
     } else {
       // Otherwise, we can get away with modifying only the one array we're
       // Otherwise, we can get away with modifying only the one array we're
       // using.
       // using.
-      _handle->set_num_rows(std::max(write_row + 1, _handle->get_num_rows()));
+      _handle->set_num_rows((std::max)(write_row + 1, _handle->get_num_rows()));
     }
     }
 
 
     set_pointer(write_row);
     set_pointer(write_row);

+ 1 - 1
panda/src/gobj/paramTexture.I

@@ -55,7 +55,7 @@ INLINE ParamTextureImage::
 ParamTextureImage(Texture *tex, bool read, bool write, int z, int n) :
 ParamTextureImage(Texture *tex, bool read, bool write, int z, int n) :
   _texture(tex),
   _texture(tex),
   _access(0),
   _access(0),
-  _bind_level(std::min(n, 127)),
+  _bind_level((std::min)(n, 127)),
   _bind_layer(z)
   _bind_layer(z)
 {
 {
   if (read) {
   if (read) {

+ 1 - 1
panda/src/gobj/textureContext.I

@@ -122,7 +122,7 @@ mark_loaded() {
   // _data_size_bytes = _data->get_texture_size_bytes();
   // _data_size_bytes = _data->get_texture_size_bytes();
   _properties_modified = get_texture()->get_properties_modified();
   _properties_modified = get_texture()->get_properties_modified();
   _image_modified = get_texture()->get_image_modified();
   _image_modified = get_texture()->get_image_modified();
-  update_modified(std::max(_properties_modified, _image_modified));
+  update_modified((std::max)(_properties_modified, _image_modified));
 
 
   // Assume the texture is now resident.
   // Assume the texture is now resident.
   set_resident(true);
   set_resident(true);

+ 2 - 2
panda/src/grutil/geoMipTerrain.I

@@ -483,8 +483,8 @@ get_border_stitching() {
  */
  */
 INLINE double GeoMipTerrain::
 INLINE double GeoMipTerrain::
 get_pixel_value(int x, int y) {
 get_pixel_value(int x, int y) {
-  x = std::max(std::min(x,int(_xsize-1)),0);
-  y = std::max(std::min(y,int(_ysize-1)),0);
+  x = (std::max)((std::min)(x,int(_xsize-1)),0);
+  y = (std::max)((std::min)(y,int(_ysize-1)),0);
   if (_heightfield.is_grayscale()) {
   if (_heightfield.is_grayscale()) {
     return double(_heightfield.get_bright(x, y));
     return double(_heightfield.get_bright(x, y));
   } else {
   } else {

+ 2 - 2
panda/src/linmath/lvector3_src.I

@@ -183,10 +183,10 @@ angle_rad(const FLOATNAME(LVector3) &other) const {
   // poorly as dot(other) approaches 1.0.
   // poorly as dot(other) approaches 1.0.
   if (dot(other) < 0.0f) {
   if (dot(other) < 0.0f) {
     FLOATTYPE a = ((*this)+other).length() / 2.0f;
     FLOATTYPE a = ((*this)+other).length() / 2.0f;
-    return MathNumbers::cpi((FLOATTYPE)0.0f) - 2.0f * casin(std::min(a, (FLOATTYPE)1.0));
+    return MathNumbers::cpi((FLOATTYPE)0.0f) - 2.0f * casin((std::min)(a, (FLOATTYPE)1.0));
   } else {
   } else {
     FLOATTYPE a = ((*this)-other).length() / 2.0f;
     FLOATTYPE a = ((*this)-other).length() / 2.0f;
-    return 2.0f * casin(std::min(a, (FLOATTYPE)1.0));
+    return 2.0f * casin((std::min)(a, (FLOATTYPE)1.0));
   }
   }
 }
 }
 
 

+ 1 - 1
panda/src/parametrics/nurbsBasisVector.I

@@ -110,5 +110,5 @@ scale_t(int segment, PN_stdfloat t) const {
   PN_stdfloat from = _segments[segment]._from;
   PN_stdfloat from = _segments[segment]._from;
   PN_stdfloat to = _segments[segment]._to;
   PN_stdfloat to = _segments[segment]._to;
   t = (t - from) / (to - from);
   t = (t - from) / (to - from);
-  return std::min(std::max(t, (PN_stdfloat)0.0), (PN_stdfloat)1.0);
+  return (std::min)((std::max)(t, (PN_stdfloat)0.0), (PN_stdfloat)1.0);
 }
 }

+ 1 - 1
panda/src/parametrics/parametricCurveCollection.I

@@ -42,7 +42,7 @@ get_curve(int index) const {
  */
  */
 INLINE void ParametricCurveCollection::
 INLINE void ParametricCurveCollection::
 add_curve(ParametricCurve *curve, int index) {
 add_curve(ParametricCurve *curve, int index) {
-  insert_curve(std::max(index, 0), curve);
+  insert_curve((std::max)(index, 0), curve);
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/particlesystem/baseParticleRenderer.I

@@ -97,7 +97,7 @@ get_cur_alpha(BaseParticle* bp) {
     return bp->get_parameterized_age();
     return bp->get_parameterized_age();
 
 
   case PR_ALPHA_IN_OUT:
   case PR_ALPHA_IN_OUT:
-    return 2.0 * std::min(bp->get_parameterized_age(),
+    return 2.0 * (std::min)(bp->get_parameterized_age(),
                      1.0f - bp->get_parameterized_age());
                      1.0f - bp->get_parameterized_age());
 
 
   case PR_ALPHA_USER:
   case PR_ALPHA_USER:

+ 1 - 1
panda/src/pgui/pgEntry.I

@@ -558,7 +558,7 @@ set_wtext(const std::wstring &wtext) {
     update_text();
     update_text();
   }
   }
 #endif
 #endif
-  set_cursor_position(std::min(_cursor_position, _text.get_num_characters()));
+  set_cursor_position((std::min)(_cursor_position, _text.get_num_characters()));
   return ret;
   return ret;
 }
 }
 
 

+ 1 - 1
panda/src/pgui/pgSliderBar.I

@@ -381,7 +381,7 @@ get_adjust_event() const {
  */
  */
 INLINE void PGSliderBar::
 INLINE void PGSliderBar::
 internal_set_ratio(PN_stdfloat ratio) {
 internal_set_ratio(PN_stdfloat ratio) {
-  _ratio = std::max(std::min(ratio, (PN_stdfloat)1.0), (PN_stdfloat)0.0);
+  _ratio = (std::max)((std::min)(ratio, (PN_stdfloat)1.0), (PN_stdfloat)0.0);
   _needs_reposition = true;
   _needs_reposition = true;
   adjust();
   adjust();
 }
 }

+ 1 - 1
panda/src/pipeline/pipeline.I

@@ -27,7 +27,7 @@ get_render_pipeline() {
  */
  */
 INLINE void Pipeline::
 INLINE void Pipeline::
 set_min_stages(int min_stages) {
 set_min_stages(int min_stages) {
-  set_num_stages(std::max(min_stages, get_num_stages()));
+  set_num_stages((std::max)(min_stages, get_num_stages()));
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/pipeline/thread.I

@@ -75,7 +75,7 @@ get_pipeline_stage() const {
  */
  */
 INLINE void Thread::
 INLINE void Thread::
 set_min_pipeline_stage(int min_pipeline_stage) {
 set_min_pipeline_stage(int min_pipeline_stage) {
-  set_pipeline_stage(std::max(_pipeline_stage, min_pipeline_stage));
+  set_pipeline_stage((std::max)(_pipeline_stage, min_pipeline_stage));
 }
 }
 
 
 /**
 /**

+ 4 - 4
panda/src/pnmimage/convert_srgb.I

@@ -44,8 +44,8 @@ INLINE unsigned char decode_sRGB_uchar(unsigned char val) {
  */
  */
 INLINE unsigned char decode_sRGB_uchar(float val) {
 INLINE unsigned char decode_sRGB_uchar(float val) {
   return (val <= 0.04045f)
   return (val <= 0.04045f)
-    ? (unsigned char)(std::max(0.f, val) * (255.f / 12.92f) + 0.5f)
-    : (unsigned char)(cpow((std::min(val, 1.f) + 0.055f) * (1.f / 1.055f), 2.4f) * 255.f + 0.5f);
+    ? (unsigned char)((std::max)(0.f, val) * (255.f / 12.92f) + 0.5f)
+    : (unsigned char)(cpow(((std::min)(val, 1.f) + 0.055f) * (1.f / 1.055f), 2.4f) * 255.f + 0.5f);
 }
 }
 
 
 /**
 /**
@@ -99,8 +99,8 @@ encode_sRGB_uchar(float val) {
   return encode_sRGB_uchar_sse2(val);
   return encode_sRGB_uchar_sse2(val);
 #else
 #else
   return (val < 0.0031308f)
   return (val < 0.0031308f)
-    ? (unsigned char) (std::max(0.f, val) * 3294.6f + 0.5f)
-    : (unsigned char) (269.025f * cpow(std::min(val, 1.f), 0.41666f) - 13.525f);
+    ? (unsigned char) ((std::max)(0.f, val) * 3294.6f + 0.5f)
+    : (unsigned char) (269.025f * cpow((std::min)(val, 1.f), 0.41666f) - 13.525f);
 #endif
 #endif
 }
 }
 
 

+ 4 - 4
panda/src/pnmimage/pfmFile.I

@@ -587,12 +587,12 @@ setup_sub_image(const PfmFile &copy, int &xto, int &yto,
     yto = 0;
     yto = 0;
   }
   }
 
 
-  x_size = std::min(x_size, copy.get_x_size() - xfrom);
-  y_size = std::min(y_size, copy.get_y_size() - yfrom);
+  x_size = (std::min)(x_size, copy.get_x_size() - xfrom);
+  y_size = (std::min)(y_size, copy.get_y_size() - yfrom);
 
 
   xmin = xto;
   xmin = xto;
   ymin = yto;
   ymin = yto;
 
 
-  xmax = std::min(xmin + x_size, get_x_size());
-  ymax = std::min(ymin + y_size, get_y_size());
+  xmax = (std::min)(xmin + x_size, get_x_size());
+  ymax = (std::min)(ymin + y_size, get_y_size());
 }
 }

+ 18 - 18
panda/src/pnmimage/pnmImage.I

@@ -68,7 +68,7 @@ INLINE PNMImage::
  */
  */
 INLINE xelval PNMImage::
 INLINE xelval PNMImage::
 clamp_val(int input_value) const {
 clamp_val(int input_value) const {
-  return (xelval)std::min(std::max(0, input_value), (int)get_maxval());
+  return (xelval)(std::min)((std::max)(0, input_value), (int)get_maxval());
 }
 }
 
 
 /**
 /**
@@ -113,9 +113,9 @@ to_val(const LRGBColorf &value) const {
   case XE_scRGB_alpha:
   case XE_scRGB_alpha:
     {
     {
       LRGBColorf scaled = value * 8192.f + 4096.5f;
       LRGBColorf scaled = value * 8192.f + 4096.5f;
-      col.r = std::min(std::max(0, (int)scaled[0]), 65535);
-      col.g = std::min(std::max(0, (int)scaled[1]), 65535);
-      col.b = std::min(std::max(0, (int)scaled[2]), 65535);
+      col.r = (std::min)((std::max)(0, (int)scaled[0]), 65535);
+      col.g = (std::min)((std::max)(0, (int)scaled[1]), 65535);
+      col.b = (std::min)((std::max)(0, (int)scaled[2]), 65535);
     }
     }
     break;
     break;
   }
   }
@@ -131,7 +131,7 @@ to_val(float input_value) const {
   switch (_xel_encoding) {
   switch (_xel_encoding) {
   case XE_generic:
   case XE_generic:
   case XE_generic_alpha:
   case XE_generic_alpha:
-    return (int)(std::min(1.0f, std::max(0.0f, input_value)) * get_maxval() + 0.5f);
+    return (int)((std::min)(1.0f, (std::max)(0.0f, input_value)) * get_maxval() + 0.5f);
 
 
   case XE_generic_sRGB:
   case XE_generic_sRGB:
   case XE_generic_sRGB_alpha:
   case XE_generic_sRGB_alpha:
@@ -148,7 +148,7 @@ to_val(float input_value) const {
 
 
   case XE_scRGB:
   case XE_scRGB:
   case XE_scRGB_alpha:
   case XE_scRGB_alpha:
-    return std::min(std::max(0, (int)((8192 * input_value) + 4096.5f)), 65535);
+    return (std::min)((std::max)(0, (int)((8192 * input_value) + 4096.5f)), 65535);
 
 
   default:
   default:
     return 0;
     return 0;
@@ -210,7 +210,7 @@ from_val(xelval input_value) const {
   switch (_xel_encoding) {
   switch (_xel_encoding) {
   case XE_generic:
   case XE_generic:
   case XE_generic_alpha:
   case XE_generic_alpha:
-    return std::min((float)input_value * _inv_maxval, 1.0f);
+    return (std::min)((float)input_value * _inv_maxval, 1.0f);
 
 
   case XE_generic_sRGB:
   case XE_generic_sRGB:
   case XE_generic_sRGB_alpha:
   case XE_generic_sRGB_alpha:
@@ -735,19 +735,19 @@ set_xel_a(int x, int y, const LColorf &value) {
   case XE_scRGB:
   case XE_scRGB:
     {
     {
       LColorf scaled = value * 8192.0f + 4096.5f;
       LColorf scaled = value * 8192.0f + 4096.5f;
-      col.r = std::min(std::max(0, (int)scaled[0]), 65535);
-      col.g = std::min(std::max(0, (int)scaled[1]), 65535);
-      col.b = std::min(std::max(0, (int)scaled[2]), 65535);
+      col.r = (std::min)((std::max)(0, (int)scaled[0]), 65535);
+      col.g = (std::min)((std::max)(0, (int)scaled[1]), 65535);
+      col.b = (std::min)((std::max)(0, (int)scaled[2]), 65535);
     }
     }
     break;
     break;
 
 
   case XE_scRGB_alpha:
   case XE_scRGB_alpha:
     {
     {
       LColorf scaled = value * 8192.0f + 4096.5f;
       LColorf scaled = value * 8192.0f + 4096.5f;
-      col.r = std::min(std::max(0, (int)scaled[0]), 65535);
-      col.g = std::min(std::max(0, (int)scaled[1]), 65535);
-      col.b = std::min(std::max(0, (int)scaled[2]), 65535);
-      alpha_row(y)[x] = std::min(std::max(0, (int)(value[3] * 65535 + 0.5f)), 65535);
+      col.r = (std::min)((std::max)(0, (int)scaled[0]), 65535);
+      col.g = (std::min)((std::max)(0, (int)scaled[1]), 65535);
+      col.b = (std::min)((std::max)(0, (int)scaled[2]), 65535);
+      alpha_row(y)[x] = (std::min)((std::max)(0, (int)(value[3] * 65535 + 0.5f)), 65535);
     }
     }
     break;
     break;
   }
   }
@@ -1224,14 +1224,14 @@ setup_sub_image(const PNMImage &copy, int &xto, int &yto,
     yto = 0;
     yto = 0;
   }
   }
 
 
-  x_size = std::min(x_size, copy.get_x_size() - xfrom);
-  y_size = std::min(y_size, copy.get_y_size() - yfrom);
+  x_size = (std::min)(x_size, copy.get_x_size() - xfrom);
+  y_size = (std::min)(y_size, copy.get_y_size() - yfrom);
 
 
   xmin = xto;
   xmin = xto;
   ymin = yto;
   ymin = yto;
 
 
-  xmax = std::min(xmin + x_size, get_x_size());
-  ymax = std::min(ymin + y_size, get_y_size());
+  xmax = (std::min)(xmin + x_size, get_x_size());
+  ymax = (std::min)(ymin + y_size, get_y_size());
 }
 }
 
 
 /**
 /**

+ 1 - 1
panda/src/putil/clockObject.I

@@ -110,7 +110,7 @@ INLINE double ClockObject::
 get_dt(Thread *current_thread) const {
 get_dt(Thread *current_thread) const {
   CDReader cdata(_cycler, current_thread);
   CDReader cdata(_cycler, current_thread);
   if (_max_dt > 0.0) {
   if (_max_dt > 0.0) {
-    return std::min(_max_dt, cdata->_dt);
+    return (std::min)(_max_dt, cdata->_dt);
   }
   }
   return cdata->_dt;
   return cdata->_dt;
 }
 }

+ 4 - 4
pandatool/src/pstatserver/pStatTimeline.I

@@ -18,7 +18,7 @@
 INLINE void PStatTimeline::
 INLINE void PStatTimeline::
 set_horizontal_scale(double time_width) {
 set_horizontal_scale(double time_width) {
   double max_time_width = (_highest_end_time - _lowest_start_time) * 2.0;
   double max_time_width = (_highest_end_time - _lowest_start_time) * 2.0;
-  time_width = std::min(time_width, max_time_width);
+  time_width = (std::min)(time_width, max_time_width);
 
 
   double scale = time_width / get_xsize();
   double scale = time_width / get_xsize();
   if (_time_scale != scale) {
   if (_time_scale != scale) {
@@ -44,7 +44,7 @@ get_horizontal_scale() const {
  */
  */
 INLINE void PStatTimeline::
 INLINE void PStatTimeline::
 set_horizontal_scroll(double start_time) {
 set_horizontal_scroll(double start_time) {
-  start_time = std::max(std::min(start_time, _highest_end_time), _lowest_start_time);
+  start_time = (std::max)((std::min)(start_time, _highest_end_time), _lowest_start_time);
   if (_start_time != start_time) {
   if (_start_time != start_time) {
     _start_time = start_time;
     _start_time = start_time;
     _target_start_time = start_time;
     _target_start_time = start_time;
@@ -71,7 +71,7 @@ zoom_to(double time_width, double center) {
   // Don't allow zooming out to beyond 2x the size of the entire timeline.
   // Don't allow zooming out to beyond 2x the size of the entire timeline.
   // There's a limit of zooming beyond 1 ns per bar, there's just no point...
   // There's a limit of zooming beyond 1 ns per bar, there's just no point...
   double max_time_width = (_highest_end_time - _lowest_start_time) * 2.0;
   double max_time_width = (_highest_end_time - _lowest_start_time) * 2.0;
-  time_width = std::min(std::max(1e-7, time_width), max_time_width);
+  time_width = (std::min)((std::max)(1e-7, time_width), max_time_width);
   _target_time_scale = time_width / get_xsize();
   _target_time_scale = time_width / get_xsize();
   _zoom_center = center;
   _zoom_center = center;
 
 
@@ -93,7 +93,7 @@ zoom_by(double amount, double center) {
  */
  */
 INLINE void PStatTimeline::
 INLINE void PStatTimeline::
 scroll_to(double start_time) {
 scroll_to(double start_time) {
-  _target_start_time = std::max(std::min(start_time, _highest_end_time), _lowest_start_time);
+  _target_start_time = (std::max)((std::min)(start_time, _highest_end_time), _lowest_start_time);
 }
 }
 
 
 /**
 /**

Some files were not shown because too many files changed in this diff