set_viewport as rect

This commit is contained in:
2018-10-24 19:25:32 +07:00
parent 51fc632125
commit 5624936f58
6 changed files with 14 additions and 16 deletions

View File

@@ -758,7 +758,7 @@ namespace e2d
render& clear_depth_buffer(f32 value) noexcept;
render& clear_stencil_buffer(u8 value) noexcept;
render& clear_color_buffer(const color& value) noexcept;
render& set_viewport(const v2u& pos, const v2u& size) noexcept;
render& set_viewport(const r4u& rect) noexcept;
render& set_render_target(const render_target_ptr& rt) noexcept;
private:
class internal_state;

View File

@@ -120,8 +120,7 @@ int e2d_main() {
the<vfs>().open(url("ships://ship (19).png")));
const auto shader = the<render>().create_shader(
make_memory_stream(buffer(vs_source_cstr, std::strlen(vs_source_cstr))),
make_memory_stream(buffer(fs_source_cstr, std::strlen(fs_source_cstr))));
vs_source_cstr, fs_source_cstr);
const auto indices = generate_quad_indices();
const auto index_buffer = the<render>().create_index_buffer(

View File

@@ -178,8 +178,7 @@ int e2d_main() {
the<vfs>().open(url("ships://ship (3).png")));
const auto shader = the<render>().create_shader(
make_memory_stream(buffer(vs_source_cstr, std::strlen(vs_source_cstr))),
make_memory_stream(buffer(fs_source_cstr, std::strlen(fs_source_cstr))));
vs_source_cstr, fs_source_cstr);
const auto indices = generate_cube_indices();
const auto index_buffer = the<render>().create_index_buffer(

View File

@@ -133,8 +133,7 @@ int e2d_main() {
the<vfs>().open(url("ships://ship (3).png")));
const auto shader = the<render>().create_shader(
make_memory_stream(buffer(vs_source_cstr, std::strlen(vs_source_cstr))),
make_memory_stream(buffer(fs_source_cstr, std::strlen(fs_source_cstr))));
vs_source_cstr, fs_source_cstr);
const auto indices = generate_cube_indices();
const auto index_buffer = the<render>().create_index_buffer(
@@ -214,7 +213,7 @@ int e2d_main() {
the<render>()
.set_render_target(rt)
.set_viewport(v2u::zero(), rt->size())
.set_viewport(rt->size())
.clear_depth_buffer(1.f)
.clear_stencil_buffer(0)
.clear_color_buffer({0.f, 0.4f, 0.f, 1.f})
@@ -228,7 +227,7 @@ int e2d_main() {
the<render>()
.set_render_target(nullptr)
.set_viewport(v2u::zero(), the<window>().real_size())
.set_viewport(the<window>().real_size())
.clear_depth_buffer(1.f)
.clear_stencil_buffer(0)
.clear_color_buffer({1.f, 0.4f, 0.f, 1.f})

View File

@@ -253,8 +253,8 @@ namespace e2d
return *this;
}
render& render::set_viewport(const v2u& pos, const v2u& size) noexcept {
E2D_UNUSED(pos, size);
render& render::set_viewport(const r4u& rect) noexcept {
E2D_UNUSED(rect);
return *this;
}

View File

@@ -849,16 +849,17 @@ namespace e2d
return *this;
}
render& render::set_viewport(const v2u& pos, const v2u& size) noexcept {
render& render::set_viewport(const r4u& rect) noexcept {
E2D_ASSERT(
std::this_thread::get_id() ==
modules::main_thread<render>());
const r4u vp = make_minmax_rect(rect);
GL_CHECK_CODE(state_->dbg(), glViewport(
math::numeric_cast<GLint>(pos.x),
math::numeric_cast<GLint>(pos.y),
math::numeric_cast<GLsizei>(size.x),
math::numeric_cast<GLsizei>(size.y)));
math::numeric_cast<GLint>(vp.position.x),
math::numeric_cast<GLint>(vp.position.y),
math::numeric_cast<GLsizei>(vp.size.x),
math::numeric_cast<GLsizei>(vp.size.y)));
return *this;
}