From 998e981949f59e68e2cfee33fd15202deec14bde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20=C3=9Cbelh=C3=B6r?= <t.uebelhoer@irt.rwth-aachen.de> Date: Fri, 1 Mar 2019 14:26:29 +0100 Subject: [PATCH] Conanfile packages shader files. Default constructor for OnScreenRender. --- conanfile.py | 6 ++++++ include/scigl_render/render/onscreen_render.hpp | 6 ++++++ src/example/scigl_viewer.cpp | 16 ++++++++++------ src/render/onscreen_render.cpp | 12 +++++++++--- 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/conanfile.py b/conanfile.py index c2729bf..cdc5f63 100644 --- a/conanfile.py +++ b/conanfile.py @@ -30,6 +30,12 @@ class SciglRenderConan(ConanFile): cmake.build() def package(self): + self.copy("*.cs", dst="include", src="include", keep_path=True) + self.copy("*.fs", dst="include", src="include", keep_path=True) + self.copy("*.gs", dst="include", src="include", keep_path=True) + self.copy("*.tcs", dst="include", src="include", keep_path=True) + self.copy("*.tes", dst="include", src="include", keep_path=True) + self.copy("*.vs", dst="include", src="include", keep_path=True) self.copy("*.h", dst="include", src="include", keep_path=True) self.copy("*.hpp", dst="include", src="include", keep_path=True) self.copy("*.lib", dst="lib", keep_path=False) diff --git a/include/scigl_render/render/onscreen_render.hpp b/include/scigl_render/render/onscreen_render.hpp index f88adae..34707bc 100644 --- a/include/scigl_render/render/onscreen_render.hpp +++ b/include/scigl_render/render/onscreen_render.hpp @@ -14,12 +14,18 @@ Simple rendering of a scene right on the screen (GLContext window). class OnscreenRender { public: + /*! Need to set the shader with the setter */ + OnscreenRender(); + /*! Configures the rendering environment and loads the models. \param shader how to render the scene */ OnscreenRender(Shader shader); + /*! Shader program for rendering the scene*/ + void set_shader_program(Shader shader); + /*! Renders the next frame onto the screen. */ diff --git a/src/example/scigl_viewer.cpp b/src/example/scigl_viewer.cpp index 927c10d..d53092b 100644 --- a/src/example/scigl_viewer.cpp +++ b/src/example/scigl_viewer.cpp @@ -67,11 +67,15 @@ int main(int argc, char *argv[]) camera_intrinsics.c_y = 310; camera_intrinsics.f_x = 511; camera_intrinsics.f_y = 513; - camera_intrinsics.dist_coeffs[0] = 4.1925421198910247e-02; - camera_intrinsics.dist_coeffs[1] = -9.6463442423611379e-02; - camera_intrinsics.dist_coeffs[2] = -2.3391717576772839e-03; - camera_intrinsics.dist_coeffs[3] = 5.8792609967242386e-04; - camera_intrinsics.dist_coeffs[4] = 4.9171950039135250e-02; + float dist_coeffs[] = { + 4.1925421198910247e-02, + -9.6463442423611379e-02, + -2.3391717576772839e-03, + 5.8792609967242386e-04, + 4.9171950039135250e-02, + 0, 0, 0}; + std::copy(std::begin(dist_coeffs), std::end(dist_coeffs), + std::begin(camera_intrinsics.dist_coeffs)); CvCamera camera(camera_intrinsics); // Test if Cartesian -> Quaternion works CartesianPose camera_pose = {glm::vec3(0, 0, 0), glm::vec3(0, 0, 0)}; @@ -81,7 +85,7 @@ int main(int argc, char *argv[]) model.pose.position = glm::vec3(0, 0, 0.5); model.pose.orientation.x = 0.707; model.pose.orientation.w = 0.707; - light.position = glm::vec3(0, -0.1, 0); + light.position = glm::vec3(0, -0.5, 0); light.color = glm::vec3(1, 1, 1); // main loop diff --git a/src/render/onscreen_render.cpp b/src/render/onscreen_render.cpp index 69b5d69..07e5f48 100644 --- a/src/render/onscreen_render.cpp +++ b/src/render/onscreen_render.cpp @@ -3,12 +3,13 @@ namespace scigl_render { +OnscreenRender::OnscreenRender() : OnscreenRender(Shader(0)) {} + OnscreenRender::OnscreenRender(Shader shader) - : shader(std::move(shader)) { // Configure the global rendering settings glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); - check_gl_error("onscreen render created"); + set_shader_program(std::move(shader)); } void OnscreenRender::next_frame( @@ -24,7 +25,12 @@ void OnscreenRender::next_frame( model.draw(shader); glfwSwapBuffers(gl_context.get_window()); - check_gl_error("next frame"); + check_gl_error("rendered next frame"); +} + +void OnscreenRender::set_shader_program(Shader shader) +{ + this->shader = std::move(shader); } } // namespace scigl_render \ No newline at end of file -- GitLab