Ejemplo n.º 1
0
		void bc_perspective_camera::set_projection(bcUINT16 p_back_buffer_width, bcUINT16 p_back_buffer_height, bcFLOAT p_near_clip, bcFLOAT p_far_clip) noexcept
		{
			m_screen_width = p_back_buffer_width;
			m_screen_height = p_back_buffer_height;
			m_near = p_near_clip;
			m_far = p_far_clip;
			m_aspect_ratio = bcFLOAT(p_back_buffer_width) / p_back_buffer_height;

			create_projection_matrix();
		}
Ejemplo n.º 2
0
		void bc_orthographic_camera::set_projection(bcUINT16 p_back_buffer_width, bcUINT16 p_back_buffer_height, bcFLOAT p_near_clip, bcFLOAT p_far_clip) noexcept
		{
			m_screen_width = p_back_buffer_width;
			m_screen_height = p_back_buffer_height;
			m_near = p_near_clip;
			m_far = p_far_clip;
			m_min_x = 0;
			m_max_x = p_back_buffer_width;
			m_min_y = 0;
			m_max_y = p_back_buffer_height;

			create_projection_matrix();
		}
Ejemplo n.º 3
0
void		resize_function(GLFWwindow *window, int width, int height)
{
	t_env	*env;

	env = glfwGetWindowUserPointer(window);
	env->wnd_width = width;
	env->wnd_height = height;
	glViewport(0, 0, (GLsizei)width, (GLsizei)height);
	env->projection = create_projection_matrix(env->camera.fov,
			(float)env->wnd_width / env->wnd_height,
			env->camera.near_plane, env->camera.far_plane);
	glUseProgram(env->shader->program);
	glUniformMatrix4fv(env->shader->uniforms[2], 1, GL_FALSE,
			env->projection.m);
	glUseProgram(0);
}