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) ...@@ -62,7 +62,7 @@ void Buffer::bufferData(const void *data, GLsizeiptr size, GLenum usage)
if (usage == GL_STATIC_DRAW) if (usage == GL_STATIC_DRAW)
{ {
mStaticVertexBuffer = new StaticVertexBuffer(mRenderer->getDevice()); // D3D9_REPLACE mStaticVertexBuffer = new StaticVertexBuffer(mRenderer);
mStaticIndexBuffer = new StaticIndexBuffer(mRenderer->getDevice()); // D3D9_REPLACE mStaticIndexBuffer = new StaticIndexBuffer(mRenderer->getDevice()); // D3D9_REPLACE
} }
} }
...@@ -109,7 +109,7 @@ void Buffer::promoteStaticUsage(int dataSize) ...@@ -109,7 +109,7 @@ void Buffer::promoteStaticUsage(int dataSize)
if (mUnmodifiedDataUse > 3 * mSize) if (mUnmodifiedDataUse > 3 * mSize)
{ {
mStaticVertexBuffer = new StaticVertexBuffer(mRenderer->getDevice()); // D3D9_REPLACE mStaticVertexBuffer = new StaticVertexBuffer(mRenderer);
mStaticIndexBuffer = new StaticIndexBuffer(mRenderer->getDevice()); // D3D9_REPLACE mStaticIndexBuffer = new StaticIndexBuffer(mRenderer->getDevice()); // D3D9_REPLACE
} }
} }
......
...@@ -260,7 +260,7 @@ void Context::makeCurrent(egl::Display *display, egl::Surface *surface) ...@@ -260,7 +260,7 @@ void Context::makeCurrent(egl::Display *display, egl::Surface *surface)
if (!mHasBeenCurrent) if (!mHasBeenCurrent)
{ {
mVertexDataManager = new VertexDataManager(this, mRenderer, mDevice); mVertexDataManager = new VertexDataManager(this, mRenderer);
mIndexDataManager = new IndexDataManager(this, mDevice); mIndexDataManager = new IndexDataManager(this, mDevice);
mBlit = new Blit(mRenderer); mBlit = new Blit(mRenderer);
......
...@@ -36,7 +36,7 @@ int elementsInBuffer(const VertexAttribute &attribute, int size) ...@@ -36,7 +36,7 @@ int elementsInBuffer(const VertexAttribute &attribute, int size)
return (size - attribute.mOffset % stride + (stride - attribute.typeSize())) / stride; 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++) for (int i = 0; i < MAX_VERTEX_ATTRIBS; i++)
{ {
...@@ -48,7 +48,7 @@ VertexDataManager::VertexDataManager(Context *context, renderer::Renderer *rende ...@@ -48,7 +48,7 @@ VertexDataManager::VertexDataManager(Context *context, renderer::Renderer *rende
// D3D9_REPLACE // D3D9_REPLACE
checkVertexCaps(renderer->getCapsDeclTypes()); checkVertexCaps(renderer->getCapsDeclTypes());
mStreamingBuffer = new StreamingVertexBuffer(mDevice, INITIAL_STREAM_BUFFER_SIZE); mStreamingBuffer = new StreamingVertexBuffer(renderer, INITIAL_STREAM_BUFFER_SIZE);
if (!mStreamingBuffer) if (!mStreamingBuffer)
{ {
...@@ -264,7 +264,7 @@ GLenum VertexDataManager::prepareVertexData(GLint start, GLsizei count, Translat ...@@ -264,7 +264,7 @@ GLenum VertexDataManager::prepareVertexData(GLint start, GLsizei count, Translat
{ {
if (!mCurrentValueBuffer[i]) 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]; StreamingVertexBuffer *buffer = mCurrentValueBuffer[i];
...@@ -571,13 +571,13 @@ unsigned int VertexDataManager::typeIndex(GLenum type) const ...@@ -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) if (size > 0)
{ {
// D3D9_REPLACE // D3D9_REPLACE
D3DPOOL pool = getDisplay()->getRenderer()->getBufferPool(usageFlags); D3DPOOL pool = mRenderer->getBufferPool(usageFlags);
HRESULT result = device->CreateVertexBuffer(size, usageFlags, 0, pool, &mVertexBuffer, NULL); HRESULT result = mRenderer->getDevice()->CreateVertexBuffer(size, usageFlags, 0, pool, &mVertexBuffer, NULL);
mSerial = issueSerial(); mSerial = issueSerial();
if (FAILED(result)) if (FAILED(result))
...@@ -618,7 +618,7 @@ unsigned int VertexBuffer::issueSerial() ...@@ -618,7 +618,7 @@ unsigned int VertexBuffer::issueSerial()
return mCurrentSerial++; 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; mBufferSize = size;
mWritePosition = 0; mWritePosition = 0;
...@@ -634,7 +634,7 @@ void ArrayVertexBuffer::addRequiredSpace(UINT requiredSpace) ...@@ -634,7 +634,7 @@ void ArrayVertexBuffer::addRequiredSpace(UINT requiredSpace)
mRequiredSpace += 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() ...@@ -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. 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 // D3D9_REPLACE
D3DPOOL pool = getDisplay()->getRenderer()->getBufferPool(D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY); D3DPOOL pool = mRenderer->getBufferPool(D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY);
HRESULT result = mDevice->CreateVertexBuffer(mBufferSize, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, 0, pool, &mVertexBuffer, NULL); HRESULT result = mRenderer->getDevice()->CreateVertexBuffer(mBufferSize, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, 0, pool, &mVertexBuffer, NULL);
mSerial = issueSerial(); mSerial = issueSerial();
if (FAILED(result)) if (FAILED(result))
...@@ -702,7 +702,7 @@ void StreamingVertexBuffer::reserveRequiredSpace() ...@@ -702,7 +702,7 @@ void StreamingVertexBuffer::reserveRequiredSpace()
mRequiredSpace = 0; 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() ...@@ -740,8 +740,8 @@ void StaticVertexBuffer::reserveRequiredSpace()
if (!mVertexBuffer && mBufferSize == 0) if (!mVertexBuffer && mBufferSize == 0)
{ {
// D3D9_REPLACE // D3D9_REPLACE
D3DPOOL pool = getDisplay()->getRenderer()->getBufferPool(D3DUSAGE_WRITEONLY); D3DPOOL pool = mRenderer->getBufferPool(D3DUSAGE_WRITEONLY);
HRESULT result = mDevice->CreateVertexBuffer(mRequiredSpace, D3DUSAGE_WRITEONLY, 0, pool, &mVertexBuffer, NULL); HRESULT result = mRenderer->getDevice()->CreateVertexBuffer(mRequiredSpace, D3DUSAGE_WRITEONLY, 0, pool, &mVertexBuffer, NULL);
mSerial = issueSerial(); mSerial = issueSerial();
if (FAILED(result)) if (FAILED(result))
......
...@@ -37,7 +37,7 @@ struct TranslatedAttribute ...@@ -37,7 +37,7 @@ struct TranslatedAttribute
class VertexBuffer class VertexBuffer
{ {
public: public:
VertexBuffer(IDirect3DDevice9 *device, std::size_t size, DWORD usageFlags); VertexBuffer(renderer::Renderer *renderer, std::size_t size, DWORD usageFlags);
virtual ~VertexBuffer(); virtual ~VertexBuffer();
void unmap(); void unmap();
...@@ -46,7 +46,7 @@ class VertexBuffer ...@@ -46,7 +46,7 @@ class VertexBuffer
unsigned int getSerial() const; unsigned int getSerial() const;
protected: protected:
IDirect3DDevice9 *const mDevice; renderer::Renderer *const mRenderer;
IDirect3DVertexBuffer9 *mVertexBuffer; IDirect3DVertexBuffer9 *mVertexBuffer;
unsigned int mSerial; unsigned int mSerial;
...@@ -60,7 +60,7 @@ class VertexBuffer ...@@ -60,7 +60,7 @@ class VertexBuffer
class ArrayVertexBuffer : public VertexBuffer class ArrayVertexBuffer : public VertexBuffer
{ {
public: public:
ArrayVertexBuffer(IDirect3DDevice9 *device, std::size_t size, DWORD usageFlags); ArrayVertexBuffer(renderer::Renderer *renderer, std::size_t size, DWORD usageFlags);
~ArrayVertexBuffer(); ~ArrayVertexBuffer();
std::size_t size() const { return mBufferSize; } std::size_t size() const { return mBufferSize; }
...@@ -77,7 +77,7 @@ class ArrayVertexBuffer : public VertexBuffer ...@@ -77,7 +77,7 @@ class ArrayVertexBuffer : public VertexBuffer
class StreamingVertexBuffer : public ArrayVertexBuffer class StreamingVertexBuffer : public ArrayVertexBuffer
{ {
public: public:
StreamingVertexBuffer(IDirect3DDevice9 *device, std::size_t initialSize); StreamingVertexBuffer(renderer::Renderer *renderer, std::size_t initialSize);
~StreamingVertexBuffer(); ~StreamingVertexBuffer();
void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset); void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset);
...@@ -87,7 +87,7 @@ class StreamingVertexBuffer : public ArrayVertexBuffer ...@@ -87,7 +87,7 @@ class StreamingVertexBuffer : public ArrayVertexBuffer
class StaticVertexBuffer : public ArrayVertexBuffer class StaticVertexBuffer : public ArrayVertexBuffer
{ {
public: public:
explicit StaticVertexBuffer(IDirect3DDevice9 *device); explicit StaticVertexBuffer(renderer::Renderer *renderer);
~StaticVertexBuffer(); ~StaticVertexBuffer();
void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset); void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset);
...@@ -113,7 +113,7 @@ class StaticVertexBuffer : public ArrayVertexBuffer ...@@ -113,7 +113,7 @@ class StaticVertexBuffer : public ArrayVertexBuffer
class VertexDataManager class VertexDataManager
{ {
public: public:
VertexDataManager(Context *context, renderer::Renderer *renderer, IDirect3DDevice9 *backend); VertexDataManager(Context *context, renderer::Renderer *renderer);
virtual ~VertexDataManager(); virtual ~VertexDataManager();
void dirtyCurrentValue(int index) { mDirtyCurrentValue[index] = true; } void dirtyCurrentValue(int index) { mDirtyCurrentValue[index] = true; }
...@@ -127,7 +127,7 @@ class VertexDataManager ...@@ -127,7 +127,7 @@ class VertexDataManager
std::size_t writeAttributeData(ArrayVertexBuffer *vertexBuffer, GLint start, GLsizei count, const VertexAttribute &attribute, GLsizei instances); std::size_t writeAttributeData(ArrayVertexBuffer *vertexBuffer, GLint start, GLsizei count, const VertexAttribute &attribute, GLsizei instances);
Context *const mContext; Context *const mContext;
IDirect3DDevice9 *const mDevice; renderer::Renderer *const mRenderer;
StreamingVertexBuffer *mStreamingBuffer; 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