Remove VertexBuffer::requiresConversion.

Since we now have Renderer methods to query formats for vertex inputs,
we can get rid of the remaining calls to VertexBuffer which we used
to query properties of vertex formats.

Change-Id: I9e57d1d9bf80296aef271877fdd97a16d29114af
Reviewed-on: https://chromium-review.googlesource.com/184522
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/renderer/VertexDataManager.cpp b/src/libGLESv2/renderer/VertexDataManager.cpp
index 2567eb5..6aad5eb 100644
--- a/src/libGLESv2/renderer/VertexDataManager.cpp
+++ b/src/libGLESv2/renderer/VertexDataManager.cpp
@@ -15,6 +15,7 @@
 #include "libGLESv2/ProgramBinary.h"
 #include "libGLESv2/VertexAttribute.h"
 #include "libGLESv2/renderer/VertexBuffer.h"
+#include "libGLESv2/renderer/Renderer.h"
 
 namespace
 {
@@ -52,19 +53,6 @@
     return vertexDrawCount;
 }
 
-static bool DirectStoragePossible(VertexBufferInterface *vb, const gl::VertexAttribute &attrib, const gl::VertexAttribCurrentValueData &currentValue)
-{
-    gl::Buffer *buffer = attrib.mBoundBuffer.get();
-    BufferStorage *storage = buffer ? buffer->getStorage() : NULL;
-
-    const bool isAligned = (attrib.stride() % 4 == 0) && (attrib.mOffset % 4 == 0);
-    const bool requiresConversion = attrib.mArrayEnabled ?
-                                    vb->getVertexBuffer()->requiresConversion(attrib) :
-                                    vb->getVertexBuffer()->requiresConversion(currentValue);
-
-    return storage && storage->supportsDirectBinding() && !requiresConversion && isAligned;
-}
-
 VertexDataManager::VertexDataManager(Renderer *renderer) : mRenderer(renderer)
 {
     for (int i = 0; i < gl::MAX_VERTEX_ATTRIBS; i++)
@@ -118,7 +106,7 @@
             StaticVertexBufferInterface *staticBuffer = buffer ? buffer->getStaticVertexBuffer() : NULL;
 
             if (staticBuffer && staticBuffer->getBufferSize() > 0 && !staticBuffer->lookupAttribute(attribs[i], NULL) &&
-                !DirectStoragePossible(staticBuffer, attribs[i], currentValues[i]))
+                !staticBuffer->directStoragePossible(attribs[i], currentValues[i]))
             {
                 buffer->invalidateStaticData();
             }
@@ -134,7 +122,7 @@
             StaticVertexBufferInterface *staticBuffer = buffer ? buffer->getStaticVertexBuffer() : NULL;
             VertexBufferInterface *vertexBuffer = staticBuffer ? staticBuffer : static_cast<VertexBufferInterface*>(mStreamingBuffer);
 
-            if (!DirectStoragePossible(vertexBuffer, attribs[i], currentValues[i]))
+            if (!vertexBuffer->directStoragePossible(attribs[i], currentValues[i]))
             {
                 if (staticBuffer)
                 {
@@ -187,7 +175,7 @@
                 VertexBufferInterface *vertexBuffer = staticBuffer ? staticBuffer : static_cast<VertexBufferInterface*>(mStreamingBuffer);
 
                 BufferStorage *storage = buffer ? buffer->getStorage() : NULL;
-                bool directStorage = DirectStoragePossible(vertexBuffer, attribs[i], currentValues[i]);
+                bool directStorage = vertexBuffer->directStoragePossible(attribs[i], currentValues[i]);
 
                 unsigned int streamOffset = 0;
                 unsigned int outputElementSize = 0;