Program* ProgramCache::generateProgram(const ProgramDescription& description, programid key) { String8 vertexShader = generateVertexShader(description); String8 fragmentShader = generateFragmentShader(description); Program* program = new Program(description, vertexShader.string(), fragmentShader.string()); return program; }
GlslProgRef EnvironmentCore::buildShader( const ShaderDef &shader ) { GlslProg::Format fmt = GlslProg::Format().vertex( generateVertexShader( shader ) ) .fragment( generateFragmentShader( shader ) ) .attribLocation( "ciPosition", 0 ) .preprocess( false ); if( shader.mTextureMapping ) fmt.attribLocation( "ciTexCoord0", 1 ); return GlslProg::create( fmt ); }
Program* ProgramCache::generateProgram(const Key& needs) { // vertex shader String8 vs = generateVertexShader(needs); // fragment shader String8 fs = generateFragmentShader(needs); Program* program = new Program(needs, vs.string(), fs.string()); return program; }