Handle updates to RS C++ API.

Change-Id: I73127fc7369643b94d4a49f31a516b50c74b54ac
diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk
index 5a30472..411c133 100644
--- a/libs/hwui/Android.mk
+++ b/libs/hwui/Android.mk
@@ -65,11 +65,14 @@
 
 	ifneq (false,$(ANDROID_ENABLE_RENDERSCRIPT))
 		LOCAL_CFLAGS += -DANDROID_ENABLE_RENDERSCRIPT
-		LOCAL_SHARED_LIBRARIES += libRS libRScpp
+		LOCAL_SHARED_LIBRARIES += libRS libRScpp libstlport
 		LOCAL_C_INCLUDES += \
 			$(intermediates) \
 			frameworks/rs/cpp \
-			frameworks/rs
+			frameworks/rs \
+			external/stlport/stlport \
+			bionic/ \
+			bionic/libstdc++/include
 	endif
 
 	ifndef HWUI_COMPILE_SYMBOLS
diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp
index 1b2f651..1700473 100644
--- a/libs/hwui/FontRenderer.cpp
+++ b/libs/hwui/FontRenderer.cpp
@@ -729,7 +729,7 @@
     if (width * height * radius >= RS_MIN_INPUT_CUTOFF) {
         uint8_t* outImage = (uint8_t*) memalign(RS_CPU_ALLOCATION_ALIGNMENT, width * height);
 
-        if (mRs.get() == 0) {
+        if (mRs == 0) {
             mRs = new RSC::RS();
             if (!mRs->init(true, true)) {
                 ALOGE("blur RS failed to init");
@@ -739,11 +739,13 @@
             mRsScript = new RSC::ScriptIntrinsicBlur(mRs, mRsElement);
         }
 
-        sp<const RSC::Type> t = RSC::Type::create(mRs, mRsElement, width, height, 0);
-        sp<RSC::Allocation> ain = RSC::Allocation::createTyped(mRs, t, RS_ALLOCATION_MIPMAP_NONE,
-                RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED, *image);
-        sp<RSC::Allocation> aout = RSC::Allocation::createTyped(mRs, t, RS_ALLOCATION_MIPMAP_NONE,
-                RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED, outImage);
+        RSC::sp<const RSC::Type> t = RSC::Type::create(mRs, mRsElement, width, height, 0);
+        RSC::sp<RSC::Allocation> ain = RSC::Allocation::createTyped(mRs, t,
+                RS_ALLOCATION_MIPMAP_NONE, RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED,
+                *image);
+        RSC::sp<RSC::Allocation> aout = RSC::Allocation::createTyped(mRs, t,
+                RS_ALLOCATION_MIPMAP_NONE, RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED,
+                outImage);
 
         mRsScript->setRadius(radius);
         mRsScript->blur(ain, aout);
diff --git a/libs/hwui/FontRenderer.h b/libs/hwui/FontRenderer.h
index aca47b4..aa7e776 100644
--- a/libs/hwui/FontRenderer.h
+++ b/libs/hwui/FontRenderer.h
@@ -35,10 +35,12 @@
 #include "Properties.h"
 
 #ifdef ANDROID_ENABLE_RENDERSCRIPT
+#include "RenderScript.h"
 namespace RSC {
     class Element;
     class RS;
     class ScriptIntrinsicBlur;
+    class sp;
 }
 #endif
 
@@ -206,9 +208,9 @@
 
 #ifdef ANDROID_ENABLE_RENDERSCRIPT
     // RS constructs
-    sp<RSC::RS> mRs;
-    sp<const RSC::Element> mRsElement;
-    sp<RSC::ScriptIntrinsicBlur> mRsScript;
+    RSC::sp<RSC::RS> mRs;
+    RSC::sp<const RSC::Element> mRsElement;
+    RSC::sp<RSC::ScriptIntrinsicBlur> mRsScript;
 #endif
 
     static void computeGaussianWeights(float* weights, int32_t radius);