[waffle] [PATCH 03/12] core: store current context in wcore_display
Frank Henigman
fjhenigman at google.com
Wed Jan 6 11:56:32 PST 2016
For core functions that need to know the current context, like the
forthcoming wflinfo-like function.
Signed-off-by: Frank Henigman <fjhenigman at google.com>
---
src/waffle/api/waffle_gl_misc.c | 11 +++++++----
src/waffle/core/wcore_display.c | 1 +
src/waffle/core/wcore_display.h | 2 ++
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/waffle/api/waffle_gl_misc.c b/src/waffle/api/waffle_gl_misc.c
index 138974d..4161ce8 100644
--- a/src/waffle/api/waffle_gl_misc.c
+++ b/src/waffle/api/waffle_gl_misc.c
@@ -94,10 +94,13 @@ waffle_make_current(
if (!api_check_entry(obj_list, len))
return false;
- return api_platform->vtbl->make_current(api_platform,
- wc_dpy,
- wc_window,
- wc_ctx);
+ bool ok = api_platform->vtbl->make_current(api_platform,
+ wc_dpy,
+ wc_window,
+ wc_ctx);
+ if (ok)
+ wc_dpy->current_context = wc_ctx;
+ return ok;
}
WAFFLE_API void*
diff --git a/src/waffle/core/wcore_display.c b/src/waffle/core/wcore_display.c
index 18262c3..bcaeacb 100644
--- a/src/waffle/core/wcore_display.c
+++ b/src/waffle/core/wcore_display.c
@@ -52,6 +52,7 @@ wcore_display_init(struct wcore_display *self,
mtx_unlock(&mutex);
self->platform = platform;
+ self->current_context = NULL;
if (self->api.display_id == 0) {
fprintf(stderr, "waffle: error: internal counter wrapped to 0\n");
diff --git a/src/waffle/core/wcore_display.h b/src/waffle/core/wcore_display.h
index 6e374e3..1ccff6f 100644
--- a/src/waffle/core/wcore_display.h
+++ b/src/waffle/core/wcore_display.h
@@ -37,12 +37,14 @@
extern "C" {
#endif
+struct wcore_context;
struct wcore_display;
struct wcore_platform;
union waffle_native_display;
struct wcore_display {
struct api_object api;
+ struct wcore_context *current_context;
struct wcore_platform *platform;
};
--
2.6.0.rc2.230.g3dd15c0
More information about the waffle
mailing list