]> git.cworth.org Git - apitrace/blobdiff - image/image.hpp
cli: Don't use the DLL injection method for OpenGL on Windows 8.
[apitrace] / image / image.hpp
index e36bdd0a2c174560dca1643da738adae1c3cdcbd..8e6b51fdf6758cfa0eb7fab43d34caa52d6d2412 100644 (file)
@@ -49,6 +49,7 @@ public:
     unsigned height;
     unsigned channels;
     ChannelType channelType;
+    unsigned bytesPerChannel;
     unsigned bytesPerPixel;
 
     // Flipped vertically or not
@@ -62,9 +63,10 @@ public:
         height(h),
         channels(c),
         channelType(t),
-        bytesPerPixel(channels * (t == TYPE_FLOAT ? 4 : 1)),
+        bytesPerChannel(t == TYPE_FLOAT ? 4 : 1),
+        bytesPerPixel(channels * bytesPerChannel),
         flipped(f),
-        pixels(new unsigned char[h*w*c])
+        pixels(new unsigned char[h*w*bytesPerPixel])
     {}
 
     inline ~Image() {
@@ -126,8 +128,20 @@ readPNG(std::istream &is);
 Image *
 readPNG(const char *filename);
 
+
+struct PNMInfo
+{
+    unsigned width;
+    unsigned height;
+    unsigned channels;
+    ChannelType channelType;
+};
+
 const char *
-readPNMHeader(const char *buffer, size_t size, unsigned *channels, unsigned *width, unsigned *height);
+readPNMHeader(const char *buffer, size_t size, PNMInfo &info);
+
+Image *
+readPNM(const char *buffer, size_t bufferSize);
 
 
 } /* namespace image */