Bug 1294479 - Remove ANativeWindow methods from AndroidBridge; r=snorp

The ANativeWindow methods in AndroidBridge are just wrappers around
ANativeWindow calls in the NDK. We should just use those calls instead
of going through the wrappers.
This commit is contained in:
Jim Chen 2016-08-19 17:17:24 -04:00
Родитель 39e01a1284
Коммит 3bd8918fcf
4 изменённых файлов: 11 добавлений и 35 удалений

Просмотреть файл

@ -23,7 +23,8 @@
#endif
#ifdef MOZ_WIDGET_ANDROID
#include "AndroidBridge.h"
#include <android/native_window.h>
#include <android/native_window_jni.h>
#endif
#ifdef ANDROID
@ -183,10 +184,12 @@ CreateSurfaceForWindow(nsIWidget* widget, const EGLConfig& config) {
MOZ_CRASH("GFX: Failed to get Java surface.\n");
}
JNIEnv* const env = jni::GetEnvForThread();
void* nativeWindow = AndroidBridge::Bridge()->AcquireNativeWindow(env, reinterpret_cast<jobject>(javaSurface));
newSurface = sEGLLibrary.fCreateWindowSurface(sEGLLibrary.fGetDisplay(EGL_DEFAULT_DISPLAY), config,
nativeWindow, 0);
AndroidBridge::Bridge()->ReleaseNativeWindow(nativeWindow);
ANativeWindow* const nativeWindow = ANativeWindow_fromSurface(
env, reinterpret_cast<jobject>(javaSurface));
newSurface = sEGLLibrary.fCreateWindowSurface(
sEGLLibrary.fGetDisplay(EGL_DEFAULT_DISPLAY),
config, nativeWindow, 0);
ANativeWindow_release(nativeWindow);
#else
newSurface = sEGLLibrary.fCreateWindowSurface(EGL_DISPLAY(), config,
GET_NATIVE_WINDOW(widget), 0);

Просмотреть файл

@ -56,7 +56,7 @@
#include "nsRegion.h" // for nsIntRegion, etc
#ifdef MOZ_WIDGET_ANDROID
#include <android/log.h>
#include "AndroidBridge.h"
#include <android/native_window.h>
#endif
#if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_WIDGET_GONK)
#include "opengl/CompositorOGL.h"
@ -1115,7 +1115,8 @@ LayerManagerComposite::RenderToPresentationSurface()
return;
}
const IntSize windowSize = AndroidBridge::Bridge()->GetNativeWindowSize(window);
const IntSize windowSize(ANativeWindow_getWidth(window),
ANativeWindow_getHeight(window));
#elif defined(MOZ_WIDGET_GONK)
CompositorOGL* compositor = mCompositor->AsCompositorOGL();

Просмотреть файл

@ -7,8 +7,6 @@
#include <dlfcn.h>
#include <math.h>
#include <GLES2/gl2.h>
#include <android/native_window.h>
#include <android/native_window_jni.h>
#include "mozilla/layers/CompositorBridgeChild.h"
#include "mozilla/layers/CompositorBridgeParent.h"
@ -1034,28 +1032,6 @@ AndroidBridge::GetCurrentNetworkInformation(hal::NetworkInformation* aNetworkInf
env->ReleaseDoubleArrayElements(arr.Get(), info, 0);
}
void*
AndroidBridge::AcquireNativeWindow(JNIEnv* aEnv, jobject aSurface)
{
return ANativeWindow_fromSurface(aEnv, aSurface);
}
void
AndroidBridge::ReleaseNativeWindow(void *window)
{
return ANativeWindow_release((ANativeWindow*)window);
}
IntSize
AndroidBridge::GetNativeWindowSize(void* window)
{
if (!window) {
return IntSize(0, 0);
}
return IntSize(ANativeWindow_getWidth((ANativeWindow*)window), ANativeWindow_getHeight((ANativeWindow*)window));
}
jobject
AndroidBridge::GetGlobalContextRef() {
if (sGlobalContext) {

Просмотреть файл

@ -193,10 +193,6 @@ public:
// DeleteGlobalRef() when the context is no longer needed.
jobject GetGlobalContextRef(void);
void *AcquireNativeWindow(JNIEnv* aEnv, jobject aSurface);
void ReleaseNativeWindow(void *window);
mozilla::gfx::IntSize GetNativeWindowSize(void* window);
void HandleGeckoMessage(JSContext* cx, JS::HandleObject message);
bool InitCamera(const nsCString& contentType, uint32_t camera, uint32_t *width, uint32_t *height, uint32_t *fps);