From 80b4faf940aac5aaa7eea0379fcc3ba021863913 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Fri, 11 Apr 2025 11:44:33 -0400 Subject: [PATCH] Added a screen size parameters to the fragviewer. --- tools/fragviewer.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/tools/fragviewer.cpp b/tools/fragviewer.cpp index fe4540c..6701c2f 100644 --- a/tools/fragviewer.cpp +++ b/tools/fragviewer.cpp @@ -32,12 +32,14 @@ int main(int argc, char *argv[]) { sf::Shader shader; sf::RectangleShape rect; textures::SpriteTexture sprite_texture; + sf::Vector2f u_resolution{720.0, 720.0}; + sf::Vector2u screen_resolution{720, 720}; textures::init(); dbc::check(sf::Shader::isAvailable(), "You apparently are a time traveler from the 80s who doesn't have shaders."); - while((opt = getopt(argc, argv, "-hs:f:")) != -1) { + while((opt = getopt(argc, argv, "-hs:f:-x:-y:")) != -1) { switch(opt) { case 's': sprite_name = optarg; @@ -46,13 +48,21 @@ int main(int argc, char *argv[]) { case 'f': frag_name = optarg; break; + case 'x': + screen_resolution.x = std::atoi(optarg); + u_resolution.x = screen_resolution.x; + break; + case 'y': + screen_resolution.y = std::atoi(optarg); + u_resolution.y = screen_resolution.y; + break; case 'h': fmt::println( "fragviewer is a simple tool to play fragment shaders.\n" - "USAGE: fragviewer [-s sprite_name] -f shader.frag"); + "USAGE: fragviewer [-x size_x -y size_y] [-s sprite_name] -f shader.frag"); return 0; default: - fmt::println("USAGE: fragviewer [-s sprite_name] -f shader.frag"); + fmt::println("USAGE: fragviewer [-x size_x -y size_y] [-s sprite_name] -f shader.frag"); return -1; } } @@ -61,16 +71,13 @@ int main(int argc, char *argv[]) { dbc::check(frag_name != "", "You must set the -f shader.frag option."); - sf::Vector2f u_resolution{720.0, 720.0}; - - sf::RenderWindow window(sf::VideoMode({720, 720}), "SFML Frag Shader Viewer"); + sf::RenderWindow window(sf::VideoMode(screen_resolution), "SFML Frag Shader Viewer"); 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});