-
Notifications
You must be signed in to change notification settings - Fork 185
Closed
Description
Without rendering sf::Sprite
:
With rendering sf::Sprite
:
This is taken directly from the sample program, but with a few lines added to load/render the sprite.
#include "imgui/imgui.h"
#include "imgui/imgui-SFML.h"
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Graphics/Texture.hpp>
#include <SFML/Graphics/Sprite.hpp>
#include <SFML/System/Clock.hpp>
#include <SFML/Window/Event.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(640, 480), "");
window.setVerticalSyncEnabled(true);
ImGui::SFML::Init(window);
sf::Texture texture;
texture.loadFromFile("image.jpg");
sf::Sprite sprite;
sprite.setTexture(texture);
sf::Color bgColor;
float color[3] = { 0.f, 0.f, 0.f };
// let's use char array as buffer, see next part
// for instructions on using std::string with ImGui
char windowTitle[255] = "ImGui + SFML = <3";
window.setTitle(windowTitle);
sf::Clock deltaClock;
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
ImGui::SFML::ProcessEvent(event);
if (event.type == sf::Event::Closed) {
window.close();
}
}
ImGui::SFML::Update(deltaClock.restart());
ImGui::Begin("Sample window"); // begin window
// Background color edit
if (ImGui::ColorEdit3("Background color", color)) {
// this code gets called if color value changes, so
// the background color is upgraded automatically!
bgColor.r = static_cast<sf::Uint8>(color[0] * 255.f);
bgColor.g = static_cast<sf::Uint8>(color[1] * 255.f);
bgColor.b = static_cast<sf::Uint8>(color[2] * 255.f);
}
// Window title text edit
ImGui::InputText("Window title", windowTitle, 255);
if (ImGui::Button("Update window title")) {
// this code gets if user clicks on the button
// yes, you could have written if(ImGui::InputText(...))
// but I do this to show how buttons work :)
window.setTitle(windowTitle);
}
// Demo
// ImGui::ShowTestWindow();
ImGui::End(); // end window
window.clear(bgColor); // fill background with color
ImGui::Render();
window.draw(sprite);
window.display();
}
ImGui::SFML::Shutdown();
}
The only difference between the two screenshots was commenting out window.draw(sprite)
.
Have you seen this before?
Metadata
Metadata
Assignees
Labels
No labels