From 15d556e5d3729a287718c7be5c36079a7f8633c6 Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Wed, 16 Dec 2015 15:57:21 -0800 Subject: [PATCH] Add temporary switch for new renderer in JNI bug:22480459 Change-Id: I6cb19332cb09650f20b1cc2da3473a2618a50b1e --- core/jni/android_view_DisplayListCanvas.cpp | 24 +++++++++++++-------- libs/hwui/RecordingCanvas.h | 2 +- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/core/jni/android_view_DisplayListCanvas.cpp b/core/jni/android_view_DisplayListCanvas.cpp index 9b41eb3c659bf..d2c99fd5595a9 100644 --- a/core/jni/android_view_DisplayListCanvas.cpp +++ b/core/jni/android_view_DisplayListCanvas.cpp @@ -27,7 +27,13 @@ #include #include +#if HWUI_NEW_OPS +#include +typedef android::uirenderer::RecordingCanvas canvas_t; +#else #include +typedef android::uirenderer::DisplayListCanvas canvas_t; +#endif #include #include #include @@ -46,7 +52,7 @@ using namespace uirenderer; static void android_view_DisplayListCanvas_insertReorderBarrier(JNIEnv* env, jobject clazz, jlong canvasPtr, jboolean reorderEnable) { - DisplayListCanvas* canvas = reinterpret_cast(canvasPtr); + canvas_t* canvas = reinterpret_cast(canvasPtr); canvas->insertReorderBarrier(reorderEnable); } @@ -56,7 +62,7 @@ static void android_view_DisplayListCanvas_insertReorderBarrier(JNIEnv* env, job static void android_view_DisplayListCanvas_callDrawGLFunction(JNIEnv* env, jobject clazz, jlong canvasPtr, jlong functorPtr) { - DisplayListCanvas* canvas = reinterpret_cast(canvasPtr); + canvas_t* canvas = reinterpret_cast(canvasPtr); Functor* functor = reinterpret_cast(functorPtr); canvas->callDrawGLFunction(functor); } @@ -80,7 +86,7 @@ static jint android_view_DisplayListCanvas_getMaxTextureHeight(JNIEnv* env, jobj static void android_view_DisplayListCanvas_drawRoundRectProps(JNIEnv* env, jobject clazz, jlong canvasPtr, jlong leftPropPtr, jlong topPropPtr, jlong rightPropPtr, jlong bottomPropPtr, jlong rxPropPtr, jlong ryPropPtr, jlong paintPropPtr) { - DisplayListCanvas* canvas = reinterpret_cast(canvasPtr); + canvas_t* canvas = reinterpret_cast(canvasPtr); CanvasPropertyPrimitive* leftProp = reinterpret_cast(leftPropPtr); CanvasPropertyPrimitive* topProp = reinterpret_cast(topPropPtr); CanvasPropertyPrimitive* rightProp = reinterpret_cast(rightPropPtr); @@ -93,7 +99,7 @@ static void android_view_DisplayListCanvas_drawRoundRectProps(JNIEnv* env, jobje static void android_view_DisplayListCanvas_drawCircleProps(JNIEnv* env, jobject clazz, jlong canvasPtr, jlong xPropPtr, jlong yPropPtr, jlong radiusPropPtr, jlong paintPropPtr) { - DisplayListCanvas* canvas = reinterpret_cast(canvasPtr); + canvas_t* canvas = reinterpret_cast(canvasPtr); CanvasPropertyPrimitive* xProp = reinterpret_cast(xPropPtr); CanvasPropertyPrimitive* yProp = reinterpret_cast(yPropPtr); CanvasPropertyPrimitive* radiusProp = reinterpret_cast(radiusPropPtr); @@ -107,25 +113,25 @@ static void android_view_DisplayListCanvas_drawCircleProps(JNIEnv* env, jobject static jlong android_view_DisplayListCanvas_finishRecording(JNIEnv* env, jobject clazz, jlong canvasPtr) { - DisplayListCanvas* canvas = reinterpret_cast(canvasPtr); + canvas_t* canvas = reinterpret_cast(canvasPtr); return reinterpret_cast(canvas->finishRecording()); } static jlong android_view_DisplayListCanvas_createDisplayListCanvas(JNIEnv* env, jobject clazz, jint width, jint height) { - return reinterpret_cast(new DisplayListCanvas(width, height)); + return reinterpret_cast(new canvas_t(width, height)); } static void android_view_DisplayListCanvas_resetDisplayListCanvas(JNIEnv* env, jobject clazz, jlong canvasPtr, jint width, jint height) { - DisplayListCanvas* canvas = reinterpret_cast(canvasPtr); + canvas_t* canvas = reinterpret_cast(canvasPtr); canvas->reset(width, height); } static void android_view_DisplayListCanvas_drawRenderNode(JNIEnv* env, jobject clazz, jlong canvasPtr, jlong renderNodePtr) { - DisplayListCanvas* canvas = reinterpret_cast(canvasPtr); + canvas_t* canvas = reinterpret_cast(canvasPtr); RenderNode* renderNode = reinterpret_cast(renderNodePtr); canvas->drawRenderNode(renderNode); } @@ -136,7 +142,7 @@ static void android_view_DisplayListCanvas_drawRenderNode(JNIEnv* env, static void android_view_DisplayListCanvas_drawLayer(JNIEnv* env, jobject clazz, jlong canvasPtr, jlong layerPtr) { - DisplayListCanvas* canvas = reinterpret_cast(canvasPtr); + canvas_t* canvas = reinterpret_cast(canvasPtr); DeferredLayerUpdater* layer = reinterpret_cast(layerPtr); canvas->drawLayer(layer); } diff --git a/libs/hwui/RecordingCanvas.h b/libs/hwui/RecordingCanvas.h index 48cc91abd89c7..470f9ecb5024c 100644 --- a/libs/hwui/RecordingCanvas.h +++ b/libs/hwui/RecordingCanvas.h @@ -39,7 +39,7 @@ namespace uirenderer { class DeferredLayerUpdater; struct RecordedOp; -class RecordingCanvas: public Canvas, public CanvasStateClient { +class ANDROID_API RecordingCanvas: public Canvas, public CanvasStateClient { enum class DeferredBarrierType { None, InOrder,