Remove d3d9 devices from use in VertexDataManager and subjugate classes

TRAC #21816 Signed-off-by: Daniel Koch Author: Shannon Woods git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1340 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 5f4c136e
......@@ -62,7 +62,7 @@ void Buffer::bufferData(const void *data, GLsizeiptr size, GLenum usage)
if (usage == GL_STATIC_DRAW)
{
mStaticVertexBuffer = new StaticVertexBuffer(mRenderer->getDevice()); // D3D9_REPLACE
mStaticVertexBuffer = new StaticVertexBuffer(mRenderer);
mStaticIndexBuffer = new StaticIndexBuffer(mRenderer->getDevice()); // D3D9_REPLACE
}
}
......@@ -109,7 +109,7 @@ void Buffer::promoteStaticUsage(int dataSize)
if (mUnmodifiedDataUse > 3 * mSize)
{
mStaticVertexBuffer = new StaticVertexBuffer(mRenderer->getDevice()); // D3D9_REPLACE
mStaticVertexBuffer = new StaticVertexBuffer(mRenderer);
mStaticIndexBuffer = new StaticIndexBuffer(mRenderer->getDevice()); // D3D9_REPLACE
}
}
......
......@@ -260,7 +260,7 @@ void Context::makeCurrent(egl::Display *display, egl::Surface *surface)
if (!mHasBeenCurrent)
{
mVertexDataManager = new VertexDataManager(this, mRenderer, mDevice);
mVertexDataManager = new VertexDataManager(this, mRenderer);
mIndexDataManager = new IndexDataManager(this, mDevice);
mBlit = new Blit(mRenderer);
......
......@@ -36,7 +36,7 @@ int elementsInBuffer(const VertexAttribute &attribute, int size)
return (size - attribute.mOffset % stride + (stride - attribute.typeSize())) / stride;
}
VertexDataManager::VertexDataManager(Context *context, renderer::Renderer *renderer, IDirect3DDevice9 *device) : mContext(context), mDevice(device)
VertexDataManager::VertexDataManager(Context *context, renderer::Renderer *renderer) : mContext(context), mRenderer(renderer)
{
for (int i = 0; i < MAX_VERTEX_ATTRIBS; i++)
{
......@@ -48,7 +48,7 @@ VertexDataManager::VertexDataManager(Context *context, renderer::Renderer *rende
// D3D9_REPLACE
checkVertexCaps(renderer->getCapsDeclTypes());
mStreamingBuffer = new StreamingVertexBuffer(mDevice, INITIAL_STREAM_BUFFER_SIZE);
mStreamingBuffer = new StreamingVertexBuffer(renderer, INITIAL_STREAM_BUFFER_SIZE);
if (!mStreamingBuffer)
{
......@@ -264,7 +264,7 @@ GLenum VertexDataManager::prepareVertexData(GLint start, GLsizei count, Translat
{
if (!mCurrentValueBuffer[i])
{
mCurrentValueBuffer[i] = new StreamingVertexBuffer(mDevice, CONSTANT_VERTEX_BUFFER_SIZE);
mCurrentValueBuffer[i] = new StreamingVertexBuffer(mRenderer, CONSTANT_VERTEX_BUFFER_SIZE);
}
StreamingVertexBuffer *buffer = mCurrentValueBuffer[i];
......@@ -571,13 +571,13 @@ unsigned int VertexDataManager::typeIndex(GLenum type) const
}
}
VertexBuffer::VertexBuffer(IDirect3DDevice9 *device, std::size_t size, DWORD usageFlags) : mDevice(device), mVertexBuffer(NULL)
VertexBuffer::VertexBuffer(renderer::Renderer *renderer, std::size_t size, DWORD usageFlags) : mRenderer(renderer), mVertexBuffer(NULL)
{
if (size > 0)
{
// D3D9_REPLACE
D3DPOOL pool = getDisplay()->getRenderer()->getBufferPool(usageFlags);
HRESULT result = device->CreateVertexBuffer(size, usageFlags, 0, pool, &mVertexBuffer, NULL);
D3DPOOL pool = mRenderer->getBufferPool(usageFlags);
HRESULT result = mRenderer->getDevice()->CreateVertexBuffer(size, usageFlags, 0, pool, &mVertexBuffer, NULL);
mSerial = issueSerial();
if (FAILED(result))
......@@ -618,7 +618,7 @@ unsigned int VertexBuffer::issueSerial()
return mCurrentSerial++;
}
ArrayVertexBuffer::ArrayVertexBuffer(IDirect3DDevice9 *device, std::size_t size, DWORD usageFlags) : VertexBuffer(device, size, usageFlags)
ArrayVertexBuffer::ArrayVertexBuffer(renderer::Renderer *renderer, std::size_t size, DWORD usageFlags) : VertexBuffer(renderer, size, usageFlags)
{
mBufferSize = size;
mWritePosition = 0;
......@@ -634,7 +634,7 @@ void ArrayVertexBuffer::addRequiredSpace(UINT requiredSpace)
mRequiredSpace += requiredSpace;
}
StreamingVertexBuffer::StreamingVertexBuffer(IDirect3DDevice9 *device, std::size_t initialSize) : ArrayVertexBuffer(device, initialSize, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY)
StreamingVertexBuffer::StreamingVertexBuffer(renderer::Renderer *renderer, std::size_t initialSize) : ArrayVertexBuffer(renderer, initialSize, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY)
{
}
......@@ -676,8 +676,8 @@ void StreamingVertexBuffer::reserveRequiredSpace()
mBufferSize = std::max(mRequiredSpace, 3 * mBufferSize / 2); // 1.5 x mBufferSize is arbitrary and should be checked to see we don't have too many reallocations.
// D3D9_REPLACE
D3DPOOL pool = getDisplay()->getRenderer()->getBufferPool(D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY);
HRESULT result = mDevice->CreateVertexBuffer(mBufferSize, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, 0, pool, &mVertexBuffer, NULL);
D3DPOOL pool = mRenderer->getBufferPool(D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY);
HRESULT result = mRenderer->getDevice()->CreateVertexBuffer(mBufferSize, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, 0, pool, &mVertexBuffer, NULL);
mSerial = issueSerial();
if (FAILED(result))
......@@ -702,7 +702,7 @@ void StreamingVertexBuffer::reserveRequiredSpace()
mRequiredSpace = 0;
}
StaticVertexBuffer::StaticVertexBuffer(IDirect3DDevice9 *device) : ArrayVertexBuffer(device, 0, D3DUSAGE_WRITEONLY)
StaticVertexBuffer::StaticVertexBuffer(renderer::Renderer *renderer) : ArrayVertexBuffer(renderer, 0, D3DUSAGE_WRITEONLY)
{
}
......@@ -740,8 +740,8 @@ void StaticVertexBuffer::reserveRequiredSpace()
if (!mVertexBuffer && mBufferSize == 0)
{
// D3D9_REPLACE
D3DPOOL pool = getDisplay()->getRenderer()->getBufferPool(D3DUSAGE_WRITEONLY);
HRESULT result = mDevice->CreateVertexBuffer(mRequiredSpace, D3DUSAGE_WRITEONLY, 0, pool, &mVertexBuffer, NULL);
D3DPOOL pool = mRenderer->getBufferPool(D3DUSAGE_WRITEONLY);
HRESULT result = mRenderer->getDevice()->CreateVertexBuffer(mRequiredSpace, D3DUSAGE_WRITEONLY, 0, pool, &mVertexBuffer, NULL);
mSerial = issueSerial();
if (FAILED(result))
......
......@@ -37,7 +37,7 @@ struct TranslatedAttribute
class VertexBuffer
{
public:
VertexBuffer(IDirect3DDevice9 *device, std::size_t size, DWORD usageFlags);
VertexBuffer(renderer::Renderer *renderer, std::size_t size, DWORD usageFlags);
virtual ~VertexBuffer();
void unmap();
......@@ -46,7 +46,7 @@ class VertexBuffer
unsigned int getSerial() const;
protected:
IDirect3DDevice9 *const mDevice;
renderer::Renderer *const mRenderer;
IDirect3DVertexBuffer9 *mVertexBuffer;
unsigned int mSerial;
......@@ -60,7 +60,7 @@ class VertexBuffer
class ArrayVertexBuffer : public VertexBuffer
{
public:
ArrayVertexBuffer(IDirect3DDevice9 *device, std::size_t size, DWORD usageFlags);
ArrayVertexBuffer(renderer::Renderer *renderer, std::size_t size, DWORD usageFlags);
~ArrayVertexBuffer();
std::size_t size() const { return mBufferSize; }
......@@ -77,7 +77,7 @@ class ArrayVertexBuffer : public VertexBuffer
class StreamingVertexBuffer : public ArrayVertexBuffer
{
public:
StreamingVertexBuffer(IDirect3DDevice9 *device, std::size_t initialSize);
StreamingVertexBuffer(renderer::Renderer *renderer, std::size_t initialSize);
~StreamingVertexBuffer();
void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset);
......@@ -87,7 +87,7 @@ class StreamingVertexBuffer : public ArrayVertexBuffer
class StaticVertexBuffer : public ArrayVertexBuffer
{
public:
explicit StaticVertexBuffer(IDirect3DDevice9 *device);
explicit StaticVertexBuffer(renderer::Renderer *renderer);
~StaticVertexBuffer();
void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset);
......@@ -113,7 +113,7 @@ class StaticVertexBuffer : public ArrayVertexBuffer
class VertexDataManager
{
public:
VertexDataManager(Context *context, renderer::Renderer *renderer, IDirect3DDevice9 *backend);
VertexDataManager(Context *context, renderer::Renderer *renderer);
virtual ~VertexDataManager();
void dirtyCurrentValue(int index) { mDirtyCurrentValue[index] = true; }
......@@ -127,7 +127,7 @@ class VertexDataManager
std::size_t writeAttributeData(ArrayVertexBuffer *vertexBuffer, GLint start, GLsizei count, const VertexAttribute &attribute, GLsizei instances);
Context *const mContext;
IDirect3DDevice9 *const mDevice;
renderer::Renderer *const mRenderer;
StreamingVertexBuffer *mStreamingBuffer;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment