Merge "Stop pretending USE_OPENGL_RENDERER is a thing"
diff --git a/core/jni/Android.mk b/core/jni/Android.mk
index 2d54742..1e816ae 100644
--- a/core/jni/Android.mk
+++ b/core/jni/Android.mk
@@ -16,10 +16,6 @@
     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 @@
     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
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index ceec0e3..f506569 100755
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -363,24 +363,20 @@
 
 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;
 }
diff --git a/core/jni/android/graphics/CanvasProperty.cpp b/core/jni/android/graphics/CanvasProperty.cpp
index a69a457..deb4971 100644
--- a/core/jni/android/graphics/CanvasProperty.cpp
+++ b/core/jni/android/graphics/CanvasProperty.cpp
@@ -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 @@
 };
 
 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
diff --git a/core/jni/android/graphics/NinePatch.cpp b/core/jni/android/graphics/NinePatch.cpp
index d868f28..543323c 100644
--- a/core/jni/android/graphics/NinePatch.cpp
+++ b/core/jni/android/graphics/NinePatch.cpp
@@ -80,14 +80,12 @@
 
     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,
diff --git a/core/jni/android/graphics/Path.cpp b/core/jni/android/graphics/Path.cpp
index 1e4eb75..831ce09 100644
--- a/core/jni/android/graphics/Path.cpp
+++ b/core/jni/android/graphics/Path.cpp
@@ -38,13 +38,11 @@
 
     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) {
diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp
index ac30bda..084117c 100644
--- a/core/jni/android_view_GLES20Canvas.cpp
+++ b/core/jni/android_view_GLES20Canvas.cpp
@@ -57,13 +57,6 @@
     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 @@
     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 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 @@
 
 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 @@
 
     { "nGetMaximumTextureWidth",  "()I",       (void*) android_view_GLES20Canvas_getMaxTextureWidth },
     { "nGetMaximumTextureHeight", "()I",       (void*) android_view_GLES20Canvas_getMaxTextureHeight },
-
-#endif
 };
 
 static JNINativeMethod gActivityThreadMethods[] = {
@@ -949,10 +923,8 @@
 };
 
 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));
 }
diff --git a/core/jni/android_view_HardwareLayer.cpp b/core/jni/android_view_HardwareLayer.cpp
index cefb3da..f539127 100644
--- a/core/jni/android_view_HardwareLayer.cpp
+++ b/core/jni/android_view_HardwareLayer.cpp
@@ -41,8 +41,6 @@
 
 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 @@
     return layer->backingLayer()->getTexture();
 }
 
-#endif // USE_OPENGL_RENDERER
-
 // ----------------------------------------------------------------------------
 // JNI Glue
 // ----------------------------------------------------------------------------
@@ -96,8 +92,6 @@
 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 @@
     { "nUpdateSurfaceTexture",   "(J)V",       (void*) android_view_HardwareLayer_updateSurfaceTexture },
 
     { "nGetTexName",             "(J)I",       (void*) android_view_HardwareLayer_getTexName },
-#endif
 };
 
 int register_android_view_HardwareLayer(JNIEnv* env) {
diff --git a/core/jni/android_view_RenderNode.cpp b/core/jni/android_view_RenderNode.cpp
index a1d3bc6..2b5a961 100644
--- a/core/jni/android_view_RenderNode.cpp
+++ b/core/jni/android_view_RenderNode.cpp
@@ -34,13 +34,6 @@
 
 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 @@
     renderNode->animators().endAllStagingAnimators();
 }
 
-#endif // USE_OPENGL_RENDERER
-
 // ----------------------------------------------------------------------------
 // JNI Glue
 // ----------------------------------------------------------------------------
@@ -478,7 +469,6 @@
 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 @@
 
     { "nAddAnimator",              "(JJ)V", (void*) android_view_RenderNode_addAnimator },
     { "nEndAllAnimators",          "(J)V", (void*) android_view_RenderNode_endAllAnimators },
-#endif
 };
 
 int register_android_view_RenderNode(JNIEnv* env) {
diff --git a/core/jni/android_view_RenderNodeAnimator.cpp b/core/jni/android_view_RenderNodeAnimator.cpp
index 0978ebb..4177ee2 100644
--- a/core/jni/android_view_RenderNodeAnimator.cpp
+++ b/core/jni/android_view_RenderNodeAnimator.cpp
@@ -37,8 +37,6 @@
     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 @@
     animator->end();
 }
 
