summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChad Versace <chad.versace@intel.com>2015-01-04 13:36:26 -0800
committerChad Versace <chad.versace@intel.com>2015-01-27 09:36:06 -0800
commit73227a1162a531705463fb5a9a4e927542c86c5a (patch)
tree28c834bc9cc34cb6a3e4970cbc6cad97b378da3c
parentd2594d1e8b8ba8e0377a9afe007e1cf49a0a93d0 (diff)
core: Add attrib_list param to func wcore_platform::window::create
This prepares for adding waffle_window_create2() to Waffle's public API, which will have an attrib_list parameter. No attributes are supported yet. Therefore this patch validates, at the top of each ${PLATFORM}_window_create(), that the attrib_list is empty. Signed-off-by: Chad Versace <chad.versace@intel.com> Tested-by: Emil Velikov <emil.l.velikov@gmail.com> (msvc/wgl) Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
-rw-r--r--src/waffle/android/droid_window.c8
-rw-r--r--src/waffle/api/waffle_window.c3
-rw-r--r--src/waffle/cgl/cgl_window.h3
-rw-r--r--src/waffle/cgl/cgl_window.m9
-rw-r--r--src/waffle/core/wcore_platform.h3
-rw-r--r--src/waffle/gbm/wgbm_window.c9
-rw-r--r--src/waffle/gbm/wgbm_window.h3
-rw-r--r--src/waffle/glx/glx_window.c9
-rw-r--r--src/waffle/glx/glx_window.h5
-rw-r--r--src/waffle/wayland/wayland_window.c11
-rw-r--r--src/waffle/wayland/wayland_window.h3
-rw-r--r--src/waffle/wgl/wgl_window.c9
-rw-r--r--src/waffle/wgl/wgl_window.h3
-rw-r--r--src/waffle/xegl/xegl_window.c9
-rw-r--r--src/waffle/xegl/xegl_window.h5
15 files changed, 74 insertions, 18 deletions
diff --git a/src/waffle/android/droid_window.c b/src/waffle/android/droid_window.c
index 98e8d2d..20a566f 100644
--- a/src/waffle/android/droid_window.c
+++ b/src/waffle/android/droid_window.c
@@ -26,6 +26,7 @@
#include <stdlib.h>
#include <string.h>
+#include "wcore_attrib_list.h"
#include "wcore_error.h"
#include "wegl_config.h"
@@ -38,13 +39,18 @@ struct wcore_window*
droid_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
int32_t width,
- int32_t height)
+ int32_t height,
+ const intptr_t attrib_list[])
{
struct droid_window *self;
struct wegl_config *config = wegl_config(wc_config);
struct droid_display *dpy = droid_display(wc_config->display);
bool ok = true;
+ if (wcore_attrib_list_length(attrib_list) > 0) {
+ wcore_error_bad_attribute(attrib_list[0]);
+ }
+
self = wcore_calloc(sizeof(*self));
if (self == NULL)
return NULL;
diff --git a/src/waffle/api/waffle_window.c b/src/waffle/api/waffle_window.c
index e0ccebe..34ecc4a 100644
--- a/src/waffle/api/waffle_window.c
+++ b/src/waffle/api/waffle_window.c
@@ -50,7 +50,8 @@ waffle_window_create(
wc_self = api_platform->vtbl->window.create(api_platform,
wc_config,
width,
- height);
+ height,
+ NULL /*attrib_list*/);
if (!wc_self)
return NULL;
diff --git a/src/waffle/cgl/cgl_window.h b/src/waffle/cgl/cgl_window.h
index ee6fa67..b565d58 100644
--- a/src/waffle/cgl/cgl_window.h
+++ b/src/waffle/cgl/cgl_window.h
@@ -49,7 +49,8 @@ struct wcore_window*
cgl_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
int32_t width,
- int32_t height);
+ int32_t height,
+ const intptr_t attrib_list[]);
bool
cgl_window_destroy(struct wcore_window *wc_self);
diff --git a/src/waffle/cgl/cgl_window.m b/src/waffle/cgl/cgl_window.m
index 32049f8..5ff1ec7 100644
--- a/src/waffle/cgl/cgl_window.m
+++ b/src/waffle/cgl/cgl_window.m
@@ -26,6 +26,7 @@
#import <Cocoa/Cocoa.h>
#import <OpenGL/OpenGL.h>
+#include "wcore_attrib_list.h"
#include "wcore_error.h"
#include "cgl_config.h"
@@ -95,11 +96,17 @@ struct wcore_window*
cgl_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
int32_t width,
- int32_t height)
+ int32_t height,
+ const intptr_t attrib_list[])
{
struct cgl_window *self;
bool ok = true;
+ if (wcore_attrib_list_length(attrib_list) > 0) {
+ wcore_error_bad_attribute(attrib_list[0]);
+ return NULL;
+ }
+
self = wcore_calloc(sizeof(*self));
if (!self)
return NULL;
diff --git a/src/waffle/core/wcore_platform.h b/src/waffle/core/wcore_platform.h
index 381db5c..2f9b9f8 100644
--- a/src/waffle/core/wcore_platform.h
+++ b/src/waffle/core/wcore_platform.h
@@ -115,7 +115,8 @@ struct wcore_platform_vtbl {
(*create)(struct wcore_platform *platform,
struct wcore_config *config,
int32_t width,
- int32_t height);
+ int32_t height,
+ const intptr_t attrib_list[]);
bool
(*destroy)(struct wcore_window *window);
diff --git a/src/waffle/gbm/wgbm_window.c b/src/waffle/gbm/wgbm_window.c
index 748e72d..9fbf1be 100644
--- a/src/waffle/gbm/wgbm_window.c
+++ b/src/waffle/gbm/wgbm_window.c
@@ -30,6 +30,7 @@
#include "waffle_gbm.h"
+#include "wcore_attrib_list.h"
#include "wcore_error.h"
#include "wegl_config.h"
@@ -60,7 +61,8 @@ struct wcore_window*
wgbm_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
int32_t width,
- int32_t height)
+ int32_t height,
+ const intptr_t attrib_list[])
{
struct wgbm_display *dpy = wgbm_display(wc_config->display);
struct wgbm_platform *plat = wgbm_platform(wegl_platform(wc_plat));
@@ -68,6 +70,11 @@ wgbm_window_create(struct wcore_platform *wc_plat,
uint32_t gbm_format;
bool ok = true;
+ if (wcore_attrib_list_length(attrib_list) > 0) {
+ wcore_error_bad_attribute(attrib_list[0]);
+ return NULL;
+ }
+
self = wcore_calloc(sizeof(*self));
if (self == NULL)
return NULL;
diff --git a/src/waffle/gbm/wgbm_window.h b/src/waffle/gbm/wgbm_window.h
index 47a75c4..7827823 100644
--- a/src/waffle/gbm/wgbm_window.h
+++ b/src/waffle/gbm/wgbm_window.h
@@ -53,7 +53,8 @@ struct wcore_window*
wgbm_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
int32_t width,
- int32_t height);
+ int32_t height,
+ const intptr_t attrib_list[]);
bool
wgbm_window_destroy(struct wcore_window *wc_self);
diff --git a/src/waffle/glx/glx_window.c b/src/waffle/glx/glx_window.c
index 5adf632..331bb51 100644
--- a/src/waffle/glx/glx_window.c
+++ b/src/waffle/glx/glx_window.c
@@ -27,6 +27,7 @@
#include <string.h>
#include <xcb/xcb.h>
+#include "wcore_attrib_list.h"
#include "wcore_error.h"
#include "glx_config.h"
@@ -53,13 +54,19 @@ struct wcore_window*
glx_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
int32_t width,
- int32_t height)
+ int32_t height,
+ const intptr_t attrib_list[])
{
struct glx_window *self;
struct glx_display *dpy = glx_display(wc_config->display);
struct glx_config *config = glx_config(wc_config);
bool ok = true;
+ if (wcore_attrib_list_length(attrib_list) > 0) {
+ wcore_error_bad_attribute(attrib_list[0]);
+ return NULL;
+ }
+
self = wcore_calloc(sizeof(*self));
if (self == NULL)
return NULL;
diff --git a/src/waffle/glx/glx_window.h b/src/waffle/glx/glx_window.h
index 5aed497..b4fd7f9 100644
--- a/src/waffle/glx/glx_window.h
+++ b/src/waffle/glx/glx_window.h
@@ -46,8 +46,9 @@ DEFINE_CONTAINER_CAST_FUNC(glx_window,
struct wcore_window*
glx_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
- int width,
- int height);
+ int32_t width,
+ int32_t height,
+ const intptr_t attrib_list[]);
bool
glx_window_destroy(struct wcore_window *wc_self);
diff --git a/src/waffle/wayland/wayland_window.c b/src/waffle/wayland/wayland_window.c
index f32e995..4ac9c16 100644
--- a/src/waffle/wayland/wayland_window.c
+++ b/src/waffle/wayland/wayland_window.c
@@ -33,6 +33,7 @@
#include "waffle_wayland.h"
+#include "wcore_attrib_list.h"
#include "wcore_error.h"
#include "wegl_config.h"
@@ -96,13 +97,19 @@ static const struct wl_shell_surface_listener shell_surface_listener = {
struct wcore_window*
wayland_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
- int width,
- int height)
+ int32_t width,
+ int32_t height,
+ const intptr_t attrib_list[])
{
struct wayland_window *self;
struct wayland_display *dpy = wayland_display(wc_config->display);
bool ok = true;
+ if (wcore_attrib_list_length(attrib_list) > 0) {
+ wcore_error_bad_attribute(attrib_list[0]);
+ return NULL;
+ }
+
self = wcore_calloc(sizeof(*self));
if (self == NULL)
return NULL;
diff --git a/src/waffle/wayland/wayland_window.h b/src/waffle/wayland/wayland_window.h
index 3e4dbfb..11e6791 100644
--- a/src/waffle/wayland/wayland_window.h
+++ b/src/waffle/wayland/wayland_window.h
@@ -60,7 +60,8 @@ struct wcore_window*
wayland_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
int32_t width,
- int32_t height);
+ int32_t height,
+ const intptr_t attrib_list[]);
bool
wayland_window_destroy(struct wcore_window *wc_self);
diff --git a/src/waffle/wgl/wgl_window.c b/src/waffle/wgl/wgl_window.c
index ad8cf6f..99dd194 100644
--- a/src/waffle/wgl/wgl_window.c
+++ b/src/waffle/wgl/wgl_window.c
@@ -25,6 +25,7 @@
#include <windows.h>
+#include "wcore_attrib_list.h"
#include "wcore_error.h"
#include "wgl_config.h"
@@ -69,13 +70,19 @@ struct wcore_window*
wgl_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
int32_t width,
- int32_t height)
+ int32_t height,
+ const intptr_t attrib_list[])
{
struct wgl_config *config = wgl_config(wc_config);
bool ok;
assert(config->window);
+ if (wcore_attrib_list_length(attrib_list) > 0) {
+ wcore_error_bad_attribute(attrib_list[0]);
+ return NULL;
+ }
+
// Currently we do not allow multiple windows per config.
// Neither piglit nor the waffle examples do that yet, so just
// return NULL in case that ever changes.
diff --git a/src/waffle/wgl/wgl_window.h b/src/waffle/wgl/wgl_window.h
index 34beac8..9b11509 100644
--- a/src/waffle/wgl/wgl_window.h
+++ b/src/waffle/wgl/wgl_window.h
@@ -58,7 +58,8 @@ struct wcore_window*
wgl_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
int32_t width,
- int32_t height);
+ int32_t height,
+ const intptr_t attrib_list[]);
bool
wgl_window_destroy(struct wcore_window *wc_self);
diff --git a/src/waffle/xegl/xegl_window.c b/src/waffle/xegl/xegl_window.c
index 9a20f75..ab66314 100644
--- a/src/waffle/xegl/xegl_window.c
+++ b/src/waffle/xegl/xegl_window.c
@@ -28,6 +28,7 @@
#include <xcb/xcb.h>
+#include "wcore_attrib_list.h"
#include "wcore_error.h"
#include "wegl_config.h"
@@ -56,7 +57,8 @@ struct wcore_window*
xegl_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
int32_t width,
- int32_t height)
+ int32_t height,
+ const intptr_t attrib_list[])
{
struct xegl_window *self;
struct xegl_display *dpy = xegl_display(wc_config->display);
@@ -65,6 +67,11 @@ xegl_window_create(struct wcore_platform *wc_plat,
xcb_visualid_t visual;
bool ok = true;
+ if (wcore_attrib_list_length(attrib_list) > 0) {
+ wcore_error_bad_attribute(attrib_list[0]);
+ return NULL;
+ }
+
self = wcore_calloc(sizeof(*self));
if (self == NULL)
return NULL;
diff --git a/src/waffle/xegl/xegl_window.h b/src/waffle/xegl/xegl_window.h
index 1f963ba..e59c02f 100644
--- a/src/waffle/xegl/xegl_window.h
+++ b/src/waffle/xegl/xegl_window.h
@@ -56,8 +56,9 @@ xegl_window(struct wcore_window *wc_self)
struct wcore_window*
xegl_window_create(struct wcore_platform *wc_plat,
struct wcore_config *wc_config,
- int width,
- int height);
+ int32_t width,
+ int32_t height,
+ const intptr_t attrib_list[]);
bool
xegl_window_destroy(struct wcore_window *wc_self);