diff --git a/src/nvimage/CMakeLists.txt b/src/nvimage/CMakeLists.txt index 10544ee..861016f 100644 --- a/src/nvimage/CMakeLists.txt +++ b/src/nvimage/CMakeLists.txt @@ -25,7 +25,9 @@ SET(IMAGE_SRCS NormalMap.h NormalMap.cpp NormalMipmap.h - NormalMipmap.cpp) + NormalMipmap.cpp + PsdFile.h + TgaFile.h) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/src/nvimage/ImageIO.cpp b/src/nvimage/ImageIO.cpp index a28e239..b7e96c7 100644 --- a/src/nvimage/ImageIO.cpp +++ b/src/nvimage/ImageIO.cpp @@ -76,6 +76,9 @@ Image * nv::ImageIO::load(const char * name, Stream & s) return loadPNG(s); } #endif + if (strCaseCmp(extension, ".psd") == 0) { + return loadPSD(s); + } // @@ use image plugins? return NULL; @@ -323,16 +326,20 @@ Image * nv::ImageIO::loadPSD(Stream & s) nvCheck(!s.isError()); nvCheck(s.isLoading()); + s.setByteOrder(Stream::BigEndian); + PsdHeader header; s << header; if (!header.isValid()) { + printf("invalid header!\n"); return NULL; } if (!header.isSupported()) { + printf("unsupported file!\n"); return NULL; } diff --git a/src/nvimage/PsdFile.h b/src/nvimage/PsdFile.h index ecdecbc..b5d7a11 100644 --- a/src/nvimage/PsdFile.h +++ b/src/nvimage/PsdFile.h @@ -33,12 +33,13 @@ namespace nv bool isValid() const { - return signature == 0x38425053; // '8BPS' + return signature == 0x38425053; // 38425053; // '8BPS' } bool isSupported() const { if (version != 1) { + printf("*** bad version number %u\n", version); return false; } if (channel_count > 4) {