void Demo::create_arcball() { auto blinn_phong_program = programs.create(BLINNPHONG_VS, BLINNPHONG_FS); auto shaded_pass = std::make_shared<gst::ShadedPass>(blinn_phong_program); shaded_pass->set_cull_face(gst::CullFace::BACK); shaded_pass->set_depth_test(true); auto material = gst::Material::create_struct("material"); material.get_uniform("ambient") = glm::vec3(1.2f); material.get_uniform("diffuse") = glm::vec3(0.8f); material.get_uniform("specular") = glm::vec3(1.0f); material.get_uniform("emission") = glm::vec3(0.0f); material.get_uniform("shininess") = 21.0f; gst::MeshFactory mesh_factory(logger); auto suzanne = std::make_shared<gst::GroupNode>(); for (auto mesh : mesh_factory.create_from_file(SUZANNE_OBJ)) { auto model = gst::Model(mesh, material, shaded_pass); auto model_node = std::make_shared<gst::ModelNode>(model); suzanne->add(model_node); } scene.add(suzanne); arcball = Arcball(suzanne); arcball.set_allow_constraints(true); arcball_helper = ArcballHelper::create(programs); arcball_helper.set_show_result(false); }
void StateManager::init() { set_multisample(true); set_blend(false); set_culling(true); set_color_mask(glm::bvec4(true)); set_depth_mask(true); set_depth_test(true); set_scissor_test(false); set_sample_alpha_to_coverage(false); set_polygon_offset_fill(false); set_flip_back_face_culling(false); set_restart_index(std::numeric_limits<Uint32>::max()); set_use_restart_index(true); set_view_port(m_state_set.get_view_port()); }