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; }
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 ); }