#include "stored_context.h"
 
#include "../include/harness/trace.h"
 
#include <stdlib.h>
 
 
 
void _free(br_object* o) {
 
    tStored_model_context* ctx = (tStored_model_context*)o;
 
    glDeleteVertexArrays(1, &ctx->vao_id);
 
    glDeleteBuffers(1, &ctx->vbo_id);
 
    glDeleteBuffers(1, &ctx->ebo_id);
 
}
 
 
 
br_object_dispatch dispatch_funcs = {
 
    NULL,
 
    NULL,
 
    NULL,
 
    NULL,
 
    _free,
 
    NULL,
 
    NULL,
 
    NULL,
 
    NULL,
 
    NULL,
 
    NULL,
 
    NULL,
 
    NULL,
 
    NULL,
 
    NULL,
 
    NULL,
 
    NULL
 
};
 
 
 
tStored_model_context* NewStoredModelContext(void) {
 
    tStored_model_context
* ctx 
= malloc(sizeof(tStored_model_context
)); 
    ctx->dispatch = &dispatch_funcs;
 
    return ctx;
 
}
 
 
 
tStored_material* NewStoredMaterial(void) {
 
    tStored_material
* ctx 
= malloc(sizeof(tStored_material
)); 
    ctx->index_base = -1;
 
    ctx->pixelmap = NULL;
 
    ctx->shade_table = NULL;
 
    ctx->index_blend = NULL;
 
    ctx->identifier[0] = '\0';
 
    return ctx;
 
}
 
 
 
tStored_pixelmap* NewStoredPixelmap(void) {
 
    tStored_pixelmap
* ctx 
= malloc(sizeof(tStored_pixelmap
)); 
    ctx->id = 0;
 
    return ctx;
 
}