Use enum class instead of plain enum for PrimitiveType (#2286)

Co-authored-by: Jean Tampon <jean.tampon@gmail.com>
This commit is contained in:
Jonny 2022-11-27 19:17:27 +00:00 committed by GitHub
parent 8e3efab09d
commit 510068d501
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 19 additions and 15 deletions

View File

@ -99,7 +99,7 @@ int main()
sf::Text statusText; sf::Text statusText;
sf::Shader terrainShader; sf::Shader terrainShader;
sf::RenderStates terrainStates(&terrainShader); sf::RenderStates terrainStates(&terrainShader);
sf::VertexBuffer terrain(sf::Triangles, sf::VertexBuffer::Static); sf::VertexBuffer terrain(sf::PrimitiveType::Triangles, sf::VertexBuffer::Static);
// Set up our text drawables // Set up our text drawables
statusText.setFont(font); statusText.setFont(font);

View File

@ -140,7 +140,7 @@ public:
std::uniform_int_distribution<std::uint16_t> color_distribution(0, 255); std::uniform_int_distribution<std::uint16_t> color_distribution(0, 255);
// Create the points // Create the points
m_points.setPrimitiveType(sf::Points); m_points.setPrimitiveType(sf::PrimitiveType::Points);
for (int i = 0; i < 40000; ++i) for (int i = 0; i < 40000; ++i)
{ {
auto x = x_distribution(rng); auto x = x_distribution(rng);
@ -270,7 +270,7 @@ private:
class Geometry : public Effect class Geometry : public Effect
{ {
public: public:
Geometry() : Effect("Geometry Shader Billboards"), m_pointCloud(sf::Points, 10000) Geometry() : Effect("Geometry Shader Billboards"), m_pointCloud(sf::PrimitiveType::Points, 10000)
{ {
} }

View File

@ -36,7 +36,7 @@ namespace sf
/// and view. /// and view.
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
enum PrimitiveType enum class PrimitiveType
{ {
Points, //!< List of individual points Points, //!< List of individual points
Lines, //!< List of individual lines Lines, //!< List of individual lines

View File

@ -725,7 +725,7 @@ void RenderTarget::drawPrimitives(PrimitiveType type, std::size_t firstVertex, s
{ {
// Find the OpenGL primitive type // Find the OpenGL primitive type
static constexpr GLenum modes[] = {GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN}; static constexpr GLenum modes[] = {GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN};
GLenum mode = modes[type]; GLenum mode = modes[static_cast<std::size_t>(type)];
// Draw the primitives // Draw the primitives
glCheck(glDrawArrays(mode, static_cast<GLint>(firstVertex), static_cast<GLsizei>(vertexCount))); glCheck(glDrawArrays(mode, static_cast<GLint>(firstVertex), static_cast<GLsizei>(vertexCount)));

View File

@ -155,8 +155,8 @@ m_textureRect(),
m_fillColor(255, 255, 255), m_fillColor(255, 255, 255),
m_outlineColor(255, 255, 255), m_outlineColor(255, 255, 255),
m_outlineThickness(0), m_outlineThickness(0),
m_vertices(TriangleFan), m_vertices(PrimitiveType::TriangleFan),
m_outlineVertices(TriangleStrip), m_outlineVertices(PrimitiveType::TriangleStrip),
m_insideBounds(), m_insideBounds(),
m_bounds() m_bounds()
{ {

View File

@ -141,7 +141,7 @@ void Sprite::draw(RenderTarget& target, const RenderStates& states) const
statesCopy.transform *= getTransform(); statesCopy.transform *= getTransform();
statesCopy.texture = m_texture; statesCopy.texture = m_texture;
target.draw(m_vertices, 4, TriangleStrip, statesCopy); target.draw(m_vertices, 4, PrimitiveType::TriangleStrip, statesCopy);
} }
} }

View File

@ -104,8 +104,8 @@ m_style(Regular),
m_fillColor(255, 255, 255), m_fillColor(255, 255, 255),
m_outlineColor(0, 0, 0), m_outlineColor(0, 0, 0),
m_outlineThickness(0), m_outlineThickness(0),
m_vertices(Triangles), m_vertices(PrimitiveType::Triangles),
m_outlineVertices(Triangles), m_outlineVertices(PrimitiveType::Triangles),
m_bounds(), m_bounds(),
m_geometryNeedUpdate(false), m_geometryNeedUpdate(false),
m_fontTextureId(0) m_fontTextureId(0)
@ -124,8 +124,8 @@ m_style(Regular),
m_fillColor(255, 255, 255), m_fillColor(255, 255, 255),
m_outlineColor(0, 0, 0), m_outlineColor(0, 0, 0),
m_outlineThickness(0), m_outlineThickness(0),
m_vertices(Triangles), m_vertices(PrimitiveType::Triangles),
m_outlineVertices(Triangles), m_outlineVertices(PrimitiveType::Triangles),
m_bounds(), m_bounds(),
m_geometryNeedUpdate(true), m_geometryNeedUpdate(true),
m_fontTextureId(0) m_fontTextureId(0)

View File

@ -32,7 +32,7 @@
namespace sf namespace sf
{ {
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
VertexArray::VertexArray() : m_vertices(), m_primitiveType(Points) VertexArray::VertexArray() : m_vertices(), m_primitiveType(PrimitiveType::Points)
{ {
} }

View File

@ -63,7 +63,7 @@ GLenum usageToGlEnum(sf::VertexBuffer::Usage usage)
namespace sf namespace sf
{ {
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
VertexBuffer::VertexBuffer() : m_buffer(0), m_size(0), m_primitiveType(Points), m_usage(Stream) VertexBuffer::VertexBuffer() : m_buffer(0), m_size(0), m_primitiveType(PrimitiveType::Points), m_usage(Stream)
{ {
} }
@ -75,7 +75,11 @@ VertexBuffer::VertexBuffer(PrimitiveType type) : m_buffer(0), m_size(0), m_primi
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
VertexBuffer::VertexBuffer(VertexBuffer::Usage usage) : m_buffer(0), m_size(0), m_primitiveType(Points), m_usage(usage) VertexBuffer::VertexBuffer(VertexBuffer::Usage usage) :
m_buffer(0),
m_size(0),
m_primitiveType(PrimitiveType::Points),
m_usage(usage)
{ {
} }