22GLuint
read_program(
const char *filename,
const char *definitions=
"" );
31int reload_program(
const GLuint program,
const char *filename,
const char *definitions=
"" );
53 std::string definitions;
63 printf(
"[pipeline cache] %d programs.\n",
int(m_programs.size()));
72 for(
auto cache : m_programs)
74 if(cache->filename == filename && cache->definitions == definitions)
78 return insert(filename, definitions);
84 int update_program(
const GLuint program,
const char *filename,
const char *definitions );
87 GLuint program= glCreateProgram();
88 update_program(program, filename, definitions);
91 return insert(program, filename, definitions);
98 m_programs.push_back(cache);
106 for(
auto cache : m_programs)
108 if(cache->program == program)
110 reload_program(program, cache->filename.c_str(), cache->definitions.c_str());
122 for(
auto cache : m_programs)
124 reload_program(cache->program, cache->filename.c_str(), cache->definitions.c_str());
140 std::vector<PipelineProgram *> m_programs;
void reload()
recompile tous les shaders. du cache.
PipelineProgram * reload(const GLuint program)
recharge et recompile un programme du cache.
PipelineProgram * insert(const GLuint program, const char *filename, const char *definitions="")
ajoute un shader dans le cache
PipelineCache()
constructeur prive.
PipelineProgram * insert(const char *filename, const char *definitions="")
ajoute un shader dans le cache
PipelineProgram * find(const char *filename, const char *definitions="")
renvoie un shader program compile. et l'ajoute dans le cache...
static PipelineCache & manager()
acces au singleton.
void printf(Text &text, const int px, const int py, const char *format,...)
affiche un texte a la position x, y. meme utilisation que printf().
GLuint read_program(const char *filename, const char *definitions="")
int program_print_errors(const GLuint program, const char *filename="")
affiche les erreurs de compilation.
int release_program(const GLuint program)
detruit les shaders et le program.
bool program_errors(const GLuint program)
renvoie vrai si le programme n'est pas pret.
int reload_program(const GLuint program, const char *filename, const char *definitions="")
bool program_ready(const GLuint program)
renvoie vrai si le programme est pret. (pas d'erreurs de compilation des shaders, pas d'erreur de lin...
int program_format_errors(const GLuint program, std::string &errors)
renvoie les erreurs de compilation.
description d'un shader program compile.