[Mesa-dev] [PATCH 3/5] st/dri: integrate the HUD

Marek Olšák maraeo at gmail.com
Fri Mar 22 16:51:02 PDT 2013


---
 src/gallium/state_trackers/dri/common/dri_context.c  |    5 +++++
 src/gallium/state_trackers/dri/common/dri_context.h  |    2 ++
 src/gallium/state_trackers/dri/common/dri_drawable.c |    4 ++++
 3 files changed, 11 insertions(+)

diff --git a/src/gallium/state_trackers/dri/common/dri_context.c b/src/gallium/state_trackers/dri/common/dri_context.c
index 4698feb..49cd794 100644
--- a/src/gallium/state_trackers/dri/common/dri_context.c
+++ b/src/gallium/state_trackers/dri/common/dri_context.c
@@ -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.
diff --git a/src/gallium/state_trackers/dri/common/dri_context.h b/src/gallium/state_trackers/dri/common/dri_context.h
index 484b756..5af2861 100644
--- a/src/gallium/state_trackers/dri/common/dri_context.h
+++ b/src/gallium/state_trackers/dri/common/dri_context.h
@@ -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 *
diff --git a/src/gallium/state_trackers/dri/common/dri_drawable.c b/src/gallium/state_trackers/dri/common/dri_drawable.c
index 87ab764..00ae1da 100644
--- a/src/gallium/state_trackers/dri/common/dri_drawable.c
+++ b/src/gallium/state_trackers/dri/common/dri_drawable.c
@@ -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;
-- 
1.7.10.4



More information about the mesa-dev mailing list