Added a fence creation method to Renderer.
TRAC #22418
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Author: Geoff Lang
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1844 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Renderer.h b/src/libGLESv2/renderer/Renderer.h
index eb8c814..85e8bc0 100644
--- a/src/libGLESv2/renderer/Renderer.h
+++ b/src/libGLESv2/renderer/Renderer.h
@@ -57,6 +57,7 @@
class VertexBuffer;
class IndexBuffer;
class QueryImpl;
+class FenceImpl;
class Blit;
struct TranslatedIndexData;
@@ -209,8 +210,9 @@
virtual VertexBuffer *createVertexBuffer() = 0;
virtual IndexBuffer *createIndexBuffer() = 0;
- // Query creation
+ // Query and Fence creation
virtual QueryImpl *createQuery(GLenum type) = 0;
+ virtual FenceImpl *createFence() = 0;
protected:
bool initializeCompiler();
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index 6a75579..13ae00c 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -2547,13 +2547,20 @@
IndexBuffer *Renderer11::createIndexBuffer()
{
return new IndexBuffer11(this);
-}
-
-QueryImpl *Renderer11::createQuery(GLenum type)
-{
- // TODO
- UNIMPLEMENTED();
- return NULL;
+}
+
+QueryImpl *Renderer11::createQuery(GLenum type)
+{
+ // TODO
+ UNIMPLEMENTED();
+ return NULL;
+}
+
+FenceImpl *Renderer11::createFence()
+{
+ // TODO
+ UNIMPLEMENTED();
+ return NULL;
}
bool Renderer11::getRenderTargetResource(gl::Framebuffer *framebuffer, unsigned int *subresourceIndex, ID3D11Texture2D **resource)
diff --git a/src/libGLESv2/renderer/Renderer11.h b/src/libGLESv2/renderer/Renderer11.h
index ea8103c..6a50bbd 100644
--- a/src/libGLESv2/renderer/Renderer11.h
+++ b/src/libGLESv2/renderer/Renderer11.h
@@ -164,8 +164,9 @@
virtual VertexBuffer *createVertexBuffer();
virtual IndexBuffer *createIndexBuffer();
- // Query creation
+ // Query and Fence creation
virtual QueryImpl *createQuery(GLenum type);
+ virtual FenceImpl *createFence();
// D3D11-renderer specific methods
ID3D11Device *getDevice() { return mDevice; }
diff --git a/src/libGLESv2/renderer/Renderer9.cpp b/src/libGLESv2/renderer/Renderer9.cpp
index de7c63a..17c1be7 100644
--- a/src/libGLESv2/renderer/Renderer9.cpp
+++ b/src/libGLESv2/renderer/Renderer9.cpp
@@ -27,6 +27,7 @@
#include "libGLESv2/renderer/VertexBuffer9.h"
#include "libGLESv2/renderer/IndexBuffer9.h"
#include "libGLESv2/renderer/Query9.h"
+#include "libGLESv2/renderer/Fence9.h"
#include <sstream>
@@ -711,6 +712,11 @@
return new Query9(this, type);
}
+FenceImpl *Renderer9::createFence()
+{
+ return new Fence9(this);
+}
+
void Renderer9::setSamplerState(gl::SamplerType type, int index, const gl::SamplerState &samplerState)
{
bool *forceSetSamplers = (type == gl::SAMPLER_PIXEL) ? mForceSetPixelSamplerStates : mForceSetVertexSamplerStates;
diff --git a/src/libGLESv2/renderer/Renderer9.h b/src/libGLESv2/renderer/Renderer9.h
index c8b614f..74e383c 100644
--- a/src/libGLESv2/renderer/Renderer9.h
+++ b/src/libGLESv2/renderer/Renderer9.h
@@ -194,8 +194,9 @@
virtual VertexBuffer *createVertexBuffer();
virtual IndexBuffer *createIndexBuffer();
- // Query creation
+ // Query and Fence creation
virtual QueryImpl *createQuery(GLenum type);
+ virtual FenceImpl *createFence();
// D3D9-renderer specific methods
bool boxFilter(IDirect3DSurface9 *source, IDirect3DSurface9 *dest);