浏览代码

Compile fixes for older OpenEXR versions

rdb 9 年之前
父节点
当前提交
a898911a5c
共有 2 个文件被更改,包括 11 次插入2 次删除
  1. 6 1
      panda/src/pnmimagetypes/pnmFileTypeEXR.cxx
  2. 5 1
      panda/src/pnmimagetypes/pnmFileTypeEXR.h

+ 6 - 1
panda/src/pnmimagetypes/pnmFileTypeEXR.cxx

@@ -24,6 +24,11 @@
 #include <ImfOutputFile.h>
 #include <ImfChannelList.h>
 #include <ImfVersion.h>
+#include <ImfIO.h>
+
+#ifndef IMATH_NAMESPACE
+#define IMATH_NAMESPACE Imath
+#endif
 
 TypeHandle PNMFileTypeEXR::_type_handle;
 
@@ -214,7 +219,7 @@ Reader(PNMFileType *type, istream *file, bool owns_file, string magic_number) :
   const char *possible_channel_names[] = { "R", "G", "B", "Y", "A", NULL };
   for (const char **pni = possible_channel_names; *pni != NULL; ++pni) {
     std::string name = *pni;
-    IMF::ChannelList::ConstIterator ci = channels.find(name);
+    IMF::ChannelList::ConstIterator ci = channels.find(name.c_str());
     if (ci != channels.end()) {
       // Found a match.
       if (name == "Y" && !_channel_names.empty()) {

+ 5 - 1
panda/src/pnmimagetypes/pnmFileTypeEXR.h

@@ -23,9 +23,13 @@
 #include "pnmWriter.h"
 
 #include <ImfInputFile.h>
-#include <ImfNamespace.h>
+#include <OpenEXRConfig.h>
 
+#ifdef OPENEXR_IMF_NAMESPACE
 namespace IMF = OPENEXR_IMF_NAMESPACE;
+#else
+namespace IMF = Imf;
+#endif
 
 class ImfStdIstream;