return dst_pixels;
}
-void load_texture(const char *filename)
-{
- unsigned w, h;
- unsigned char *pixels = load_image(filename, &w, &h);
-
-#if 1
- // we will convert to sRGB in the shader
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, w, h, 0, GL_RGB, GL_UNSIGNED_BYTE, pixels);
- check_error();
-#else
- // implicit sRGB conversion in hardware
- glTexImage2D(GL_TEXTURE_2D, 0, GL_SRGB8, w, h, 0, GL_RGB, GL_UNSIGNED_BYTE, pixels);
- check_error();
-#endif
-
- free(pixels);
-}
-
void write_ppm(const char *filename, unsigned char *screenbuf)
{
FILE *fp = fopen(filename, "w");
//glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 4);
//check_error();
- //load_texture("maserati_gts_wallpaper_1280x720_01.jpg");
- //load_texture("90630d1295075297-console-games-wallpapers-wallpaper_need_for_speed_prostreet_09_1920x1080.jpg");
- //load_texture("glacier-lake-1280-720-4087.jpg");
-
#if 0
// sRGB reverse LUT
glBindTexture(GL_TEXTURE_1D, SRGB_REVERSE_LUT);
make_hsv_wheel_texture();
- int prog = glCreateProgram();
- GLhandleARB vs_obj = compile_shader(read_file("vs.glsl"), GL_VERTEX_SHADER);
- GLhandleARB fs_obj = compile_shader(read_file("fs.glsl"), GL_FRAGMENT_SHADER);
- glAttachObjectARB(prog, vs_obj);
- check_error();
- glAttachObjectARB(prog, fs_obj);
- check_error();
- glLinkProgram(prog);
- check_error();
-
- GLchar info_log[4096];
- GLsizei log_length = sizeof(info_log) - 1;
- log_length = sizeof(info_log) - 1;
- glGetProgramInfoLog(prog, log_length, &log_length, info_log);
- info_log[log_length] = 0;
- printf("link: %s\n", info_log);
-
struct timespec start, now;
int frame = 0, screenshot = 0;
clock_gettime(CLOCK_MONOTONIC, &start);