зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
39e01a1284
Коммит
3bd8918fcf
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче