Connect shadow style attributes to renderer

bug:15859361

Moves lighting info out of StatefulBaseRenderer, since it's not useful
at record time, and only used by OGLR.

Change-Id: I7ab065d02d9304afad1dc4c48597a7a621366f8e
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 5a96132..4f81066 100755
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -132,19 +132,21 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 OpenGLRenderer::OpenGLRenderer(RenderState& renderState)
-        : mCaches(Caches::getInstance())
+        : mFrameStarted(false)
+        , mCaches(Caches::getInstance())
         , mExtensions(Extensions::getInstance())
-        , mRenderState(renderState) {
+        , mRenderState(renderState)
+        , mScissorOptimizationDisabled(false)
+        , mCountOverdraw(false)
+        , mLightCenter(FLT_MIN, FLT_MIN, FLT_MIN)
+        , mLightRadius(FLT_MIN)
+        , mAmbientShadowAlpha(0)
+        , mSpotShadowAlpha(0) {
     // *set* draw modifiers to be 0
     memset(&mDrawModifiers, 0, sizeof(mDrawModifiers));
     mDrawModifiers.mOverrideLayerAlpha = 1.0f;
 
     memcpy(mMeshVertices, gMeshVertices, sizeof(gMeshVertices));
-
-    mFrameStarted = false;
-    mCountOverdraw = false;
-
-    mScissorOptimizationDisabled = false;
 }
 
 OpenGLRenderer::~OpenGLRenderer() {
@@ -163,6 +165,14 @@
     }
 }
 
+void OpenGLRenderer::initLight(const Vector3& lightCenter, float lightRadius,
+        uint8_t ambientShadowAlpha, uint8_t spotShadowAlpha) {
+    mLightCenter = lightCenter;
+    mLightRadius = lightRadius;
+    mAmbientShadowAlpha = ambientShadowAlpha;
+    mSpotShadowAlpha = spotShadowAlpha;
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 // Setup
 ///////////////////////////////////////////////////////////////////////////////
@@ -3172,13 +3182,13 @@
     SkPaint paint;
     paint.setAntiAlias(true); // want to use AlphaVertex
 
-    if (ambientShadowVertexBuffer && mCaches.propertyAmbientShadowStrength > 0) {
-        paint.setARGB(casterAlpha * mCaches.propertyAmbientShadowStrength, 0, 0, 0);
+    if (ambientShadowVertexBuffer && mAmbientShadowAlpha > 0) {
+        paint.setARGB(casterAlpha * mAmbientShadowAlpha, 0, 0, 0);
         drawVertexBuffer(*ambientShadowVertexBuffer, &paint);
     }
 
-    if (spotShadowVertexBuffer && mCaches.propertySpotShadowStrength > 0) {
-        paint.setARGB(casterAlpha * mCaches.propertySpotShadowStrength, 0, 0, 0);
+    if (spotShadowVertexBuffer && mSpotShadowAlpha > 0) {
+        paint.setARGB(casterAlpha * mSpotShadowAlpha, 0, 0, 0);
         drawVertexBuffer(*spotShadowVertexBuffer, &paint);
     }