-#endif
-
 // ----------------------------------------------------------------------------
 // JNI Glue
 // ----------------------------------------------------------------------------
@@ -198,7 +194,6 @@
 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 @@
     { "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);
diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp
index 9b06293..068b24e 100644
--- a/core/jni/android_view_ThreadedRenderer.cpp
+++ b/core/jni/android_view_ThreadedRenderer.cpp
@@ -44,8 +44,6 @@
 
 namespace android {
 
-#ifdef USE_OPENGL_RENDERER
-
 using namespace android::uirenderer;
 using namespace android::uirenderer::renderthread;
 
@@ -399,8 +397,6 @@
     proxy->dumpProfileInfo(fd);
 }
 
-#endif
-
 // ----------------------------------------------------------------------------
 // Shaders
 // ----------------------------------------------------------------------------
@@ -420,7 +416,6 @@
 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 @@
     { "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 },
 };
diff --git a/core/jni/com_android_internal_view_animation_NativeInterpolatorFactoryHelper.cpp b/core/jni/com_android_internal_view_animation_NativeInterpolatorFactoryHelper.cpp
index c5c2e9d..2c65d62 100644
--- a/core/jni/com_android_internal_view_animation_NativeInterpolatorFactoryHelper.cpp
+++ b/core/jni/com_android_internal_view_animation_NativeInterpolatorFactoryHelper.cpp
@@ -26,8 +26,6 @@
 
 using namespace uirenderer;
 
-#ifdef USE_OPENGL_RENDERER
-
 static jlong createAccelerateDecelerateInterpolator(JNIEnv* env, jobject clazz) {
     return reinterpret_cast<jlong>(new AccelerateDecelerateInterpolator());
 }
@@ -74,8 +72,6 @@
     return reinterpret_cast<jlong>(new LUTInterpolator(lut, len));
 }
 
-#endif
-
 // ----------------------------------------------------------------------------
 // JNI Glue
 // ----------------------------------------------------------------------------
@@ -83,7 +79,6 @@
 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 @@
     { "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) {
diff --git a/libs/hwui/Android.common.mk b/libs/hwui/Android.common.mk
index 70db03d..536912a 100644
--- a/libs/hwui/Android.common.mk
+++ b/libs/hwui/Android.common.mk
@@ -76,7 +76,7 @@
 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
 
diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk
index 1b73fbd..aa8db26 100644
--- a/libs/hwui/Android.mk
+++ b/libs/hwui/Android.mk
@@ -2,16 +2,12 @@
 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))
diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp
index 674102b..bb4ac83 100644
--- a/libs/hwui/Caches.cpp
+++ b/libs/hwui/Caches.cpp
@@ -29,10 +29,8 @@
 
 namespace android {
 
-#ifdef USE_OPENGL_RENDERER
 using namespace uirenderer;
 ANDROID_SINGLETON_STATIC_INSTANCE(Caches);
-#endif
 
 namespace uirenderer {
 
diff --git a/libs/hwui/DisplayListLogBuffer.cpp b/libs/hwui/DisplayListLogBuffer.cpp
index bc9e7bd..23b6cff 100644
--- a/libs/hwui/DisplayListLogBuffer.cpp
+++ b/libs/hwui/DisplayListLogBuffer.cpp
@@ -47,10 +47,8 @@
 
 namespace android {
 
-#ifdef USE_OPENGL_RENDERER
 using namespace uirenderer;
 ANDROID_SINGLETON_STATIC_INSTANCE(DisplayListLogBuffer);
-#endif
 
 namespace uirenderer {
 
diff --git a/libs/hwui/ResourceCache.cpp b/libs/hwui/ResourceCache.cpp
index 31bd637..8a48a6e 100644
--- a/libs/hwui/ResourceCache.cpp
+++ b/libs/hwui/ResourceCache.cpp
@@ -22,10 +22,8 @@
 
 namespace android {
 
-#ifdef USE_OPENGL_RENDERER
 using namespace uirenderer;
 ANDROID_SINGLETON_STATIC_INSTANCE(ResourceCache);
-#endif
 
 namespace uirenderer {