mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-14 16:09:06 +07:00
viewport_command to int coord
This commit is contained in:
@@ -816,23 +816,23 @@ namespace e2d
|
||||
class viewport_command final {
|
||||
public:
|
||||
viewport_command() = delete;
|
||||
viewport_command(const b2u& viewport_rect) noexcept;
|
||||
viewport_command(const b2u& viewport_rect, const b2u& scissor_rect) noexcept;
|
||||
viewport_command(const b2i& viewport_rect) noexcept;
|
||||
viewport_command(const b2i& viewport_rect, const b2i& scissor_rect) noexcept;
|
||||
|
||||
viewport_command& viewport_rect(const b2u& value) noexcept;
|
||||
viewport_command& scissor_rect(const b2u& value) noexcept;
|
||||
viewport_command& viewport_rect(const b2i& value) noexcept;
|
||||
viewport_command& scissor_rect(const b2i& value) noexcept;
|
||||
viewport_command& scissoring(bool value) noexcept;
|
||||
|
||||
b2u& viewport_rect() noexcept;
|
||||
b2u& scissor_rect() noexcept;
|
||||
b2i& viewport_rect() noexcept;
|
||||
b2i& scissor_rect() noexcept;
|
||||
bool& scissoring() noexcept;
|
||||
|
||||
const b2u& viewport_rect() const noexcept;
|
||||
const b2u& scissor_rect() const noexcept;
|
||||
const b2i& viewport_rect() const noexcept;
|
||||
const b2i& scissor_rect() const noexcept;
|
||||
bool scissoring() const noexcept;
|
||||
private:
|
||||
b2u viewport_rect_ = b2u::zero();
|
||||
b2u scissor_rect_ = b2u::zero();
|
||||
b2i viewport_rect_ = b2i::zero();
|
||||
b2i scissor_rect_ = b2i::zero();
|
||||
bool scissoring_ = false;
|
||||
};
|
||||
|
||||
|
||||
@@ -193,7 +193,7 @@ namespace
|
||||
|
||||
the<render>().execute(render::command_block<64>()
|
||||
.add_command(render::viewport_command(
|
||||
the<window>().framebuffer_size()))
|
||||
the<window>().framebuffer_size().cast_to<i32>()))
|
||||
.add_command(render::clear_command()
|
||||
.color_value({1.f, 0.4f, 0.f, 1.f}))
|
||||
.add_command(render::draw_command(material_, geometry_)));
|
||||
|
||||
@@ -254,7 +254,7 @@ namespace
|
||||
|
||||
the<render>().execute(render::command_block<64>()
|
||||
.add_command(render::viewport_command(
|
||||
the<window>().framebuffer_size()))
|
||||
the<window>().framebuffer_size().cast_to<i32>()))
|
||||
.add_command(render::clear_command()
|
||||
.color_value({1.f, 0.4f, 0.f, 1.f}))
|
||||
.add_command(render::draw_command(material_, geometry_)));
|
||||
|
||||
@@ -224,7 +224,7 @@ namespace
|
||||
|
||||
the<render>().execute(render::command_block<64>()
|
||||
.add_command(render::target_command(render_target_))
|
||||
.add_command(render::viewport_command(render_target_->size()))
|
||||
.add_command(render::viewport_command(render_target_->size().cast_to<i32>()))
|
||||
.add_command(render::clear_command()
|
||||
.color_value({0.f, 0.4f, 0.f, 1.f}))
|
||||
.add_command(render::draw_command(material_, geometry_, tex_props_)));
|
||||
@@ -233,8 +233,8 @@ namespace
|
||||
.add_command(render::target_command(nullptr))
|
||||
.add_command(render::clear_command()
|
||||
.color_value(color::blue()))
|
||||
.add_command(render::viewport_command(the<window>().framebuffer_size())
|
||||
.scissor_rect(make_rect(v2u{100u}, the<window>().framebuffer_size() - 200u)))
|
||||
.add_command(render::viewport_command(the<window>().framebuffer_size().cast_to<i32>())
|
||||
.scissor_rect(make_rect(v2i{100}, the<window>().framebuffer_size().cast_to<i32>() - 200)))
|
||||
.add_command(render::clear_command()
|
||||
.color_value({1.f, 0.4f, 0.f, 1.f}))
|
||||
.add_command(render::draw_command(material_, geometry_, rt_props_)));
|
||||
|
||||
@@ -49,8 +49,6 @@ namespace
|
||||
owner.for_joined_components<camera>(
|
||||
[](const ecs::const_entity&, camera& cam){
|
||||
if ( !cam.target() ) {
|
||||
cam.viewport(
|
||||
the<window>().framebuffer_size());
|
||||
cam.projection(math::make_orthogonal_lh_matrix4(
|
||||
the<window>().real_size().cast_to<f32>(), 0.f, 1000.f));
|
||||
}
|
||||
|
||||
@@ -42,8 +42,6 @@ namespace
|
||||
owner.for_joined_components<camera>(
|
||||
[](const ecs::const_entity&, camera& cam){
|
||||
if ( !cam.target() ) {
|
||||
cam.viewport(
|
||||
the<window>().framebuffer_size());
|
||||
cam.projection(math::make_orthogonal_lh_matrix4(
|
||||
the<window>().real_size().cast_to<f32>(), 0.f, 1000.f));
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace
|
||||
void frame_render() final {
|
||||
the<render>().execute(render::command_block<64>()
|
||||
.add_command(render::viewport_command(
|
||||
the<window>().framebuffer_size()))
|
||||
the<window>().framebuffer_size().cast_to<i32>()))
|
||||
.add_command(render::clear_command()
|
||||
.color_value({1.f, 0.4f, 0.f, 1.f})));
|
||||
}
|
||||
|
||||
@@ -80,8 +80,6 @@ namespace
|
||||
owner.for_joined_components<camera>(
|
||||
[](const ecs::const_entity&, camera& cam){
|
||||
if ( !cam.target() ) {
|
||||
cam.viewport(
|
||||
the<window>().framebuffer_size());
|
||||
cam.projection(math::make_orthogonal_lh_matrix4(
|
||||
the<window>().real_size().cast_to<f32>(), 0.f, 1000.f));
|
||||
}
|
||||
|
||||
@@ -42,8 +42,6 @@ namespace
|
||||
owner.for_joined_components<camera>(
|
||||
[](const ecs::const_entity&, camera& cam){
|
||||
if ( !cam.target() ) {
|
||||
cam.viewport(
|
||||
the<window>().framebuffer_size());
|
||||
cam.projection(math::make_orthogonal_lh_matrix4(
|
||||
the<window>().real_size().cast_to<f32>(), 0.f, 1000.f));
|
||||
}
|
||||
|
||||
@@ -174,8 +174,8 @@ namespace e2d
|
||||
|
||||
render_.execute(render::command_block<8>()
|
||||
.add_command(render::viewport_command(
|
||||
framebuffer_size.cast_to<u32>(),
|
||||
clip_r.cast_to<u32>()))
|
||||
framebuffer_size.cast_to<i32>(),
|
||||
clip_r.cast_to<i32>()))
|
||||
.add_command(render::draw_command(material_, geometry, mprops_)
|
||||
.index_range(first_index, pcmd.ElemCount)));
|
||||
}
|
||||
|
||||
@@ -1076,20 +1076,20 @@ namespace e2d
|
||||
// viewport_command
|
||||
//
|
||||
|
||||
render::viewport_command::viewport_command(const b2u& viewport_rect) noexcept
|
||||
render::viewport_command::viewport_command(const b2i& viewport_rect) noexcept
|
||||
: viewport_rect_(viewport_rect) {}
|
||||
|
||||
render::viewport_command::viewport_command(const b2u& viewport_rect, const b2u& scissor_rect) noexcept
|
||||
render::viewport_command::viewport_command(const b2i& viewport_rect, const b2i& scissor_rect) noexcept
|
||||
: viewport_rect_(viewport_rect)
|
||||
, scissor_rect_(scissor_rect)
|
||||
, scissoring_(true) {}
|
||||
|
||||
render::viewport_command& render::viewport_command::viewport_rect(const b2u& value) noexcept {
|
||||
render::viewport_command& render::viewport_command::viewport_rect(const b2i& value) noexcept {
|
||||
viewport_rect_ = value;
|
||||
return *this;
|
||||
}
|
||||
|
||||
render::viewport_command& render::viewport_command::scissor_rect(const b2u& value) noexcept {
|
||||
render::viewport_command& render::viewport_command::scissor_rect(const b2i& value) noexcept {
|
||||
scissor_rect_ = value;
|
||||
scissoring_ = true;
|
||||
return *this;
|
||||
@@ -1100,11 +1100,11 @@ namespace e2d
|
||||
return *this;
|
||||
}
|
||||
|
||||
b2u& render::viewport_command::viewport_rect() noexcept {
|
||||
b2i& render::viewport_command::viewport_rect() noexcept {
|
||||
return viewport_rect_;
|
||||
}
|
||||
|
||||
b2u& render::viewport_command::scissor_rect() noexcept {
|
||||
b2i& render::viewport_command::scissor_rect() noexcept {
|
||||
return scissor_rect_;
|
||||
}
|
||||
|
||||
@@ -1112,11 +1112,11 @@ namespace e2d
|
||||
return scissoring_;
|
||||
}
|
||||
|
||||
const b2u& render::viewport_command::viewport_rect() const noexcept {
|
||||
const b2i& render::viewport_command::viewport_rect() const noexcept {
|
||||
return viewport_rect_;
|
||||
}
|
||||
|
||||
const b2u& render::viewport_command::scissor_rect() const noexcept {
|
||||
const b2i& render::viewport_command::scissor_rect() const noexcept {
|
||||
return scissor_rect_;
|
||||
}
|
||||
|
||||
|
||||
@@ -1032,7 +1032,7 @@ namespace e2d
|
||||
render& render::execute(const viewport_command& command) {
|
||||
E2D_ASSERT(is_in_main_thread());
|
||||
|
||||
const b2u viewport = math::make_minmax_rect(command.viewport_rect());
|
||||
const b2i viewport = math::make_minmax_rect(command.viewport_rect());
|
||||
GL_CHECK_CODE(state_->dbg(), glViewport(
|
||||
math::numeric_cast<GLint>(viewport.position.x),
|
||||
math::numeric_cast<GLint>(viewport.position.y),
|
||||
@@ -1040,7 +1040,7 @@ namespace e2d
|
||||
math::numeric_cast<GLsizei>(viewport.size.y)));
|
||||
|
||||
if ( command.scissoring() ) {
|
||||
const b2u scissor = math::make_minmax_rect(command.scissor_rect());
|
||||
const b2i scissor = math::make_minmax_rect(command.scissor_rect());
|
||||
GL_CHECK_CODE(state_->dbg(), glScissor(
|
||||
math::numeric_cast<GLint>(scissor.position.x),
|
||||
math::numeric_cast<GLint>(scissor.position.y),
|
||||
|
||||
Reference in New Issue
Block a user