summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/egl_g3d/common/native.h
diff options
context:
space:
mode:
authorChia-I Wu <olvaffe@gmail.com>2010-01-20 15:52:50 +0800
committerChia-I Wu <olvaffe@gmail.com>2010-01-20 18:15:26 +0800
commit11f4360f2e915f236558da22efe5bdabd81446f3 (patch)
tree8fdd0a0b5cf22e28ed68de3fcd3e7302a3a1692c /src/gallium/state_trackers/egl_g3d/common/native.h
parentc5766c4ae39b4190965abd65eaf67b478a9ad028 (diff)
st/egl_g3d: Add support for probe to native displays.
The functions can be used to check if a display is supported without creating a struct native_display. It uses a probe object that can be shared across drivers.
Diffstat (limited to 'src/gallium/state_trackers/egl_g3d/common/native.h')
-rw-r--r--src/gallium/state_trackers/egl_g3d/common/native.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/egl_g3d/common/native.h b/src/gallium/state_trackers/egl_g3d/common/native.h
index f374f2e4a6..72a9cec7ef 100644
--- a/src/gallium/state_trackers/egl_g3d/common/native.h
+++ b/src/gallium/state_trackers/egl_g3d/common/native.h
@@ -47,6 +47,27 @@ enum native_attachment {
NUM_NATIVE_ATTACHMENTS
};
+/**
+ * Enumerations for probe results.
+ */
+enum native_probe_result {
+ NATIVE_PROBE_UNKNOWN,
+ NATIVE_PROBE_FALLBACK,
+ NATIVE_PROBE_SUPPORTED,
+ NATIVE_PROBE_EXACT,
+};
+
+/**
+ * A probe object for display probe.
+ */
+struct native_probe {
+ int magic;
+ EGLNativeDisplayType display;
+ void *data;
+
+ void (*destroy)(struct native_probe *nprobe);
+};
+
struct native_surface {
void (*destroy)(struct native_surface *nsurf);
@@ -231,6 +252,22 @@ native_attachment_mask_test(uint mask, enum native_attachment att)
return !!(mask & (1 << att));
}
+/**
+ * Return a probe object for the given display.
+ *
+ * Note that the returned object may be cached and used by different native
+ * display modules. It allows fast probing when multiple modules probe the
+ * same display.
+ */
+struct native_probe *
+native_create_probe(EGLNativeDisplayType dpy);
+
+/**
+ * Probe the probe object.
+ */
+enum native_probe_result
+native_get_probe_result(struct native_probe *nprobe);
+
const char *
native_get_name(void);