|
|
|
@ -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}); |
|
|
|
|