mirror of
https://github.com/SFML/SFML.git
synced 2024-11-28 22:31:09 +08:00
Make VertexBuffer::Usage a scoped enumeration
This commit is contained in:
parent
a019b5167b
commit
0d3c7f1c32
@ -99,7 +99,7 @@ int main()
|
|||||||
sf::Text statusText(font);
|
sf::Text statusText(font);
|
||||||
sf::Shader terrainShader;
|
sf::Shader terrainShader;
|
||||||
const sf::RenderStates terrainStates(&terrainShader);
|
const sf::RenderStates terrainStates(&terrainShader);
|
||||||
sf::VertexBuffer terrain(sf::PrimitiveType::Triangles, sf::VertexBuffer::Static);
|
sf::VertexBuffer terrain(sf::PrimitiveType::Triangles, sf::VertexBuffer::Usage::Static);
|
||||||
|
|
||||||
// Set up our text drawables
|
// Set up our text drawables
|
||||||
statusText.setCharacterSize(28);
|
statusText.setCharacterSize(28);
|
||||||
|
@ -59,7 +59,7 @@ public:
|
|||||||
/// good compromise.
|
/// good compromise.
|
||||||
///
|
///
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
enum Usage
|
enum class Usage
|
||||||
{
|
{
|
||||||
Stream, //!< Constantly changing data
|
Stream, //!< Constantly changing data
|
||||||
Dynamic, //!< Occasionally changing data
|
Dynamic, //!< Occasionally changing data
|
||||||
@ -270,7 +270,7 @@ public:
|
|||||||
/// to be updated with new data for the usage specifier to
|
/// to be updated with new data for the usage specifier to
|
||||||
/// take effect.
|
/// take effect.
|
||||||
///
|
///
|
||||||
/// The default primitive type is sf::VertexBuffer::Stream.
|
/// The default usage type is sf::VertexBuffer::Usage::Stream.
|
||||||
///
|
///
|
||||||
/// \param usage Usage specifier
|
/// \param usage Usage specifier
|
||||||
///
|
///
|
||||||
@ -336,7 +336,7 @@ private:
|
|||||||
unsigned int m_buffer{}; //!< Internal buffer identifier
|
unsigned int m_buffer{}; //!< Internal buffer identifier
|
||||||
std::size_t m_size{}; //!< Size in Vertices of the currently allocated buffer
|
std::size_t m_size{}; //!< Size in Vertices of the currently allocated buffer
|
||||||
PrimitiveType m_primitiveType{PrimitiveType::Points}; //!< Type of primitives to draw
|
PrimitiveType m_primitiveType{PrimitiveType::Points}; //!< Type of primitives to draw
|
||||||
Usage m_usage{Stream}; //!< How this vertex buffer is to be used
|
Usage m_usage{Usage::Stream}; //!< How this vertex buffer is to be used
|
||||||
};
|
};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
|
@ -47,9 +47,9 @@ GLenum usageToGlEnum(sf::VertexBuffer::Usage usage)
|
|||||||
{
|
{
|
||||||
switch (usage)
|
switch (usage)
|
||||||
{
|
{
|
||||||
case sf::VertexBuffer::Static:
|
case sf::VertexBuffer::Usage::Static:
|
||||||
return GLEXT_GL_STATIC_DRAW;
|
return GLEXT_GL_STATIC_DRAW;
|
||||||
case sf::VertexBuffer::Dynamic:
|
case sf::VertexBuffer::Usage::Dynamic:
|
||||||
return GLEXT_GL_DYNAMIC_DRAW;
|
return GLEXT_GL_DYNAMIC_DRAW;
|
||||||
default:
|
default:
|
||||||
return GLEXT_GL_STREAM_DRAW;
|
return GLEXT_GL_STREAM_DRAW;
|
||||||
|
@ -35,7 +35,7 @@ TEST_CASE("[Graphics] sf::VertexBuffer", "[.display]")
|
|||||||
CHECK(vertexBuffer.getVertexCount() == 0);
|
CHECK(vertexBuffer.getVertexCount() == 0);
|
||||||
CHECK(vertexBuffer.getNativeHandle() == 0);
|
CHECK(vertexBuffer.getNativeHandle() == 0);
|
||||||
CHECK(vertexBuffer.getPrimitiveType() == sf::PrimitiveType::Points);
|
CHECK(vertexBuffer.getPrimitiveType() == sf::PrimitiveType::Points);
|
||||||
CHECK(vertexBuffer.getUsage() == sf::VertexBuffer::Stream);
|
CHECK(vertexBuffer.getUsage() == sf::VertexBuffer::Usage::Stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("Primitive type constructor")
|
SECTION("Primitive type constructor")
|
||||||
@ -44,31 +44,31 @@ TEST_CASE("[Graphics] sf::VertexBuffer", "[.display]")
|
|||||||
CHECK(vertexBuffer.getVertexCount() == 0);
|
CHECK(vertexBuffer.getVertexCount() == 0);
|
||||||
CHECK(vertexBuffer.getNativeHandle() == 0);
|
CHECK(vertexBuffer.getNativeHandle() == 0);
|
||||||
CHECK(vertexBuffer.getPrimitiveType() == sf::PrimitiveType::Triangles);
|
CHECK(vertexBuffer.getPrimitiveType() == sf::PrimitiveType::Triangles);
|
||||||
CHECK(vertexBuffer.getUsage() == sf::VertexBuffer::Stream);
|
CHECK(vertexBuffer.getUsage() == sf::VertexBuffer::Usage::Stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("Usage constructor")
|
SECTION("Usage constructor")
|
||||||
{
|
{
|
||||||
const sf::VertexBuffer vertexBuffer(sf::VertexBuffer::Static);
|
const sf::VertexBuffer vertexBuffer(sf::VertexBuffer::Usage::Static);
|
||||||
CHECK(vertexBuffer.getVertexCount() == 0);
|
CHECK(vertexBuffer.getVertexCount() == 0);
|
||||||
CHECK(vertexBuffer.getNativeHandle() == 0);
|
CHECK(vertexBuffer.getNativeHandle() == 0);
|
||||||
CHECK(vertexBuffer.getPrimitiveType() == sf::PrimitiveType::Points);
|
CHECK(vertexBuffer.getPrimitiveType() == sf::PrimitiveType::Points);
|
||||||
CHECK(vertexBuffer.getUsage() == sf::VertexBuffer::Static);
|
CHECK(vertexBuffer.getUsage() == sf::VertexBuffer::Usage::Static);
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("Primitive type and usage constructor")
|
SECTION("Primitive type and usage constructor")
|
||||||
{
|
{
|
||||||
const sf::VertexBuffer vertexBuffer(sf::PrimitiveType::LineStrip, sf::VertexBuffer::Dynamic);
|
const sf::VertexBuffer vertexBuffer(sf::PrimitiveType::LineStrip, sf::VertexBuffer::Usage::Dynamic);
|
||||||
CHECK(vertexBuffer.getVertexCount() == 0);
|
CHECK(vertexBuffer.getVertexCount() == 0);
|
||||||
CHECK(vertexBuffer.getNativeHandle() == 0);
|
CHECK(vertexBuffer.getNativeHandle() == 0);
|
||||||
CHECK(vertexBuffer.getPrimitiveType() == sf::PrimitiveType::LineStrip);
|
CHECK(vertexBuffer.getPrimitiveType() == sf::PrimitiveType::LineStrip);
|
||||||
CHECK(vertexBuffer.getUsage() == sf::VertexBuffer::Dynamic);
|
CHECK(vertexBuffer.getUsage() == sf::VertexBuffer::Usage::Dynamic);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("Copy semantics")
|
SECTION("Copy semantics")
|
||||||
{
|
{
|
||||||
const sf::VertexBuffer vertexBuffer(sf::PrimitiveType::LineStrip, sf::VertexBuffer::Dynamic);
|
const sf::VertexBuffer vertexBuffer(sf::PrimitiveType::LineStrip, sf::VertexBuffer::Usage::Dynamic);
|
||||||
|
|
||||||
SECTION("Construction")
|
SECTION("Construction")
|
||||||
{
|
{
|
||||||
@ -76,7 +76,7 @@ TEST_CASE("[Graphics] sf::VertexBuffer", "[.display]")
|
|||||||
CHECK(vertexBufferCopy.getVertexCount() == 0);
|
CHECK(vertexBufferCopy.getVertexCount() == 0);
|
||||||
CHECK(vertexBufferCopy.getNativeHandle() == 0);
|
CHECK(vertexBufferCopy.getNativeHandle() == 0);
|
||||||
CHECK(vertexBufferCopy.getPrimitiveType() == sf::PrimitiveType::LineStrip);
|
CHECK(vertexBufferCopy.getPrimitiveType() == sf::PrimitiveType::LineStrip);
|
||||||
CHECK(vertexBufferCopy.getUsage() == sf::VertexBuffer::Dynamic);
|
CHECK(vertexBufferCopy.getUsage() == sf::VertexBuffer::Usage::Dynamic);
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("Assignment")
|
SECTION("Assignment")
|
||||||
@ -86,7 +86,7 @@ TEST_CASE("[Graphics] sf::VertexBuffer", "[.display]")
|
|||||||
CHECK(vertexBufferCopy.getVertexCount() == 0);
|
CHECK(vertexBufferCopy.getVertexCount() == 0);
|
||||||
CHECK(vertexBufferCopy.getNativeHandle() == 0);
|
CHECK(vertexBufferCopy.getNativeHandle() == 0);
|
||||||
CHECK(vertexBufferCopy.getPrimitiveType() == sf::PrimitiveType::LineStrip);
|
CHECK(vertexBufferCopy.getPrimitiveType() == sf::PrimitiveType::LineStrip);
|
||||||
CHECK(vertexBufferCopy.getUsage() == sf::VertexBuffer::Dynamic);
|
CHECK(vertexBufferCopy.getUsage() == sf::VertexBuffer::Usage::Dynamic);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,10 +146,10 @@ TEST_CASE("[Graphics] sf::VertexBuffer", "[.display]")
|
|||||||
|
|
||||||
SECTION("swap()")
|
SECTION("swap()")
|
||||||
{
|
{
|
||||||
sf::VertexBuffer vertexBuffer1(sf::PrimitiveType::LineStrip, sf::VertexBuffer::Dynamic);
|
sf::VertexBuffer vertexBuffer1(sf::PrimitiveType::LineStrip, sf::VertexBuffer::Usage::Dynamic);
|
||||||
CHECK(vertexBuffer1.create(50));
|
CHECK(vertexBuffer1.create(50));
|
||||||
|
|
||||||
sf::VertexBuffer vertexBuffer2(sf::PrimitiveType::TriangleStrip, sf::VertexBuffer::Stream);
|
sf::VertexBuffer vertexBuffer2(sf::PrimitiveType::TriangleStrip, sf::VertexBuffer::Usage::Stream);
|
||||||
CHECK(vertexBuffer2.create(60));
|
CHECK(vertexBuffer2.create(60));
|
||||||
|
|
||||||
sf::swap(vertexBuffer1, vertexBuffer2);
|
sf::swap(vertexBuffer1, vertexBuffer2);
|
||||||
@ -157,12 +157,12 @@ TEST_CASE("[Graphics] sf::VertexBuffer", "[.display]")
|
|||||||
CHECK(vertexBuffer1.getVertexCount() == 60);
|
CHECK(vertexBuffer1.getVertexCount() == 60);
|
||||||
CHECK(vertexBuffer1.getNativeHandle() != 0);
|
CHECK(vertexBuffer1.getNativeHandle() != 0);
|
||||||
CHECK(vertexBuffer1.getPrimitiveType() == sf::PrimitiveType::TriangleStrip);
|
CHECK(vertexBuffer1.getPrimitiveType() == sf::PrimitiveType::TriangleStrip);
|
||||||
CHECK(vertexBuffer1.getUsage() == sf::VertexBuffer::Stream);
|
CHECK(vertexBuffer1.getUsage() == sf::VertexBuffer::Usage::Stream);
|
||||||
|
|
||||||
CHECK(vertexBuffer2.getVertexCount() == 50);
|
CHECK(vertexBuffer2.getVertexCount() == 50);
|
||||||
CHECK(vertexBuffer2.getNativeHandle() != 0);
|
CHECK(vertexBuffer2.getNativeHandle() != 0);
|
||||||
CHECK(vertexBuffer2.getPrimitiveType() == sf::PrimitiveType::LineStrip);
|
CHECK(vertexBuffer2.getPrimitiveType() == sf::PrimitiveType::LineStrip);
|
||||||
CHECK(vertexBuffer2.getUsage() == sf::VertexBuffer::Dynamic);
|
CHECK(vertexBuffer2.getUsage() == sf::VertexBuffer::Usage::Dynamic);
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("Set/get primitive type")
|
SECTION("Set/get primitive type")
|
||||||
@ -175,7 +175,7 @@ TEST_CASE("[Graphics] sf::VertexBuffer", "[.display]")
|
|||||||
SECTION("Set/get usage")
|
SECTION("Set/get usage")
|
||||||
{
|
{
|
||||||
sf::VertexBuffer vertexBuffer;
|
sf::VertexBuffer vertexBuffer;
|
||||||
vertexBuffer.setUsage(sf::VertexBuffer::Dynamic);
|
vertexBuffer.setUsage(sf::VertexBuffer::Usage::Dynamic);
|
||||||
CHECK(vertexBuffer.getUsage() == sf::VertexBuffer::Dynamic);
|
CHECK(vertexBuffer.getUsage() == sf::VertexBuffer::Usage::Dynamic);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user