Skip to content

Commit ba02e10

Browse files
committed
WIP commit
1 parent 0332b04 commit ba02e10

File tree

9 files changed

+30
-13
lines changed

9 files changed

+30
-13
lines changed

CSFML/src/Graphics/BlendMode.hpp

Whitespace-only changes.

CSFML/src/Graphics/PrimitiveType.hpp

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#pragma once
2+
3+
typedef enum {
4+
sfPoints,
5+
sfLines,
6+
sfLineStrip,
7+
sfTriangles,
8+
sfTriangleStrip,
9+
sfTriangleFan,
10+
} sfPrimitiveType;

CSFML/src/Graphics/RenderTexture.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
#include "Graphics/PrimitiveType.hpp"
12
#include "Graphics/Rect.hpp"
23
#include "Graphics/Color.hpp"
4+
#include "SFML/Graphics/PrimitiveType.hpp"
35
#include "SFML/Window/ContextSettings.hpp"
46
#include "System/Vector2.hpp"
57
#include <SFML/Graphics/RenderTarget.hpp>
@@ -105,8 +107,8 @@ extern "C" void sfRenderTexture_drawVertexBuffer(sf::RenderTexture *renderTextur
105107

106108
extern "C" void sfRenderTexture_drawPrimitives(sf::RenderTexture *renderTexture,
107109
const sf::Vertex *vertices, size_t vertexCount,
108-
sf::PrimitiveType type, const sf::RenderStates *states) {
109-
renderTexture->draw(vertices, vertexCount, type, *states);
110+
sfPrimitiveType type, const sf::RenderStates *states) {
111+
renderTexture->draw(vertices, vertexCount, static_cast<sf::PrimitiveType>(type), *states);
110112
}
111113

112114
extern "C" void sfRenderTexture_pushGLStates(sf::RenderTexture *renderTexture) {

CSFML/src/Graphics/RenderWindow.cpp

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
#include "Graphics/PrimitiveType.hpp"
12
#include "Graphics/Rect.hpp"
23
#include "Graphics/Color.hpp"
4+
#include "SFML/Graphics/PrimitiveType.hpp"
35
#include "System/Vector2.hpp"
46
#include "Window/Event.hpp"
57
#include "Window/VideoMode.hpp"
@@ -15,6 +17,8 @@
1517
#include <SFML/Window/Touch.hpp>
1618
#include <chrono>
1719
#include <cstddef>
20+
// Debug ONLY
21+
#include <iostream>
1822

1923
extern "C" sf::RenderWindow *sfRenderWindow_new_mtsss(sfVideoMode mode, const uint32_t *title, uint32_t style, sfState state, const sf::ContextSettings *settings) {
2024
// Convert video mode
@@ -189,6 +193,8 @@ extern "C" void sfRenderWindow_drawConvexShape(sf::RenderWindow *renderWindow, c
189193
renderWindow->draw(*object, *states);
190194
}
191195
extern "C" void sfRenderWindow_drawRectangleShape(sf::RenderWindow *renderWindow, const sf::RectangleShape *object, const sf::RenderStates *states) {
196+
std::cout << static_cast<int>(states->blendMode) << std::endl;
197+
std::cout << object->getSize().x << " " << object->getSize().y << std::endl;
192198
renderWindow->draw(*object, *states);
193199
}
194200
extern "C" void sfRenderWindow_drawVertexBuffer(sf::RenderWindow *renderWindow, const sf::VertexBuffer *object, const sf::RenderStates *states) {
@@ -197,8 +203,8 @@ extern "C" void sfRenderWindow_drawVertexBuffer(sf::RenderWindow *renderWindow,
197203

198204
extern "C" void sfRenderWindow_drawPrimitives(sf::RenderWindow *renderWindow,
199205
const sf::Vertex *vertices, size_t vertexCount,
200-
sf::PrimitiveType type, const sf::RenderStates *states) {
201-
renderWindow->draw(vertices, vertexCount, type, *states);
206+
sfPrimitiveType type, const sf::RenderStates *states) {
207+
renderWindow->draw(vertices, vertexCount, static_cast<sf::PrimitiveType>(type), *states);
202208
}
203209

204210
extern "C" void sfRenderWindow_pushGLStates(sf::RenderWindow *renderWindow) {

CSFML/src/Graphics/VertexBuffer.cpp

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#include "Graphics/PrimitiveType.hpp"
2+
#include "SFML/Graphics/PrimitiveType.hpp"
13
#include "SFML/Graphics/RenderTarget.hpp"
24
#include <SFML/Graphics/VertexBuffer.hpp>
35
#include <cstddef>
@@ -38,12 +40,12 @@ extern "C" unsigned int sfVertexBuffer_getNativeHandle(const sf::VertexBuffer *v
3840
return vertexBuffer->getNativeHandle();
3941
}
4042

41-
extern "C" void sfVertexBuffer_setPrimitiveType(sf::VertexBuffer *vertexBuffer, sf::PrimitiveType type) {
42-
vertexBuffer->setPrimitiveType(type);
43+
extern "C" void sfVertexBuffer_setPrimitiveType(sf::VertexBuffer *vertexBuffer, sfPrimitiveType type) {
44+
vertexBuffer->setPrimitiveType(static_cast<sf::PrimitiveType>(type));
4345
}
4446

45-
extern "C" sf::PrimitiveType sfVertexBuffer_getPrimitiveType(const sf::VertexBuffer *vertexBuffer) {
46-
return vertexBuffer->getPrimitiveType();
47+
extern "C" sfPrimitiveType sfVertexBuffer_getPrimitiveType(const sf::VertexBuffer *vertexBuffer) {
48+
return static_cast<sfPrimitiveType>(vertexBuffer->getPrimitiveType());
4749
}
4850

4951
extern "C" void sfVertexBuffer_setUsage(sf::VertexBuffer *vertexBuffer, sf::VertexBuffer::Usage usage) {

examples/spritemark.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ fn main() -> SfResult<()> {
158158
}
159159
window.clear(Color::BLACK);
160160
rs.texture = Some(&texture);
161-
window.draw_primitives(&buf, PrimitiveType::QUADS, &rs);
161+
window.draw_primitives(&buf, PrimitiveType::TRIANGLE_STRIP, &rs);
162162
rs.texture = None;
163163
text.set_string(&format!("{} sprites\n{fps} fps", objects.len()));
164164
window.draw_text(&text, &rs);

examples/vertex-arrays.rs

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ fn main() -> SfResult<()> {
1212
(800, 600),
1313
"Vertex array example",
1414
Style::CLOSE,
15+
Default::default(),
1516
&Default::default(),
1617
)?;
1718
window.set_vertical_sync_enabled(true);

src/ffi/graphics.rs

-2
Original file line numberDiff line numberDiff line change
@@ -272,8 +272,6 @@ pub enum sfPrimitiveType {
272272
TriangleStrip,
273273
/// List of connected triangles, a point uses the common center and the previous point to form a triangle
274274
TriangleFan,
275-
/// List of individual quads
276-
Quads,
277275
}
278276

279277
type sfColor = Color;

src/graphics/primitive_type.rs

-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,4 @@ impl PrimitiveType {
2424
/// List of connected triangles, a point uses the common center
2525
/// and the previous point to form a triangle.
2626
pub const TRIANGLE_FAN: Self = Self(ffi::graphics::sfPrimitiveType::TriangleFan);
27-
/// List of individual quads (deprecated, don't work with OpenGL ES)
28-
pub const QUADS: Self = Self(ffi::graphics::sfPrimitiveType::Quads);
2927
}

0 commit comments

Comments
 (0)