YUV420PGrabber::~YUV420PGrabber() { deleteShader(frag_y); deleteShader(vert_yuv); deleteShader(frag_u); deleteShader(frag_v); deleteShader(frag_pt); deleteProgram(prog_y); deleteProgram(prog_u); deleteProgram(prog_v); deleteProgram(prog_pt); deleteTexture(yuv_tex); deleteTexture(scene_tex); if(scene_fbo) { glDeleteFramebuffers(1, &scene_fbo); } if(scene_depth) { glDeleteRenderbuffers(1, &scene_depth); } if(vao) { #if YUV420P_USE_APPLE_VAO glDeleteVertexArraysAPPLE(1, &vao); #else glDeleteVertexArrays(1, &vao); #endif } if(outfile_set && ofs.is_open()) { ofs.close(); } if(image) { delete[] image; } outfile_set = false; win_w = 0; win_h = 0; vid_w = 0; vid_h = 0; uv_w = 0; uv_h = 0; yuv_tex = 0; scene_fbo = 0; scene_depth = 0; scene_tex = 0; vao = 0; fps = 0; tex_w = 0; tex_h = 0; image = NULL; frame_timeout = 0; frame_prev_timeout = 0; frame_delay = 0; frame_delay_adjusted = 0; frame_diff = 0; frame_diff_avg = 0; }
/* main * * do some main stuff. */ int main( int argc, char ** argv ) { basic_program * bp; basic_line * bl; printf( "0\n" ); /* set up our program space */ bp = newProgram(); if( !bp ) { errorReport( kErrorMalloc, 1 ); return 0; } /* display version info */ cmd_info( bp, NULL ); bl = consumeString( bp, program[0] ); bl = consumeString( bp, program[1] ); bl = consumeString( bp, program[2] ); bl = consumeString( bp, program[3] ); bl = consumeString( bp, program[4] ); /* and run the program, if we should... */ printf( "Running program\n" ); runProgram( bp, 0 ); while( run_poll( bp ) ); /* just show access of variables */ printf( "Variable 'a' is %ld\n", getVariableNumber( bp->variables, "a" )); deleteProgram( bp ); return 0; }
LNZprogram* parseProgram( const char* filename, const u8* string, u64 length, const char** error ){ LNZprogram* ans = newProgram(); const u8* s = string; u64 l = length; do{ u64 prsd = parseLine( ans, s, l, error ); s += prsd; l -= prsd; if( *error != NULL ){ u64 line = 1; u64 chr = 1; const u8* c = string; while( c != s ){ if( *c == '\n' ){ chr = 1; ++line; }else ++chr; ++c; } u64 pep = rand() % ( sizeof( pepTalks ) / sizeof( pepTalks[ 0 ] ) ); char* err = LNZmalloc( strlen( filename ) + strlen( *error ) + strlen( pepTalks[ pep ] ) + 256 ); sprintf( err, "%s:%u:%u\n%s\n%s\n\n", filename, (int)line, (int)chr, *error, pepTalks[ pep ] ); *error = err; deleteProgram( ans ); return NULL; } }while( l ); return ans; }
ResourceManager::~ResourceManager() { while (!mBufferMap.empty()) { deleteBuffer(mBufferMap.begin()->first); } while (!mProgramMap.empty()) { deleteProgram(mProgramMap.begin()->first); } while (!mShaderMap.empty()) { deleteShader(mShaderMap.begin()->first); } while (!mRenderbufferMap.empty()) { deleteRenderbuffer(mRenderbufferMap.begin()->first); } while (!mTextureMap.empty()) { deleteTexture(mTextureMap.begin()->first); } }
bool Shader::link() { //Create a new program deleteProgram(); program = new GLProgram; program->create(); //Attach all the shaders and link the program attachShaders(); bool status = program->link(); if (status) printf ("Shading program linked.\n"); else printf ("Failed linking shading program!\n"); CharString infoLog = program->getInfoLog (); if (infoLog.length() > 0) printf ("Info Log:\n%s\n", infoLog.buffer()); //Query attribute locations for (UintSize a=0; a<attribs.size(); ++a) attribs[a].ID = program->getAttribute( attribs[a].name.buffer() ); //Query uniform locations for (UintSize u=0; u<uniforms.size(); ++u) uniforms[u].ID = program->getUniform( uniforms[u].name.buffer() ); return status; }
void ShaderProgramManager::reset(const Context *context) { while (!mPrograms.empty()) { deleteProgram(context, mPrograms.begin()->first); } mPrograms.clear(); while (!mShaders.empty()) { deleteShader(context, mShaders.begin()->first); } mShaders.clear(); }
void FreeLivin(){ int i; closeDepthVideo(head); closeDepthVideo(matat); closeOutline(knock); closeOutline(jump); closeOutline(run); closeOutline(hang); closeOutline(falling); closeOutline(tiger); closeOutline(hop); closeOutline(flip); closeOutline(run2); closeOutline(tbill); closeOutline(catwheel); closeOutline(katf); closeOutline(door); closeOutline(trap); closeOutline(fractalme); for(i = 0; i < LETTERNUM; i++){ freeMesh3D(letters[i]); } freeMesh3D(cube); deleteBox(); deleteBackground(); deleteGreetings(); freeBigCube(bigcube); deleteProgram(background_shader, 5, background_src); deleteProgram(title_shader, 5, title_src); deleteProgram(credits_shader, 5, credits_src); deleteProgram(letter_shader, 2, letter_src); deleteProgram(scroll_shader, 5, scroll_src); deleteProgram(cube_shader, 3, cube_src); deleteProgram(gr_shader, 2, gr_src); deleteProgram(bigcube_shader, 2, bigcube_src); freeExplosion(); looseFace(face); looseFace(armface); }
ResourceManager::~ResourceManager() { while (!mBufferMap.empty()) { deleteBuffer(mBufferMap.begin()->first); } while (!mProgramMap.empty()) { deleteProgram(mProgramMap.begin()->first); } while (!mShaderMap.empty()) { deleteShader(mShaderMap.begin()->first); } while (!mRenderbufferMap.empty()) { deleteRenderbuffer(mRenderbufferMap.begin()->first); } while (!mTextureMap.empty()) { deleteTexture(mTextureMap.begin()->first); } while (!mSamplerMap.empty()) { deleteSampler(mSamplerMap.begin()->first); } while (!mFenceSyncMap.empty()) { deleteFenceSync(mFenceSyncMap.begin()->first); } for (auto it = mPathMap.begin(); it != mPathMap.end(); ++it) { const auto *p = it->second; delete p; } }
ShaderProgram::~ShaderProgram(void) { // Tell OpenGL to delete the shader to free some GPU memory. deleteProgram(); }
Shader::~Shader () { detachShaders(); deleteShaders(); deleteProgram(); }
Program::~Program() { deleteProgram(); }
void freeExplosion(){ glDeleteBuffers(1, &explosion_vbo); glDeleteVertexArrays(1, &explosion_vao); deleteProgram(explosion_shader, 3, explosion_src); }
inline void deleteAny(const Program & v ){ deleteProgram(v); }