Remove getData from BufferImpl.
We only ever call this method inside the D3D Renderer, so we can
downcast to BufferD3D and call getData on the D3D-specific type.
Leave a FIXME for handling index range validation, which will
need a CPU-side data cache.
Change-Id: Iaf71bc8055869a8561777b6b36f67e376a1d0b81
Reviewed-on: https://chromium-review.googlesource.com/224654
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/validationES.cpp b/src/libGLESv2/validationES.cpp
index d0b2331..22cd680 100644
--- a/src/libGLESv2/validationES.cpp
+++ b/src/libGLESv2/validationES.cpp
@@ -24,6 +24,9 @@
#include "common/mathutil.h"
#include "common/utilities.h"
+// FIXME(jmadill): remove this when we support buffer data caching
+#include "libGLESv2/renderer/d3d/BufferD3D.h"
+
namespace gl
{
@@ -1671,8 +1674,10 @@
uintptr_t offset = reinterpret_cast<uintptr_t>(indices);
if (!elementArrayBuffer->getIndexRangeCache()->findRange(type, offset, count, indexRangeOut, NULL))
{
+ // FIXME(jmadill): Use buffer data caching instead of the D3D back-end
+ rx::BufferD3D *bufferD3D = rx::BufferD3D::makeBufferD3D(elementArrayBuffer->getImplementation());
const uint8_t *dataPointer = NULL;
- Error error = elementArrayBuffer->getImplementation()->getData(&dataPointer);
+ Error error = bufferD3D->getData(&dataPointer);
if (error.isError())
{
context->recordError(error);