[RenderScript] Use ANativeWindow_fromSurface to get ANativeWindow
from Java Surface. - ANativeWindow_fromSurface and ANativeWindow_release has to be used in pairs to avoid leaks. Bug: 34396220 Test: mm, CTS tests pass. Change-Id: Id67fd005a056df4d496a48f705d445a2d8c45232
This commit is contained in:
@@ -5,6 +5,7 @@ LOCAL_SRC_FILES:= \
|
||||
android_renderscript_RenderScript.cpp
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := \
|
||||
libandroid \
|
||||
libandroid_runtime \
|
||||
libandroidfw \
|
||||
libnativehelper \
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
#include "android_runtime/android_view_Surface.h"
|
||||
#include "android_runtime/android_util_AssetManager.h"
|
||||
#include "android/graphics/GraphicsJNI.h"
|
||||
#include "android/native_window.h"
|
||||
#include "android/native_window_jni.h"
|
||||
|
||||
#include <rsEnv.h>
|
||||
#include <rsApiStubs.h>
|
||||
@@ -1281,13 +1283,12 @@ nAllocationSetSurface(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jobje
|
||||
(RsAllocation)alloc, (Surface *)sur);
|
||||
}
|
||||
|
||||
sp<Surface> s;
|
||||
ANativeWindow *anw = nullptr;
|
||||
if (sur != 0) {
|
||||
s = android_view_Surface_getSurface(_env, sur);
|
||||
anw = ANativeWindow_fromSurface(_env, sur);
|
||||
}
|
||||
|
||||
rsAllocationSetSurface((RsContext)con, (RsAllocation)alloc,
|
||||
static_cast<ANativeWindow *>(s.get()));
|
||||
rsAllocationSetSurface((RsContext)con, (RsAllocation)alloc, anw);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
Reference in New Issue
Block a user