Mesa (master): st/dri: integrate the HUD

Marek Olšák mareko at kemper.freedesktop.org
Tue Mar 26 02:19:40 UTC 2013


Module: Mesa
Branch: master
Commit: e40c634bd210b53e8d8fb7e049f6efc7d0fe05cb
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e40c634bd210b53e8d8fb7e049f6efc7d0fe05cb

Author: Marek Olšák <maraeo at gmail.com>
Date:   Thu Mar 21 19:51:30 2013 +0100

st/dri: integrate the HUD

Reviewed-by: Brian Paul <brianp at vmware.com>

---

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

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;




More information about the mesa-commit mailing list