Exemple #1
0
static void
gtb_inactive(glw_text_bitmap_t *gtb)
{
  glw_tex_destroy(gtb->w.glw_root, &gtb->gtb_texture);

  // Make sure it is rerendered once we get back to life
  if(gtb->gtb_state == GTB_VALID)
    gtb->gtb_state = GTB_NEED_RENDER;
}
Exemple #2
0
static void
glw_gradient_dtor(glw_t *w)
{
  glw_gradient_t *gg = (void *)w;
  int i;

  for(i = 0; i < gg->gg_tex_uploaded; i++)
    glw_tex_destroy(w->glw_root, &gg->gg_tex[i]);

  glw_renderer_free(&gg->gg_gr[i]);
}
Exemple #3
0
static void
glw_text_bitmap_dtor(glw_t *w)
{
  glw_text_bitmap_t *gtb = (void *)w;
  glw_root_t *gr = w->glw_root;

  free(gtb->gtb_description);
  free(gtb->gtb_caption);
  free(gtb->gtb_uc_buffer);
  rstr_release(gtb->gtb_font);

  image_release(gtb->gtb_image);

  LIST_REMOVE(gtb, gtb_global_link);

  glw_tex_destroy(w->glw_root, &gtb->gtb_texture);

  glw_renderer_free(&gtb->gtb_text_renderer);
  glw_renderer_free(&gtb->gtb_cursor_renderer);
  glw_renderer_free(&gtb->gtb_background_renderer);

  switch(gtb->gtb_state) {
  case GTB_IDLE:
  case GTB_DIMENSIONING:
  case GTB_NEED_RENDER:
  case GTB_RENDERING:
  case GTB_VALID:
    break;

  case GTB_QUEUED_FOR_DIMENSIONING:
    TAILQ_REMOVE(&gr->gr_gtb_dim_queue, gtb, gtb_workq_link);
    break;

  case GTB_QUEUED_FOR_RENDERING:
    TAILQ_REMOVE(&gr->gr_gtb_render_queue, gtb, gtb_workq_link);
    break;
  }
}