diff options
author | Chia-I Wu <olvaffe@gmail.com> | 2010-01-20 15:52:50 +0800 |
---|---|---|
committer | Chia-I Wu <olvaffe@gmail.com> | 2010-01-20 18:15:26 +0800 |
commit | 11f4360f2e915f236558da22efe5bdabd81446f3 (patch) | |
tree | 8fdd0a0b5cf22e28ed68de3fcd3e7302a3a1692c /src/gallium/state_trackers/egl_g3d/common/native.h | |
parent | c5766c4ae39b4190965abd65eaf67b478a9ad028 (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.h | 37 |
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); |