st/dri: integrate the HUD
authorMarek Olšák <maraeo@gmail.com>
Thu, 21 Mar 2013 18:51:30 +0000 (19:51 +0100)
committerMarek Olšák <maraeo@gmail.com>
Tue, 26 Mar 2013 00:28:19 +0000 (01:28 +0100)
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/state_trackers/dri/common/dri_context.c
src/gallium/state_trackers/dri/common/dri_context.h
src/gallium/state_trackers/dri/common/dri_drawable.c

index 4698feb54d8674797f890e57a601213b97981caa..49cd794c6617962ca075069bd14b39bb2c5be1dc 100644 (file)
@@ -155,6 +155,7 @@ dri_create_context(gl_api api, const struct gl_config * visual,
 
    if (ctx->st->cso_context) {
       ctx->pp = pp_init(ctx->st->pipe, ctx->pp_enabled, ctx->st->cso_context);
+      ctx->hud = hud_create(ctx->st->pipe, ctx->st->cso_context);
    }
 
    *error = __DRI_CTX_ERROR_SUCCESS;
@@ -173,6 +174,10 @@ dri_destroy_context(__DRIcontext * cPriv)
 {
    struct dri_context *ctx = dri_context(cPriv);
 
+   if (ctx->hud) {
+      hud_destroy(ctx->hud);
+   }
+
    /* note: we are freeing values and nothing more because
     * driParseConfigFiles allocated values only - the rest
     * is owned by screen optionCacheDefaults.
index 484b756fc0948ffee404a1de798d0ecc5cb38091..5af2861377a9b3fbae4e526ca770cb0395769da5 100644 (file)
@@ -35,6 +35,7 @@
 #include "dri_util.h"
 #include "pipe/p_compiler.h"
 #include "postprocess/filters.h"
+#include "hud/hud_context.h"
 
 struct pipe_context;
 struct pipe_fence;
@@ -59,6 +60,7 @@ struct dri_context
    struct st_context_iface *st;
    struct pp_queue_t *pp;
    unsigned int pp_enabled[PP_FILTERS];
+   struct hud_context *hud;
 };
 
 static INLINE struct dri_context *
index 87ab76467c775f85b8a55d6c7dffad7c3b901519..00ae1daed8a035e80fdf78ddf9b5bbbfb8c0b134 100644 (file)
@@ -443,6 +443,10 @@ dri_flush(__DRIcontext *cPriv,
       }
 
       dri_postprocessing(ctx, drawable, ST_ATTACHMENT_BACK_LEFT);
+
+      if (ctx->hud) {
+         hud_draw(ctx->hud, drawable->textures[ST_ATTACHMENT_BACK_LEFT]);
+      }
    }
 
    flush_flags = 0;