diff --git a/conanfile.py b/conanfile.py index c2729bfb58ceb2788b4ba2c24e45a677e07890b4..cdc5f630de506ee975d65d06b5bef6858a59fc23 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 f88adae6eb539aaece7876284cc5a5286cdfc4dd..34707bca9455bdc2928ff1e123f3cacad81ebe26 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 927c10d5a7c3ed71c4916855988f19b1cb22776f..d53092bc030e374dc241b85d3e0381897d331ed0 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 69b5d691180a801e3c62a6c9eea9f72cca56e846..07e5f484f982b0afd74217479da2932f076e5d99 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