Refactor blending and texture gl state

Change-Id: Ia6b3c8b2afd3dfcee7f3ce401d846b789612054a
diff --git a/libs/hwui/renderstate/RenderState.h b/libs/hwui/renderstate/RenderState.h
index d1ee64a..4180f44 100644
--- a/libs/hwui/renderstate/RenderState.h
+++ b/libs/hwui/renderstate/RenderState.h
@@ -24,7 +24,7 @@
 #include <utils/RefBase.h>
 
 #include <private/hwui/DrawGlInfo.h>
-
+#include <renderstate/Blend.h>
 #include "AssetAtlas.h"
 #include "Caches.h"
 #include "renderstate/MeshState.h"
@@ -84,6 +84,7 @@
     void postDecStrong(VirtualLightRefBase* object);
 
     AssetAtlas& assetAtlas() { return mAssetAtlas; }
+    Blend& blend() { return *mBlend; }
     MeshState& meshState() { return *mMeshState; }
     Scissor& scissor() { return *mScissor; }
     Stencil& stencil() { return *mStencil; }
@@ -100,11 +101,12 @@
 
 
     renderthread::RenderThread& mRenderThread;
-    Caches* mCaches;
+    Caches* mCaches = nullptr;
 
-    MeshState* mMeshState;
-    Scissor* mScissor;
-    Stencil* mStencil;
+    Blend* mBlend = nullptr;
+    MeshState* mMeshState = nullptr;
+    Scissor* mScissor = nullptr;
+    Stencil* mStencil = nullptr;
 
     AssetAtlas mAssetAtlas;
     std::set<Layer*> mActiveLayers;