Move gl calls from PatchCache to MeshState

bug:27358166
Change-Id: I5f544f497e9480e64faa2ddd369eb16318e82dc3
diff --git a/libs/hwui/renderstate/MeshState.cpp b/libs/hwui/renderstate/MeshState.cpp
index b575c69..6d02936 100644
--- a/libs/hwui/renderstate/MeshState.cpp
+++ b/libs/hwui/renderstate/MeshState.cpp
@@ -17,8 +17,6 @@
 
 #include "Program.h"
 
-#include "ShadowTessellator.h"
-
 namespace android {
 namespace uirenderer {
 
@@ -100,6 +98,12 @@
     glBufferData(GL_ARRAY_BUFFER, size, data, usage);
 }
 
+void MeshState::updateMeshBufferSubData(GLuint buffer, GLintptr offset,
+        GLsizeiptr size, const void* data) {
+    bindMeshBuffer(buffer);
+    glBufferSubData(GL_ARRAY_BUFFER, offset, size, data);
+}
+
 void MeshState::deleteMeshBuffer(GLuint buffer) {
     if (buffer == mCurrentBuffer) {
         // GL defines that deleting the currently bound VBO rebinds to 0 (no VBO).
diff --git a/libs/hwui/renderstate/MeshState.h b/libs/hwui/renderstate/MeshState.h
index dd68468..17ad462 100644
--- a/libs/hwui/renderstate/MeshState.h
+++ b/libs/hwui/renderstate/MeshState.h
@@ -72,6 +72,7 @@
     void unbindMeshBuffer();
 
     void genOrUpdateMeshBuffer(GLuint* buffer, GLsizeiptr size, const void* data, GLenum usage);
+    void updateMeshBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, const void* data);
     void deleteMeshBuffer(GLuint);
 
     ///////////////////////////////////////////////////////////////////////////////