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);
///////////////////////////////////////////////////////////////////////////////