VertexBuffer has a new abstract method to determine if conversion is required…

VertexBuffer has a new abstract method to determine if conversion is required for a given attribute type. 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@1885 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 4587fee9
...@@ -37,6 +37,8 @@ class VertexBuffer ...@@ -37,6 +37,8 @@ class VertexBuffer
virtual unsigned int getSpaceRequired(const gl::VertexAttribute &attrib, GLsizei count, virtual unsigned int getSpaceRequired(const gl::VertexAttribute &attrib, GLsizei count,
GLsizei instances) const = 0; GLsizei instances) const = 0;
virtual bool requiresConversion(const gl::VertexAttribute &attrib) const = 0;
virtual unsigned int getBufferSize() const = 0; virtual unsigned int getBufferSize() const = 0;
virtual bool setBufferSize(unsigned int size) = 0; virtual bool setBufferSize(unsigned int size) = 0;
virtual bool discard() = 0; virtual bool discard() = 0;
......
...@@ -163,6 +163,11 @@ unsigned int VertexBuffer11::getSpaceRequired(const gl::VertexAttribute &attrib, ...@@ -163,6 +163,11 @@ unsigned int VertexBuffer11::getSpaceRequired(const gl::VertexAttribute &attrib,
} }
} }
bool VertexBuffer11::requiresConversion(const gl::VertexAttribute &attrib) const
{
return !getVertexConversion(attrib).identity;
}
unsigned int VertexBuffer11::getBufferSize() const unsigned int VertexBuffer11::getBufferSize() const
{ {
return mBufferSize; return mBufferSize;
......
...@@ -33,6 +33,8 @@ class VertexBuffer11 : public VertexBuffer ...@@ -33,6 +33,8 @@ class VertexBuffer11 : public VertexBuffer
virtual unsigned int getSpaceRequired(const gl::VertexAttribute &attrib, GLsizei count, GLsizei instances) const; virtual unsigned int getSpaceRequired(const gl::VertexAttribute &attrib, GLsizei count, GLsizei instances) const;
virtual bool requiresConversion(const gl::VertexAttribute &attrib) const;
virtual unsigned int getBufferSize() const; virtual unsigned int getBufferSize() const;
virtual bool setBufferSize(unsigned int size); virtual bool setBufferSize(unsigned int size);
virtual bool discard(); virtual bool discard();
......
...@@ -170,6 +170,11 @@ unsigned int VertexBuffer9::getSpaceRequired(const gl::VertexAttribute &attrib, ...@@ -170,6 +170,11 @@ unsigned int VertexBuffer9::getSpaceRequired(const gl::VertexAttribute &attrib,
return spaceRequired(attrib, count, instances); return spaceRequired(attrib, count, instances);
} }
bool VertexBuffer9::requiresConversion(const gl::VertexAttribute &attrib) const
{
return formatConverter(attrib).identity;
}
unsigned int VertexBuffer9::getVertexSize(const gl::VertexAttribute &attrib) const unsigned int VertexBuffer9::getVertexSize(const gl::VertexAttribute &attrib) const
{ {
return spaceRequired(attrib, 1, 0); return spaceRequired(attrib, 1, 0);
......
...@@ -33,6 +33,8 @@ class VertexBuffer9 : public VertexBuffer ...@@ -33,6 +33,8 @@ class VertexBuffer9 : public VertexBuffer
virtual unsigned int getSpaceRequired(const gl::VertexAttribute &attrib, GLsizei count, GLsizei instances) const; virtual unsigned int getSpaceRequired(const gl::VertexAttribute &attrib, GLsizei count, GLsizei instances) const;
virtual bool requiresConversion(const gl::VertexAttribute &attrib) const;
unsigned int getVertexSize(const gl::VertexAttribute &attrib) const; unsigned int getVertexSize(const gl::VertexAttribute &attrib) const;
D3DDECLTYPE getDeclType(const gl::VertexAttribute &attrib) const; D3DDECLTYPE getDeclType(const gl::VertexAttribute &attrib) const;
......
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