[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