mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-15 08:15:38 +07:00
remove cancel from defer, add buffer_view overload for create_shader function
This commit is contained in:
@@ -906,6 +906,10 @@ namespace e2d
|
|||||||
shader_ptr create_shader(
|
shader_ptr create_shader(
|
||||||
str_view vertex_source,
|
str_view vertex_source,
|
||||||
str_view fragment_source);
|
str_view fragment_source);
|
||||||
|
|
||||||
|
shader_ptr create_shader(
|
||||||
|
buffer_view vertex_source,
|
||||||
|
buffer_view fragment_source);
|
||||||
|
|
||||||
shader_ptr create_shader(
|
shader_ptr create_shader(
|
||||||
const input_stream_uptr& vertex_stream,
|
const input_stream_uptr& vertex_stream,
|
||||||
|
|||||||
@@ -19,17 +19,10 @@ namespace e2d
|
|||||||
: f_(std::move(f)) {}
|
: f_(std::move(f)) {}
|
||||||
|
|
||||||
~defer_impl() noexcept(std::is_nothrow_invocable_v<F>) {
|
~defer_impl() noexcept(std::is_nothrow_invocable_v<F>) {
|
||||||
if ( !cancelled_ ) {
|
f_();
|
||||||
f_();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void cancel() noexcept {
|
|
||||||
cancelled_ = true;
|
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
F f_;
|
F f_;
|
||||||
bool cancelled_{false};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -180,6 +180,14 @@ namespace e2d
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shader_ptr render::create_shader(
|
||||||
|
buffer_view vertex_source,
|
||||||
|
buffer_view fragment_source)
|
||||||
|
{
|
||||||
|
E2D_UNUSED(vertex_source, fragment_source);
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
shader_ptr render::create_shader(
|
shader_ptr render::create_shader(
|
||||||
const input_stream_uptr& vertex_stream,
|
const input_stream_uptr& vertex_stream,
|
||||||
const input_stream_uptr& fragment_stream)
|
const input_stream_uptr& fragment_stream)
|
||||||
|
|||||||
@@ -531,6 +531,17 @@ namespace e2d
|
|||||||
state_->dbg(), std::move(ps)));
|
state_->dbg(), std::move(ps)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shader_ptr render::create_shader(
|
||||||
|
buffer_view vertex_source,
|
||||||
|
buffer_view fragment_source)
|
||||||
|
{
|
||||||
|
E2D_ASSERT(is_in_main_thread());
|
||||||
|
|
||||||
|
return create_shader(
|
||||||
|
str_view(reinterpret_cast<const char*>(vertex_source.data()), vertex_source.size()),
|
||||||
|
str_view(reinterpret_cast<const char*>(fragment_source.data()), fragment_source.size()));
|
||||||
|
}
|
||||||
|
|
||||||
shader_ptr render::create_shader(
|
shader_ptr render::create_shader(
|
||||||
const input_stream_uptr& vertex,
|
const input_stream_uptr& vertex,
|
||||||
const input_stream_uptr& fragment)
|
const input_stream_uptr& fragment)
|
||||||
|
|||||||
@@ -221,10 +221,10 @@ TEST_CASE("buffer_view") {
|
|||||||
REQUIRE(v5.data() == b2.data());
|
REQUIRE(v5.data() == b2.data());
|
||||||
REQUIRE(v5.size() == 20);
|
REQUIRE(v5.size() == 20);
|
||||||
|
|
||||||
str32 b3 = make_utf32("hello");
|
u32 b3[3] = {10, 20, 30};
|
||||||
buffer_view v6(b3);
|
buffer_view v6(b3);
|
||||||
REQUIRE(v6.data() == b3.data());
|
REQUIRE(v6.data() == &b3[0]);
|
||||||
REQUIRE(v6.size() == 20);
|
REQUIRE(v6.size() == 12);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
const char* s0 = "hell";
|
const char* s0 = "hell";
|
||||||
|
|||||||
Reference in New Issue
Block a user