Added a BufferStorage creation method to renderer.

TRAC #22297

Signed-off-by: Jamie Madill
Signed-off-by: Nicolas Capens
Author: Geoff Lang

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1882 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Renderer.h b/src/libGLESv2/renderer/Renderer.h
index b228704..f59e743 100644
--- a/src/libGLESv2/renderer/Renderer.h
+++ b/src/libGLESv2/renderer/Renderer.h
@@ -58,6 +58,7 @@
 class IndexBuffer;
 class QueryImpl;
 class FenceImpl;
+class BufferStorage;
 class Blit;
 struct TranslatedIndexData;
 
@@ -210,6 +211,7 @@
     // Buffer creation
     virtual VertexBuffer *createVertexBuffer() = 0;
     virtual IndexBuffer *createIndexBuffer() = 0;
+    virtual BufferStorage *createBufferStorage() = 0;
 
     // Query and Fence creation
     virtual QueryImpl *createQuery(GLenum type) = 0;
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index f8f3e3a..aab13ca 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -22,6 +22,7 @@
 #include "libGLESv2/renderer/Image11.h"
 #include "libGLESv2/renderer/VertexBuffer11.h"
 #include "libGLESv2/renderer/IndexBuffer11.h"
+#include "libGLESv2/renderer/BufferStorage11.h"
 #include "libGLESv2/renderer/VertexDataManager.h"
 #include "libGLESv2/renderer/IndexDataManager.h"
 #include "libGLESv2/renderer/TextureStorage11.h"
@@ -2768,6 +2769,11 @@
     return new IndexBuffer11(this);
 }
 
+BufferStorage *Renderer11::createBufferStorage()
+{
+    return new BufferStorage11(this);
+}
+
 QueryImpl *Renderer11::createQuery(GLenum type)
 {
     return new Query11(this, type);
diff --git a/src/libGLESv2/renderer/Renderer11.h b/src/libGLESv2/renderer/Renderer11.h
index 3598526..e6c8db6 100644
--- a/src/libGLESv2/renderer/Renderer11.h
+++ b/src/libGLESv2/renderer/Renderer11.h
@@ -166,6 +166,7 @@
     // Buffer creation
     virtual VertexBuffer *createVertexBuffer();
     virtual IndexBuffer *createIndexBuffer();
+    virtual BufferStorage *createBufferStorage();
 
     // Query and Fence creation
     virtual QueryImpl *createQuery(GLenum type);
diff --git a/src/libGLESv2/renderer/Renderer9.cpp b/src/libGLESv2/renderer/Renderer9.cpp
index 3846abe..8934949 100644
--- a/src/libGLESv2/renderer/Renderer9.cpp
+++ b/src/libGLESv2/renderer/Renderer9.cpp
@@ -26,6 +26,7 @@
 #include "libGLESv2/renderer/RenderTarget9.h"
 #include "libGLESv2/renderer/VertexBuffer9.h"
 #include "libGLESv2/renderer/IndexBuffer9.h"
+#include "libGLESv2/renderer/BufferStorage9.h"
 #include "libGLESv2/renderer/Query9.h"
 #include "libGLESv2/renderer/Fence9.h"
 
@@ -707,6 +708,11 @@
     return new IndexBuffer9(this);
 }
 
+BufferStorage *Renderer9::createBufferStorage()
+{
+    return new BufferStorage9();
+}
+
 QueryImpl *Renderer9::createQuery(GLenum type)
 {
     return new Query9(this, type);
diff --git a/src/libGLESv2/renderer/Renderer9.h b/src/libGLESv2/renderer/Renderer9.h
index 765625c..6af705c 100644
--- a/src/libGLESv2/renderer/Renderer9.h
+++ b/src/libGLESv2/renderer/Renderer9.h
@@ -194,6 +194,7 @@
     // Buffer creation
     virtual VertexBuffer *createVertexBuffer();
     virtual IndexBuffer *createIndexBuffer();
+    virtual BufferStorage *createBufferStorage();
 
     // Query and Fence creation
     virtual QueryImpl *createQuery(GLenum type);