From ad0e48a8b82a679f1d2836254ef33320e7162733 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sat, 6 Oct 2012 00:42:32 +0200 Subject: [PATCH] Add missing file image_format.h, and add grayscale support. --- image_format.h | 26 ++++++++++++++++++++++++++ input.cpp | 3 +++ 2 files changed, 29 insertions(+) create mode 100644 image_format.h diff --git a/image_format.h b/image_format.h new file mode 100644 index 0000000..346cdef --- /dev/null +++ b/image_format.h @@ -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) diff --git a/input.cpp b/input.cpp index 453620c..cf0210c 100644 --- 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); } -- 2.39.2