Add missing file image_format.h, and add grayscale support.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 5 Oct 2012 22:42:32 +0000 (00:42 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 5 Oct 2012 22:42:32 +0000 (00:42 +0200)
image_format.h [new file with mode: 0644]
input.cpp

diff --git a/image_format.h b/image_format.h
new file mode 100644 (file)
index 0000000..346cdef
--- /dev/null
@@ -0,0 +1,26 @@
+#ifndef _IMAGE_FORMAT_H
+#define _IMAGE_FORMAT_H 1
+
+enum MovitPixelFormat { FORMAT_RGB, FORMAT_RGBA, FORMAT_BGR, FORMAT_BGRA, FORMAT_GRAYSCALE };
+
+enum ColorSpace {
+       COLORSPACE_sRGB = 0,
+       COLORSPACE_REC_709 = 0,  // Same as sRGB.
+       COLORSPACE_REC_601_525 = 1,
+       COLORSPACE_REC_601_625 = 2,
+};
+
+enum GammaCurve {
+       GAMMA_LINEAR = 0,
+       GAMMA_sRGB = 1,
+       GAMMA_REC_601 = 2,
+       GAMMA_REC_709 = 2,  // Same as Rec. 601.
+};
+
+struct ImageFormat {
+       MovitPixelFormat pixel_format;
+       ColorSpace color_space;
+       GammaCurve gamma_curve;
+};
+
+#endif  // !defined(_IMAGE_FORMAT_H)
index 453620c..cf0210c 100644 (file)
--- a/input.cpp
+++ b/input.cpp
@@ -41,6 +41,9 @@ void Input::finalize()
        } else if (image_format.pixel_format == FORMAT_BGRA) {
                format = GL_BGRA;
                bytes_per_pixel = 4;
+       } else if (image_format.pixel_format == FORMAT_GRAYSCALE) {
+               format = GL_LUMINANCE;
+               bytes_per_pixel = 1;
        } else {
                assert(false);
        }