Ejemplo n.º 1
0
void ShaderGen2D_Delete(ShaderGen2D *gen)
{
    if (!gen->genshaders2D) return;
    for (int i = 0; i < gen->shadercount; i++)
    {
        gen->genshaders2D[i].id = 0;
        if (gen->genshaders2D[i].shader.prog) gen->ext->glDeleteProgram(gen->genshaders2D[i].shader.prog);
        if (gen->genshaders2D[i].shader.fs) gen->ext->glDeleteShader(gen->genshaders2D[i].shader.fs);
        if (gen->genshaders2D[i].shader.vs) gen->ext->glDeleteShader(gen->genshaders2D[i].shader.vs);
        if (gen->genshaders2D[i].shader.fsrc.ptr) String_Free(&gen->genshaders2D[i].shader.fsrc);
        if (gen->genshaders2D[i].shader.vsrc.ptr) String_Free(&gen->genshaders2D[i].shader.vsrc);
    }
    if (gen->genshaders2D) free(gen->genshaders2D);
    gen->genshaders2D = NULL;
    gen->shadercount = 0;
    gen->genindex = 0;
}
Ejemplo n.º 2
0
void 
Destroy_TextLayer( LCUI_TextLayer *layer )
/* 销毁文本图层占用的资源 */
{
	Destroy_Queue( &layer->text_source_data );
	Destroy_Queue( &layer->rows_data );
	Destroy_Queue( &layer->tag_buff );
	Destroy_Queue( &layer->style_data );
	Destroy_Queue( &layer->clear_area );
	String_Free( &layer->text_buff );
}