Everyone is on fire temporarily.

This commit is contained in:
Zed A. Shaw 2025-04-15 19:34:39 -04:00
parent 467a26628c
commit 5ffa3b0d1e
5 changed files with 104 additions and 9 deletions

View file

@ -9,6 +9,8 @@
#include <fmt/core.h>
#include <unistd.h>
bool SHADER_RELOAD = true;
void Handle_events(sf::RenderWindow &window) {
// is this a main event loop
while (const auto event = window.pollEvent()) {
@ -16,8 +18,8 @@ void Handle_events(sf::RenderWindow &window) {
window.close();
} else if(const auto* key = event->getIf<sf::Event::KeyPressed>()) {
using KEY = sf::Keyboard::Scan;
if(key->scancode == KEY::Escape) {
window.close();
if(key->scancode == KEY::Escape || key->scancode == KEY::Space) {
SHADER_RELOAD = true;
}
}
}
@ -75,9 +77,6 @@ int main(int argc, char *argv[]) {
window.setFramerateLimit(60);
window.setVerticalSyncEnabled(true);
bool good_shader = shader.loadFromFile(frag_name, sf::Shader::Type::Fragment);
dbc::check(good_shader, fmt::format("failed to load shader {}", frag_name));
if(load_sprite) {
sprite_texture = textures::get(sprite_name);
sprite_texture.sprite->setPosition({0,0});
@ -89,13 +88,23 @@ int main(int argc, char *argv[]) {
} else {
rect.setPosition({0,0});
rect.setSize(u_resolution);
rect.setFillColor({255, 0, 0, 255});
}
shader.setUniform("u_resolution", u_resolution);
while(window.isOpen()) {
Handle_events(window);
if(SHADER_RELOAD) {
bool good_shader = shader.loadFromFile(frag_name, sf::Shader::Type::Fragment);
if(!good_shader) {
fmt::print("!!!!!! failed to load shader {}\n", frag_name);
}
shader.setUniform("u_resolution", u_resolution);
SHADER_RELOAD = false;
}
sf::Time u_time = clock.getElapsedTime();
sf::Vector2i mouse_at = sf::Mouse::getPosition(window);
sf::Vector2f u_mouse{float(mouse_at.x), float(mouse_at.y)};