diff --git a/includes/RT/Window.hpp b/includes/RT/Window.hpp index 47a47b3..7bac10a 100644 --- a/includes/RT/Window.hpp +++ b/includes/RT/Window.hpp @@ -41,7 +41,7 @@ class Window GLFWwindow *getWindow(void) const; float getFps(void) const; int getFrameCount(void) const; - + int getOutputTexture(void) const; int getPixelisation(void); bool &getAccumulate(void); @@ -54,6 +54,8 @@ class Window GLFWwindow *_window; Scene *_scene; Renderer *_renderer; + + int _output_texture; float _fps; float _delta; diff --git a/srcs/RT.cpp b/srcs/RT.cpp index 0d15aae..5f799e8 100644 --- a/srcs/RT.cpp +++ b/srcs/RT.cpp @@ -96,7 +96,7 @@ int main(int argc, char **argv) window.imGuiNewFrame(); render_program.use(); - drawScreenTriangle(VAO, textures[0], render_program.getProgram()); + drawScreenTriangle(VAO, textures[window.getOutputTexture()], render_program.getProgram()); window.imGuiRender(raytracing_program); diff --git a/srcs/class/Window.cpp b/srcs/class/Window.cpp index 0ef2952..b87704a 100644 --- a/srcs/class/Window.cpp +++ b/srcs/class/Window.cpp @@ -23,6 +23,7 @@ Window::Window(Scene *scene, int width, int height, const char *title, int sleep _fps = 0; _frameCount = 0; _pixelisation = 0; + _output_texture = 0; _renderer = new Renderer(scene, this, args); glfwSetErrorCallback(GLFWErrorCallback); if (!glfwInit()) @@ -200,6 +201,7 @@ void Window::imGuiRender(ShaderProgram &raytracing_program) ImGui::Text("Fps: %d", int(_fps)); ImGui::Text("Frame: %d", _frameCount); ImGui::Text("Objects: %lu", _scene->getObjectData().size() + _scene->getTriangleData().size()); + ImGui::SliderInt("Output texture", &_output_texture, 0, 7); ImGui::Spacing(); @@ -354,6 +356,11 @@ bool &Window::getAccumulate(void) return (accumulate); } +int Window::getOutputTexture(void) const +{ + return (_output_texture); +} + int Window::getPixelisation(void) { bool mouse = glfwGetMouseButton(_window, GLFW_MOUSE_BUTTON_RIGHT) == GLFW_PRESS;