summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/egl/wayland/native_wayland.c
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2011-09-08 16:05:32 +0800
committerChia-I Wu <olv@lunarg.com>2011-09-08 16:05:32 +0800
commitee0e6ae2bb25bfa02547ef9986bdff8afc792d49 (patch)
treec6247ab9c3f15de35c4b18a3c8d3867cdbdb1adf /src/gallium/state_trackers/egl/wayland/native_wayland.c
parent93a96abe16068fa3ca8a1eb8d1c34195bffdc470 (diff)
Revert "st/egl: correctly return configs under wayland"
Diffstat (limited to 'src/gallium/state_trackers/egl/wayland/native_wayland.c')
-rw-r--r--src/gallium/state_trackers/egl/wayland/native_wayland.c28
1 files changed, 24 insertions, 4 deletions
diff --git a/src/gallium/state_trackers/egl/wayland/native_wayland.c b/src/gallium/state_trackers/egl/wayland/native_wayland.c
index 14cc908cf7a..29c9b46d612 100644
--- a/src/gallium/state_trackers/egl/wayland/native_wayland.c
+++ b/src/gallium/state_trackers/egl/wayland/native_wayland.c
@@ -44,11 +44,31 @@ wayland_display_get_configs (struct native_display *ndpy, int *num_configs)
const struct native_config **configs;
int i;
- configs = MALLOC(display->num_configs * sizeof(*configs));
- if (configs) {
- for (i = 0; i < display->num_configs; i++) {
- configs[i] = &display->configs[i].base;
+ if (!display->config) {
+ struct native_config *nconf;
+ display->config = CALLOC(2, sizeof(*display->config));
+ if (!display->config)
+ return NULL;
+
+ for (i = 0; i < 2; ++i) {
+ nconf = &display->config[i].base;
+
+ nconf->buffer_mask =
+ (1 << NATIVE_ATTACHMENT_FRONT_LEFT) |
+ (1 << NATIVE_ATTACHMENT_BACK_LEFT);
+
+ nconf->window_bit = TRUE;
+ nconf->pixmap_bit = TRUE;
}
+
+ display->config[0].base.color_format = PIPE_FORMAT_B8G8R8A8_UNORM;
+ display->config[1].base.color_format = PIPE_FORMAT_B8G8R8X8_UNORM;
+ }
+
+ configs = MALLOC(2 * sizeof(*configs));
+ if (configs) {
+ configs[0] = &display->config[0].base;
+ configs[1] = &display->config[1].base;
if (num_configs)
*num_configs = 2;
}