diff options
author | Mathias Agopian <mathias@google.com> | 2009-07-30 18:14:56 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2009-07-30 18:14:56 -0700 |
commit | 5b5c9144872b4e31ba5a041dce585a8ddbbe495d (patch) | |
tree | a87a028c1485452127f0ec9c0e8214d419fe6753 /include/ui/egl | |
parent | 5e631892fb9ac4da83b70ba129ceb6a3f501bad9 (diff) | |
download | frameworks_base-5b5c9144872b4e31ba5a041dce585a8ddbbe495d.zip frameworks_base-5b5c9144872b4e31ba5a041dce585a8ddbbe495d.tar.gz frameworks_base-5b5c9144872b4e31ba5a041dce585a8ddbbe495d.tar.bz2 |
fixed some issues with the software renderer when surfaces are made current.
there was several issues:
- when a surface was made non-current, the last frame wasn't shown and the buffer could stay locked
- when a surface was made current the 2nd time, it would not dequeue a new buffer
now, queue/dequeue are done when the surface is made current.
for this to work, a new query() hook had to be added on android_native_window_t, it allows to retrieve some attributes of a window (currently only width and height).
Diffstat (limited to 'include/ui/egl')
-rw-r--r-- | include/ui/egl/android_natives.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/include/ui/egl/android_natives.h b/include/ui/egl/android_natives.h index 0398ea7..a3a1316 100644 --- a/include/ui/egl/android_natives.h +++ b/include/ui/egl/android_natives.h @@ -60,6 +60,12 @@ struct android_native_base_t // --------------------------------------------------------------------------- +/* attributes queriable with query() */ +enum { + NATIVE_WINDOW_WIDTH = 0, + NATIVE_WINDOW_HEIGHT = 1 +}; + struct android_native_window_t { #ifdef __cplusplus @@ -129,8 +135,15 @@ struct android_native_window_t int (*queueBuffer)(struct android_native_window_t* window, struct android_native_buffer_t* buffer); + /* + * hook used to retrieve information about the native window. + * + * Returns 0 on success or -errno on error. + */ + int (*query)(struct android_native_window_t* window, + int what, int* value); - void* reserved_proc[5]; + void* reserved_proc[4]; }; // --------------------------------------------------------------------------- |