Ejemplo n.º 1
0
void free_exp ( cEXP* p ) {
  if( p ) {
    if( p->exp1 ) free_exp( p->exp1 );
    if( p->exp2 ) free_exp( p->exp2 );
    if( p->next ) free_exp( p->next );
    free( p );
  }
}
Ejemplo n.º 2
0
void free_stm ( cSTM* p ) {
  if( p ) {
    if( p->exp1 ) free_exp( p->exp1 );
    if( p->exp2 ) free_exp( p->exp2 );
    if( p->stm1 ) free_stm( p->stm1 );
    if( p->stm2 ) free_stm( p->stm2 );
    if( p->next ) free_stm( p->next );
    free( p );
  }
}
Ejemplo n.º 3
0
/*
* Free resources and exit program.
*/
static void quit(){
    /* Free eduraster resources */
    if(program_surface_light != NULL){
        er_delete_program(program_surface_light);
        program_surface_light = NULL;
    }
    if(program_axis != NULL){
        er_delete_program(program_axis);
        program_axis = NULL;
    }
    if(program_surface_color != NULL){
        er_delete_program(program_surface_color);
        program_surface_color = NULL;
    }
    if(va != NULL){
        er_delete_vertex_array(va);
        va = NULL;
    }
    if(color_buffer != NULL){
        free(color_buffer);
        color_buffer = NULL;
    }
    if(depth_buffer != NULL){
        free(depth_buffer);
        depth_buffer = NULL;
    }
    if(points != NULL){
        free(points);
        points = NULL;
    }
    if(index_data != NULL){
        free(index_data);
        index_data = NULL;
    }
    er_quit();
    /* Free parsing structures */
    if(exp_x != NULL){
        free_exp(exp_x);
        exp_x = NULL;
    }
    if(exp_y != NULL){
        free_exp(exp_y);
        exp_y = NULL;
    }
    if(exp_z != NULL){
        free_exp(exp_z);
        exp_z = NULL;
    }
    /* Free SDL structures */
    if(texture != NULL){
        SDL_DestroyTexture(texture);
        texture = NULL;
    }
    if(renderer != NULL){
        SDL_DestroyRenderer(renderer);
        renderer = NULL;
    }
    if(window != NULL){
        SDL_DestroyWindow(window);
        window = NULL;
    }
    SDL_Quit();
    /* Exit */
    exit(0);
}