diff options
author | Dianne Hackborn <hackbod@google.com> | 2010-06-30 18:35:14 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2010-07-01 14:43:23 -0700 |
commit | 54a181b1a2b1517a9479b21fbf7705a688232faf (patch) | |
tree | 90bf20d8f5f818d357c677cb713e964b920dea67 /core/jni/com_google_android_gles_jni_EGLImpl.cpp | |
parent | 65c83b906d01c3c1493d0547757dbb16d4c3722a (diff) | |
download | frameworks_base-54a181b1a2b1517a9479b21fbf7705a688232faf.zip frameworks_base-54a181b1a2b1517a9479b21fbf7705a688232faf.tar.gz frameworks_base-54a181b1a2b1517a9479b21fbf7705a688232faf.tar.bz2 |
Make real API for native code to get its window.
Added implementation to use ANativeWindow and provide
it to a NativeActivity.
Change-Id: I890d71b6e15d4af71e6cf81b327961d7061ec1c2
Diffstat (limited to 'core/jni/com_google_android_gles_jni_EGLImpl.cpp')
-rw-r--r-- | core/jni/com_google_android_gles_jni_EGLImpl.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/core/jni/com_google_android_gles_jni_EGLImpl.cpp b/core/jni/com_google_android_gles_jni_EGLImpl.cpp index d5cde48..866c038 100644 --- a/core/jni/com_google_android_gles_jni_EGLImpl.cpp +++ b/core/jni/com_google_android_gles_jni_EGLImpl.cpp @@ -25,10 +25,9 @@ #include <SkBitmap.h> #include <SkPixelRef.h> -namespace android { +#include "android_view_Surface.h" -extern EGLNativeWindowType android_Surface_getEGLNativeWindow( - JNIEnv* env, jobject clazz); +namespace android { static jclass gDisplay_class; static jclass gContext_class; @@ -325,7 +324,7 @@ static jint jni_eglCreateWindowSurface(JNIEnv *_env, jobject _this, jobject disp } EGLDisplay dpy = getDisplay(_env, display); EGLContext cnf = getConfig(_env, config); - EGLNativeWindowType window = 0; + sp<ANativeWindow> window; if (native_window == NULL) { not_valid_surface: doThrow(_env, "java/lang/IllegalArgumentException", @@ -333,12 +332,12 @@ not_valid_surface: return 0; } - window = android_Surface_getEGLNativeWindow(_env, native_window); + window = android_Surface_getNativeWindow(_env, native_window); if (window == NULL) goto not_valid_surface; jint* base = beginNativeAttribList(_env, attrib_list); - EGLSurface sur = eglCreateWindowSurface(dpy, cnf, window, base); + EGLSurface sur = eglCreateWindowSurface(dpy, cnf, window.get(), base); endNativeAttributeList(_env, attrib_list, base); return (jint)sur; } |