Merge "Stop pretending USE_OPENGL_RENDERER is a thing"

This commit is contained in:
John Reck
2014-12-18 22:42:10 +00:00
committed by Android (Google) Code Review
16 changed files with 28 additions and 128 deletions

View File

@@ -16,10 +16,6 @@ else
LOCAL_CFLAGS += -DPACKED=""
endif
ifeq ($(USE_OPENGL_RENDERER),true)
LOCAL_CFLAGS += -DUSE_OPENGL_RENDERER
endif
LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
LOCAL_SRC_FILES:= \
@@ -247,11 +243,8 @@ LOCAL_SHARED_LIBRARIES := \
libprocessgroup \
libnativebridge
ifeq ($(USE_OPENGL_RENDERER),true)
LOCAL_SHARED_LIBRARIES += libhwui
endif
LOCAL_SHARED_LIBRARIES += \
libhwui \
libdl
# we need to access the private Bionic header

View File

@@ -363,24 +363,20 @@ static jobject Bitmap_copy(JNIEnv* env, jobject, jlong srcHandle,
static void Bitmap_destructor(JNIEnv* env, jobject, jlong bitmapHandle) {
SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
#ifdef USE_OPENGL_RENDERER
if (android::uirenderer::ResourceCache::hasInstance()) {
android::uirenderer::ResourceCache::getInstance().destructor(bitmap);
return;
} else {
delete bitmap;
}
#endif // USE_OPENGL_RENDERER
delete bitmap;
}
static jboolean Bitmap_recycle(JNIEnv* env, jobject, jlong bitmapHandle) {
SkBitmap* bitmap = reinterpret_cast<SkBitmap*>(bitmapHandle);
#ifdef USE_OPENGL_RENDERER
if (android::uirenderer::ResourceCache::hasInstance()) {
bool result;
result = android::uirenderer::ResourceCache::getInstance().recycle(bitmap);
return result ? JNI_TRUE : JNI_FALSE;
}
#endif // USE_OPENGL_RENDERER
bitmap->setPixels(NULL, NULL);
return JNI_TRUE;
}

View File

@@ -24,12 +24,6 @@
namespace android {
#ifdef USE_OPENGL_RENDERER
static const bool kUseOpenGLRenderer = true;
#else
static const bool kUseOpenGLRenderer = false;
#endif
using namespace uirenderer;
static jlong createFloat(JNIEnv* env, jobject clazz, jfloat initialValue) {
@@ -51,11 +45,8 @@ static JNINativeMethod gMethods[] = {
};
int register_android_graphics_CanvasProperty(JNIEnv* env) {
if (kUseOpenGLRenderer) {
return RegisterMethodsOrDie(env, "android/graphics/CanvasProperty", gMethods,
NELEM(gMethods));
}
return 0;
return RegisterMethodsOrDie(env, "android/graphics/CanvasProperty", gMethods,
NELEM(gMethods));
}
}; // namespace android

View File

@@ -80,14 +80,12 @@ public:
static void finalize(JNIEnv* env, jobject, jlong patchHandle) {
int8_t* patch = reinterpret_cast<int8_t*>(patchHandle);
#ifdef USE_OPENGL_RENDERER
if (android::uirenderer::ResourceCache::hasInstance()) {
Res_png_9patch* p = (Res_png_9patch*) patch;
android::uirenderer::ResourceCache::getInstance().destructor(p);
return;
} else {
delete[] patch;
}
#endif // USE_OPENGL_RENDERER
delete[] patch;
}
static void draw(JNIEnv* env, SkCanvas* canvas, SkRect& bounds, const SkBitmap* bitmap,

View File

@@ -38,13 +38,11 @@ public:
static void finalizer(JNIEnv* env, jobject clazz, jlong objHandle) {
SkPath* obj = reinterpret_cast<SkPath*>(objHandle);
#ifdef USE_OPENGL_RENDERER
if (android::uirenderer::ResourceCache::hasInstance()) {
android::uirenderer::ResourceCache::getInstance().destructor(obj);
return;
} else {
delete obj;
}
#endif
delete obj;
}
static jlong init1(JNIEnv* env, jobject clazz) {

View File

@@ -57,13 +57,6 @@ static struct {
jmethodID set;
} gRectClassInfo;
/**
* Note: DisplayListRenderer JNI layer is generated and compiled only on supported
* devices. This means all the logic must be compiled only when the
* preprocessor variable USE_OPENGL_RENDERER is defined.
*/
#ifdef USE_OPENGL_RENDERER
// ----------------------------------------------------------------------------
// Defines
// ----------------------------------------------------------------------------
@@ -803,32 +796,20 @@ static void android_view_GLES20Canvas_drawLayer(JNIEnv* env, jobject clazz,
renderer->drawLayer(layer, x, y);
}
#endif // USE_OPENGL_RENDERER
#ifdef USE_OPENGL_RENDERER
static const bool kUseOpenGLRenderer = true;
#else
static const bool kUseOpenGLRenderer = false;
#endif
// ----------------------------------------------------------------------------
// Common
// ----------------------------------------------------------------------------
static jboolean android_view_GLES20Canvas_isAvailable(JNIEnv* env, jobject clazz) {
if (kUseOpenGLRenderer) {
char prop[PROPERTY_VALUE_MAX];
if (property_get("ro.kernel.qemu", prop, NULL) == 0) {
// not in the emulator
return JNI_TRUE;
}
// In the emulator this property will be set to 1 when hardware GLES is
// enabled, 0 otherwise. On old emulator versions it will be undefined.
property_get("ro.kernel.qemu.gles", prop, "0");
return atoi(prop) == 1 ? JNI_TRUE : JNI_FALSE;
} else {
return JNI_FALSE;
char prop[PROPERTY_VALUE_MAX];
if (property_get("ro.kernel.qemu", prop, NULL) == 0) {
// not in the emulator
return JNI_TRUE;
}
// In the emulator this property will be set to 1 when hardware GLES is
// enabled, 0 otherwise. On old emulator versions it will be undefined.
property_get("ro.kernel.qemu.gles", prop, "0");
return atoi(prop) == 1 ? JNI_TRUE : JNI_FALSE;
}
// ----------------------------------------------------------------------------
@@ -837,10 +818,8 @@ static jboolean android_view_GLES20Canvas_isAvailable(JNIEnv* env, jobject clazz
static void
android_app_ActivityThread_dumpGraphics(JNIEnv* env, jobject clazz, jobject javaFileDescriptor) {
if (kUseOpenGLRenderer) {
int fd = jniGetFDFromFileDescriptor(env, javaFileDescriptor);
android::uirenderer::renderthread::RenderProxy::outputLogBuffer(fd);
}
int fd = jniGetFDFromFileDescriptor(env, javaFileDescriptor);
android::uirenderer::renderthread::RenderProxy::outputLogBuffer(fd);
}
// ----------------------------------------------------------------------------
@@ -851,9 +830,6 @@ const char* const kClassPathName = "android/view/GLES20Canvas";
static JNINativeMethod gMethods[] = {
{ "nIsAvailable", "()Z", (void*) android_view_GLES20Canvas_isAvailable },
#ifdef USE_OPENGL_RENDERER
{ "nDestroyRenderer", "(J)V", (void*) android_view_GLES20Canvas_destroyRenderer },
{ "nSetViewport", "(JII)V", (void*) android_view_GLES20Canvas_setViewport },
{ "nSetHighContrastText","(JZ)V", (void*) android_view_GLES20Canvas_setHighContrastText },
@@ -939,8 +915,6 @@ static JNINativeMethod gMethods[] = {
{ "nGetMaximumTextureWidth", "()I", (void*) android_view_GLES20Canvas_getMaxTextureWidth },
{ "nGetMaximumTextureHeight", "()I", (void*) android_view_GLES20Canvas_getMaxTextureHeight },
#endif
};
static JNINativeMethod gActivityThreadMethods[] = {
@@ -949,10 +923,8 @@ static JNINativeMethod gActivityThreadMethods[] = {
};
int register_android_view_GLES20Canvas(JNIEnv* env) {
if (kUseOpenGLRenderer) {
jclass clazz = FindClassOrDie(env, "android/graphics/Rect");
gRectClassInfo.set = GetMethodIDOrDie(env, clazz, "set", "(IIII)V");
}
jclass clazz = FindClassOrDie(env, "android/graphics/Rect");
gRectClassInfo.set = GetMethodIDOrDie(env, clazz, "set", "(IIII)V");
return RegisterMethodsOrDie(env, kClassPathName, gMethods, NELEM(gMethods));
}

View File

@@ -41,8 +41,6 @@ namespace android {
using namespace uirenderer;
#ifdef USE_OPENGL_RENDERER
static jboolean android_view_HardwareLayer_prepare(JNIEnv* env, jobject clazz,
jlong layerUpdaterPtr, jint width, jint height, jboolean isOpaque) {
DeferredLayerUpdater* layer = reinterpret_cast<DeferredLayerUpdater*>(layerUpdaterPtr);
@@ -87,8 +85,6 @@ static jint android_view_HardwareLayer_getTexName(JNIEnv* env, jobject clazz,
return layer->backingLayer()->getTexture();
}
#endif // USE_OPENGL_RENDERER
// ----------------------------------------------------------------------------
// JNI Glue
// ----------------------------------------------------------------------------
@@ -96,8 +92,6 @@ static jint android_view_HardwareLayer_getTexName(JNIEnv* env, jobject clazz,
const char* const kClassPathName = "android/view/HardwareLayer";
static JNINativeMethod gMethods[] = {
#ifdef USE_OPENGL_RENDERER
{ "nPrepare", "(JIIZ)Z", (void*) android_view_HardwareLayer_prepare },
{ "nSetLayerPaint", "(JJ)V", (void*) android_view_HardwareLayer_setLayerPaint },
{ "nSetTransform", "(JJ)V", (void*) android_view_HardwareLayer_setTransform },
@@ -106,7 +100,6 @@ static JNINativeMethod gMethods[] = {
{ "nUpdateSurfaceTexture", "(J)V", (void*) android_view_HardwareLayer_updateSurfaceTexture },
{ "nGetTexName", "(J)I", (void*) android_view_HardwareLayer_getTexName },
#endif
};
int register_android_view_HardwareLayer(JNIEnv* env) {

View File

@@ -34,13 +34,6 @@ namespace android {
using namespace uirenderer;
/**
* Note: OpenGLRenderer JNI layer is generated and compiled only on supported
* devices. This means all the logic must be compiled only when the
* preprocessor variable USE_OPENGL_RENDERER is defined.
*/
#ifdef USE_OPENGL_RENDERER
#define SET_AND_DIRTY(prop, val, dirtyFlag) \
(reinterpret_cast<RenderNode*>(renderNodePtr)->mutateStagingProperties().prop(val) \
? (reinterpret_cast<RenderNode*>(renderNodePtr)->setPropertyFieldsDirty(dirtyFlag), true) \
@@ -469,8 +462,6 @@ static void android_view_RenderNode_endAllAnimators(JNIEnv* env, jobject clazz,
renderNode->animators().endAllStagingAnimators();
}
#endif // USE_OPENGL_RENDERER
// ----------------------------------------------------------------------------
// JNI Glue
// ----------------------------------------------------------------------------
@@ -478,7 +469,6 @@ static void android_view_RenderNode_endAllAnimators(JNIEnv* env, jobject clazz,
const char* const kClassPathName = "android/view/RenderNode";
static JNINativeMethod gMethods[] = {
#ifdef USE_OPENGL_RENDERER
{ "nCreate", "(Ljava/lang/String;)J", (void*) android_view_RenderNode_create },
{ "nDestroyRenderNode", "(J)V", (void*) android_view_RenderNode_destroyRenderNode },
{ "nSetDisplayListData", "(JJ)V", (void*) android_view_RenderNode_setDisplayListData },
@@ -550,7 +540,6 @@ static JNINativeMethod gMethods[] = {
{ "nAddAnimator", "(JJ)V", (void*) android_view_RenderNode_addAnimator },
{ "nEndAllAnimators", "(J)V", (void*) android_view_RenderNode_endAllAnimators },
#endif
};
int register_android_view_RenderNode(JNIEnv* env) {

View File

@@ -37,8 +37,6 @@ static struct {
jmethodID callOnFinished;
} gRenderNodeAnimatorClassInfo;
#ifdef USE_OPENGL_RENDERER
static JNIEnv* getEnv(JavaVM* vm) {
JNIEnv* env;
if (vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) {
@@ -189,8 +187,6 @@ static void end(JNIEnv* env, jobject clazz, jlong animatorPtr) {
animator->end();
}
#endif
// ----------------------------------------------------------------------------
// JNI Glue
// ----------------------------------------------------------------------------
@@ -198,7 +194,6 @@ static void end(JNIEnv* env, jobject clazz, jlong animatorPtr) {
const char* const kClassPathName = "android/view/RenderNodeAnimator";
static JNINativeMethod gMethods[] = {
#ifdef USE_OPENGL_RENDERER
{ "nCreateAnimator", "(IF)J", (void*) createAnimator },
{ "nCreateCanvasPropertyFloatAnimator", "(JF)J", (void*) createCanvasPropertyFloatAnimator },
{ "nCreateCanvasPropertyPaintAnimator", "(JIF)J", (void*) createCanvasPropertyPaintAnimator },
@@ -212,13 +207,10 @@ static JNINativeMethod gMethods[] = {
{ "nSetListener", "(JLandroid/view/RenderNodeAnimator;)V", (void*) setListener},
{ "nStart", "(J)V", (void*) start},
{ "nEnd", "(J)V", (void*) end },
#endif
};
int register_android_view_RenderNodeAnimator(JNIEnv* env) {
#ifdef USE_OPENGL_RENDERER
sLifecycleChecker.incStrong(0);
#endif
gRenderNodeAnimatorClassInfo.clazz = FindClassOrDie(env, kClassPathName);
gRenderNodeAnimatorClassInfo.clazz = MakeGlobalRefOrDie(env,
gRenderNodeAnimatorClassInfo.clazz);

View File

@@ -44,8 +44,6 @@
namespace android {
#ifdef USE_OPENGL_RENDERER
using namespace android::uirenderer;
using namespace android::uirenderer::renderthread;
@@ -399,8 +397,6 @@ static void android_view_ThreadedRenderer_dumpProfileInfo(JNIEnv* env, jobject c
proxy->dumpProfileInfo(fd);
}
#endif
// ----------------------------------------------------------------------------
// Shaders
// ----------------------------------------------------------------------------
@@ -420,7 +416,6 @@ static void android_view_ThreadedRenderer_setupShadersDiskCache(JNIEnv* env, job
const char* const kClassPathName = "android/view/ThreadedRenderer";
static JNINativeMethod gMethods[] = {
#ifdef USE_OPENGL_RENDERER
{ "nSetAtlas", "(JLandroid/view/GraphicBuffer;[J)V", (void*) android_view_ThreadedRenderer_setAtlas },
{ "nCreateRootRenderNode", "()J", (void*) android_view_ThreadedRenderer_createRootRenderNode },
{ "nCreateProxy", "(ZJ)J", (void*) android_view_ThreadedRenderer_createProxy },
@@ -448,7 +443,6 @@ static JNINativeMethod gMethods[] = {
{ "nStopDrawing", "(J)V", (void*) android_view_ThreadedRenderer_stopDrawing },
{ "nNotifyFramePending", "(J)V", (void*) android_view_ThreadedRenderer_notifyFramePending },
{ "nDumpProfileInfo", "(JLjava/io/FileDescriptor;)V", (void*) android_view_ThreadedRenderer_dumpProfileInfo },
#endif
{ "setupShadersDiskCache", "(Ljava/lang/String;)V",
(void*) android_view_ThreadedRenderer_setupShadersDiskCache },
};

View File

@@ -26,8 +26,6 @@ namespace android {
using namespace uirenderer;
#ifdef USE_OPENGL_RENDERER
static jlong createAccelerateDecelerateInterpolator(JNIEnv* env, jobject clazz) {
return reinterpret_cast<jlong>(new AccelerateDecelerateInterpolator());
}
@@ -74,8 +72,6 @@ static jlong createLutInterpolator(JNIEnv* env, jobject clazz, jfloatArray jlut)
return reinterpret_cast<jlong>(new LUTInterpolator(lut, len));
}
#endif
// ----------------------------------------------------------------------------
// JNI Glue
// ----------------------------------------------------------------------------
@@ -83,7 +79,6 @@ static jlong createLutInterpolator(JNIEnv* env, jobject clazz, jfloatArray jlut)
const char* const kClassPathName = "com/android/internal/view/animation/NativeInterpolatorFactoryHelper";
static JNINativeMethod gMethods[] = {
#ifdef USE_OPENGL_RENDERER
{ "createAccelerateDecelerateInterpolator", "()J", (void*) createAccelerateDecelerateInterpolator },
{ "createAccelerateInterpolator", "(F)J", (void*) createAccelerateInterpolator },
{ "createAnticipateInterpolator", "(F)J", (void*) createAnticipateInterpolator },
@@ -94,7 +89,6 @@ static JNINativeMethod gMethods[] = {
{ "createLinearInterpolator", "()J", (void*) createLinearInterpolator },
{ "createOvershootInterpolator", "(F)J", (void*) createOvershootInterpolator },
{ "createLutInterpolator", "([F)J", (void*) createLutInterpolator },
#endif
};
int register_com_android_internal_view_animation_NativeInterpolatorFactoryHelper(JNIEnv* env) {

View File

@@ -76,7 +76,7 @@ intermediates := $(call intermediates-dir-for,STATIC_LIBRARIES,libRS,TARGET,)
LOCAL_C_INCLUDES += \
external/skia/src/core
LOCAL_CFLAGS += -DUSE_OPENGL_RENDERER -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES
LOCAL_CFLAGS += -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES
LOCAL_CFLAGS += -Wno-unused-parameter
LOCAL_SHARED_LIBRARIES := liblog libcutils libutils libEGL libGLESv2 libskia libui libgui

View File

@@ -2,16 +2,12 @@ LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
# Only build libhwui when USE_OPENGL_RENDERER is
# defined in the current device/board configuration
ifeq ($(USE_OPENGL_RENDERER),true)
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE := libhwui
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE := libhwui
LOCAL_MODULE_TAGS := optional
include $(LOCAL_PATH)/Android.common.mk
include $(LOCAL_PATH)/Android.common.mk
include $(BUILD_SHARED_LIBRARY)
include $(BUILD_SHARED_LIBRARY)
include $(call all-makefiles-under,$(LOCAL_PATH))
endif
include $(call all-makefiles-under,$(LOCAL_PATH))

View File

@@ -29,10 +29,8 @@
namespace android {
#ifdef USE_OPENGL_RENDERER
using namespace uirenderer;
ANDROID_SINGLETON_STATIC_INSTANCE(Caches);
#endif
namespace uirenderer {

View File

@@ -47,10 +47,8 @@
namespace android {
#ifdef USE_OPENGL_RENDERER
using namespace uirenderer;
ANDROID_SINGLETON_STATIC_INSTANCE(DisplayListLogBuffer);
#endif
namespace uirenderer {

View File

@@ -22,10 +22,8 @@
namespace android {
#ifdef USE_OPENGL_RENDERER
using namespace uirenderer;
ANDROID_SINGLETON_STATIC_INSTANCE(ResourceCache);
#endif
namespace uirenderer {