-#define GL_GLEXT_PROTOTYPES 1
-
#include <string.h>
-#include <GL/gl.h>
-#include <GL/glext.h>
#include <assert.h>
#include "flat_input.h"
#include "util.h"
+#include "opengl.h"
-FlatInput::FlatInput(ImageFormat image_format, unsigned width, unsigned height)
+FlatInput::FlatInput(ImageFormat image_format, MovitPixelFormat pixel_format, unsigned width, unsigned height)
: image_format(image_format),
+ pixel_format(pixel_format),
needs_update(false),
finalized(false),
- use_srgb_texture_format(false),
+ output_linear_gamma(false),
needs_mipmaps(false),
width(width),
height(height),
pitch(width)
{
- register_int("use_srgb_texture_format", &use_srgb_texture_format);
+ register_int("output_linear_gamma", &output_linear_gamma);
register_int("needs_mipmaps", &needs_mipmaps);
}
{
// Translate the input format to OpenGL's enums.
GLenum internal_format;
- if (use_srgb_texture_format) {
+ if (output_linear_gamma) {
internal_format = GL_SRGB8;
} else {
internal_format = GL_RGBA8;
}
- if (image_format.pixel_format == FORMAT_RGB) {
+ if (pixel_format == FORMAT_RGB) {
format = GL_RGB;
bytes_per_pixel = 3;
- } else if (image_format.pixel_format == FORMAT_RGBA) {
+ } else if (pixel_format == FORMAT_RGBA) {
format = GL_RGBA;
bytes_per_pixel = 4;
- } else if (image_format.pixel_format == FORMAT_BGR) {
+ } else if (pixel_format == FORMAT_BGR) {
format = GL_BGR;
bytes_per_pixel = 3;
- } else if (image_format.pixel_format == FORMAT_BGRA) {
+ } else if (pixel_format == FORMAT_BGRA) {
format = GL_BGRA;
bytes_per_pixel = 4;
- } else if (image_format.pixel_format == FORMAT_GRAYSCALE) {
+ } else if (pixel_format == FORMAT_GRAYSCALE) {
format = GL_LUMINANCE;
bytes_per_pixel = 1;
} else {