Exemple #1
0
void
st_destroy_pbo_helpers(struct st_context *st)
{
   unsigned i;

   if (st->pbo.upload_fs) {
      cso_delete_fragment_shader(st->cso_context, st->pbo.upload_fs);
      st->pbo.upload_fs = NULL;
   }

   for (i = 0; i < ARRAY_SIZE(st->pbo.download_fs); ++i) {
      if (st->pbo.download_fs[i]) {
         cso_delete_fragment_shader(st->cso_context, st->pbo.download_fs[i]);
         st->pbo.download_fs[i] = NULL;
      }
   }

   if (st->pbo.gs) {
      cso_delete_geometry_shader(st->cso_context, st->pbo.gs);
      st->pbo.gs = NULL;
   }

   if (st->pbo.vs) {
      cso_delete_vertex_shader(st->cso_context, st->pbo.vs);
      st->pbo.vs = NULL;
   }
}
Exemple #2
0
/**
 * Delete a geometry program variant.  Note the caller must unlink
 * the variant from the linked list.
 */
static void
delete_gp_variant(struct st_context *st, struct st_gp_variant *gpv)
{
   if (gpv->driver_shader) 
      cso_delete_geometry_shader(st->cso_context, gpv->driver_shader);
      
   free(gpv);
}
/**
 * Free per-context state for glClear.
 */
void
st_destroy_clear(struct st_context *st)
{
   if (st->clear.fs) {
      cso_delete_fragment_shader(st->cso_context, st->clear.fs);
      st->clear.fs = NULL;
   }
   if (st->clear.vs) {
      cso_delete_vertex_shader(st->cso_context, st->clear.vs);
      st->clear.vs = NULL;
   }
   if (st->clear.vs_layered) {
      cso_delete_vertex_shader(st->cso_context, st->clear.vs_layered);
      st->clear.vs_layered = NULL;
   }
   if (st->clear.gs_layered) {
      cso_delete_geometry_shader(st->cso_context, st->clear.gs_layered);
      st->clear.gs_layered = NULL;
   }
}