# HG changeset patch # User John Tsiombikas # Date 1350824207 -10800 # Node ID 5981917093ff685dfdc12f5d42d497047f1858a7 # Parent 67d33003862935f0201bd07087059b9cd4e6a751 color grading palette output done, all is left is the input diff -r 67d330038629 -r 5981917093ff prototype/src/colgrade.cc --- a/prototype/src/colgrade.cc Sun Oct 21 02:11:23 2012 +0300 +++ b/prototype/src/colgrade.cc Sun Oct 21 15:56:47 2012 +0300 @@ -1,10 +1,13 @@ #include +#include #include "opengl.h" #include "colgrade.h" +#include "imago2.h" GradePalette::GradePalette() { tex = 0; + palette = 0; } GradePalette::~GradePalette() @@ -18,18 +21,14 @@ destroy(); - glGenTextures(1, &tex); - glBindTexture(GL_TEXTURE_3D, tex); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, clamp); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, clamp); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, clamp); - glTexImage3D(GL_TEXTURE_3D, 0, GL_RGB, sz, sz, sz, 0, GL_RGB, GL_UNSIGNED_BYTE, 0); + this->size = sz; - unsigned char *scanline = new unsigned char[sz * 3]; + int nbytes = sz * sz * sz * 3; + printf("allocating %d bytes for a color grading palette\n", nbytes); + palette = new unsigned char[nbytes]; - size = sz; + unsigned char *scanline = palette; + for(int i=0; iget_grade_palette(); + if(!pal->save_shot("gradeshot.ppm")) { + fprintf(stderr, "failed to save color grading shot\n"); + } + save_grade_shot = false; + } } void view_matrix(int eye) @@ -396,6 +405,10 @@ } break; + case 'g': + save_grade_shot = true; + break; + default: break; } diff -r 67d330038629 -r 5981917093ff prototype/src/renderer.cc --- a/prototype/src/renderer.cc Sun Oct 21 02:11:23 2012 +0300 +++ b/prototype/src/renderer.cc Sun Oct 21 15:56:47 2012 +0300 @@ -199,6 +199,16 @@ return true; } +GradePalette *Renderer::get_grade_palette() +{ + return &gradepal; +} + +const GradePalette *Renderer::get_grade_palette() const +{ + return &gradepal; +} + // ---- fallback forward renderer ---- FwdRenderer::FwdRenderer() diff -r 67d330038629 -r 5981917093ff prototype/src/renderer.h --- a/prototype/src/renderer.h Sun Oct 21 02:11:23 2012 +0300 +++ b/prototype/src/renderer.h Sun Oct 21 15:56:47 2012 +0300 @@ -32,6 +32,9 @@ virtual void render_pre(const Level *level) const; virtual void render(const Level *level) const = 0; virtual void render_post(const Level *level) const; + + virtual GradePalette *get_grade_palette(); + virtual const GradePalette *get_grade_palette() const; };