feat: draw_scene now requires a RenderStates argument
This commit is contained in:
parent
73248c3780
commit
42d5596e60
|
|
@ -1,3 +1,5 @@
|
||||||
|
#include "SFML/Graphics/RectangleShape.hpp"
|
||||||
|
#include "SFML/Graphics/RenderStates.hpp"
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
#include <SFML/Graphics.hpp>
|
#include <SFML/Graphics.hpp>
|
||||||
#include <SFML/Window.hpp>
|
#include <SFML/Window.hpp>
|
||||||
|
|
@ -22,7 +24,11 @@ void setup() {
|
||||||
void loop() {
|
void loop() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw_scene(sf::RenderTarget &target) {
|
void draw_scene(sf::RenderTarget &target, sf::RenderStates const &states) {
|
||||||
|
static sf::RectangleShape rect{ { 300, 300 } };
|
||||||
|
sf::RenderStates n_states{states};
|
||||||
|
n_states.transform.translate({ 20, 20 });
|
||||||
|
target.draw(rect, n_states);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool dockspace = true;
|
static bool dockspace = true;
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,13 @@
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <SFML/System/String.hpp>
|
#include <SFML/System/String.hpp>
|
||||||
#include <SFML/Window/VideoMode.hpp>
|
#include <SFML/Window/VideoMode.hpp>
|
||||||
|
#include <SFML/Graphics/RenderStates.hpp>
|
||||||
|
|
||||||
struct AppConfig {
|
struct AppConfig {
|
||||||
sf::String window_title{ "UNNAMED WINDOW" };
|
sf::String window_title{ "UNNAMED WINDOW" };
|
||||||
sf::VideoMode mode{{ 1280, 720 }};
|
sf::VideoMode mode{ { 1280, 720 } };
|
||||||
bool vsync{};
|
sf::RenderStates default_render_states{sf::RenderStates::Default};
|
||||||
|
bool vsync{false};
|
||||||
std::optional<int> frame_rate_limit{std::nullopt};
|
std::optional<int> frame_rate_limit{std::nullopt};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ static sf::View view{};
|
||||||
extern void configure(AppConfig &config);
|
extern void configure(AppConfig &config);
|
||||||
|
|
||||||
void initialize_window() {
|
void initialize_window() {
|
||||||
|
cfg = AppConfig();
|
||||||
configure(cfg);
|
configure(cfg);
|
||||||
window.create(cfg.mode, cfg.window_title);
|
window.create(cfg.mode, cfg.window_title);
|
||||||
if (cfg.frame_rate_limit)
|
if (cfg.frame_rate_limit)
|
||||||
|
|
@ -40,8 +41,8 @@ void poll_events() {
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void setup(void);
|
extern void setup(void);
|
||||||
extern void loop(void);
|
extern void loop(double delta);
|
||||||
extern void draw_scene(sf::RenderTarget &target);
|
extern void draw_scene(sf::RenderTarget &target, sf::RenderStates const &states);
|
||||||
extern void draw_main_menu_bar(void);
|
extern void draw_main_menu_bar(void);
|
||||||
extern void draw_gui(void);
|
extern void draw_gui(void);
|
||||||
|
|
||||||
|
|
@ -63,6 +64,7 @@ int main() {
|
||||||
draw_gui();
|
draw_gui();
|
||||||
// Render
|
// Render
|
||||||
window.clear();
|
window.clear();
|
||||||
|
draw_scene(window, cfg.default_render_states);
|
||||||
ImGui::SFML::Render(window);
|
ImGui::SFML::Render(window);
|
||||||
window.display();
|
window.display();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue