Ejemplo n.º 1
0
void engine_clear_loading (Context* context, Engine* engine) {
	int i = 0;
	
	vertex_delete(engine->loading_bufs[0]->v);
	context->video[0] = vertex_buffer_delete(
		context->video[0]
		, engine->loading_bufs[0]
	);
	
	for (; i < 9; i++) {
		if (i == 7 || i == 8) {
			vertex_delete(engine->loading_bufs[i+1]->v);
		}
		
		context->video[1] = vertex_buffer_delete(
			context->video[1]
			, engine->loading_bufs[i+1]
		);
	}
	
	// Wait for the drawing thread to terminate before continuing.
	context->pthread_stop = 1;
	int err = pthread_join(context->pthread, NULL);
	
	if (err) {
		LOGE("Error terminating thread.");
		exit(EXIT_FAILURE);
	}
}
Ejemplo n.º 2
0
// ----------------------------------------------------------------------------
void
text_buffer_delete( text_buffer_t * self )
{
    vertex_buffer_delete( self->buffer );
    glDeleteProgram( self->shader );
    free( self );
}
Ejemplo n.º 3
0
	Font::~Font()
	{
		texture_font_delete(m_font);
		texture_atlas_delete(m_atlas);
		vertex_buffer_delete(m_buffer);
		delete m_fontFile;
	}
Ejemplo n.º 4
0
 void FontBufferCache::Clear()
 {
     for(VertexBufferMap::const_iterator i = m_vertexBufferMap.begin(), end = m_vertexBufferMap.end(); i != end; ++i) {
         vertex_buffer_delete(i->second);
     }
     m_vertexBufferMap.clear();
 }
Ejemplo n.º 5
0
void
shader_group_delete(shader_group_t* self)
{
  sen_assert(self);
  vertex_buffer_delete(self->buff);
  free(self->name);
  free(self);
}
Ejemplo n.º 6
0
// ----------------------------------------------------------------------------
void
text_buffer_delete( text_buffer_t * self )
{
    vector_delete( self->lines );
    font_manager_delete( self->manager );
    vertex_buffer_delete( self->buffer );
    glDeleteProgram( self->shader );
    free( self );
}
Ejemplo n.º 7
0
FontRenderer::~FontRenderer()
{
    if (m_pManager) {
        font_manager_delete(m_pManager);
    }
    
    if (m_pTextBuffer) {
        vertex_buffer_delete(m_pTextBuffer);
    }
}
Ejemplo n.º 8
0
void title_transition (Context* context, int state) {
	if (context->title->profile_name != NULL) {
		free(context->title->profile_name);
		context->title->profile_name = NULL;
	}
	
	if (context->title->profile_line != NULL) {
		del_line(context->glyphs, context->title->profile_line);
		context->title->profile_line = NULL;
	}
	
	if (context->title->user_bufs != NULL) {
		int i = 0;
		for (; i < MAX_PROFILES; i++) {
			if (context->title->user_bufs[i] == NULL) {
				continue;
			}
			
			context->video[1] = vertex_buffer_delete(
				context->video[1]
				, context->title->user_bufs[i]
			);
		}
		
		free(context->title->user_bufs);
		context->title->user_bufs = NULL;
	}
	
	context->title->state = state;
	clear_lines(
		context->glyphs
		, context->title->lines
		, TITLE_MAX_LINES
	);
	
	switch (state) {
		case TITLE_STATE_MAIN:
			context->title->lines = init_title(context);
			break;
		
		case TITLE_STATE_LOAD_PROFILE:
			context->title->lines = init_load_profile(context);
			break;
		
		case TITLE_STATE_NEW_PROFILE:
			context->title->lines = init_new_profile(context);
			break;
		
		case TYRIAN_GAME_LEVEL:
			context->engine = engine_init_level(context);
			break;
	}
	
}
Ejemplo n.º 9
0
void engine_swap_buffers (Engine* engine) {
	Context* context = (Context*) engine->context;
	Bitmap* bmp = (Bitmap*) malloc(sizeof(Bitmap));
	
	context->video[0] = vertex_buffer_delete(context->video[0], engine->bg[0]);
	engine->bg[0] = engine->bg[1];
	
	engine->bg[1] = engine_gen_tilemap(
		context
		, bmp
		, engine->tiles[0]
		, engine->max_h
		, engine->max_w
	);
	
	engine->bg[1]->v->y = engine->bg[0]->v->y - engine->bg[1]->v->bitmap->h;
}
Ejemplo n.º 10
0
void
sen_sprite_delete(void *_self)
{
  sprite_t *self = (sprite_t *)_self;
  int status;
  sen_assert(_self);
 // _logfi("-sprite %s", ((object_t*)self)->name);
  sen_textures_release(self->tex);
  sen_shaders_release(self->program);
  status  = ((node_t*)self)->updated;
  if (status & SEN_NODE_UPDATE_INVALIDATE_BUFFER) {
    vertex_buffer_invalidate(self->quad);
  }
  vertex_buffer_delete(self->quad);
  sen_node_clean(self);
  free(self);
}
Ejemplo n.º 11
0
void
sen_render_reload()
{
  blend_group_t* bg;
  khash_t(hmsp)*  tgs;
  khint_t i,k,j;
  tex_group_t* tg;
  khash_t(hmsp)*  sgs;
  shader_group_t* sg;
  _logfi("**** RELOADING RENDER *** ");

  for (k = kh_begin(g_bgs); k != kh_end(g_bgs); ++k)
  {
    if (!kh_exist(g_bgs,k)) continue;
    bg = kh_val(g_bgs, k);
    tgs = bg->tgs;

    for (i = kh_begin(tgs); i != kh_end(tgs); ++i)
    {
      if (!kh_exist(tgs,i)) continue;
      tg = kh_val(tgs, i);
      sgs = tg->sgs;
      for (j = kh_begin(sgs); j != kh_end(sgs); ++j)
      {
        if (!kh_exist(sgs,j)) continue;
        sg = kh_val(sgs, j);

        if (sg->buff) {
          vertex_buffer_delete( sg->buff );
          sg->buff = NULL;
        }
      }
    }
  }
  _logfi("**** DONE *** ");
}
Ejemplo n.º 12
0
void
text_buffer_delete( text_buffer_t *self )
{
    vertex_buffer_delete(self->buffer);
    free (self);
}