mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-14 16:09:06 +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(
|
||||
str_view vertex_source,
|
||||
str_view fragment_source);
|
||||
|
||||
shader_ptr create_shader(
|
||||
buffer_view vertex_source,
|
||||
buffer_view fragment_source);
|
||||
|
||||
shader_ptr create_shader(
|
||||
const input_stream_uptr& vertex_stream,
|
||||
|
||||
@@ -19,17 +19,10 @@ namespace e2d
|
||||
: f_(std::move(f)) {}
|
||||
|
||||
~defer_impl() noexcept(std::is_nothrow_invocable_v<F>) {
|
||||
if ( !cancelled_ ) {
|
||||
f_();
|
||||
}
|
||||
}
|
||||
|
||||
void cancel() noexcept {
|
||||
cancelled_ = true;
|
||||
f_();
|
||||
}
|
||||
private:
|
||||
F f_;
|
||||
bool cancelled_{false};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -180,6 +180,14 @@ namespace e2d
|
||||
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(
|
||||
const input_stream_uptr& vertex_stream,
|
||||
const input_stream_uptr& fragment_stream)
|
||||
|
||||
@@ -531,6 +531,17 @@ namespace e2d
|
||||
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(
|
||||
const input_stream_uptr& vertex,
|
||||
const input_stream_uptr& fragment)
|
||||
|
||||
@@ -221,10 +221,10 @@ TEST_CASE("buffer_view") {
|
||||
REQUIRE(v5.data() == b2.data());
|
||||
REQUIRE(v5.size() == 20);
|
||||
|
||||
str32 b3 = make_utf32("hello");
|
||||
u32 b3[3] = {10, 20, 30};
|
||||
buffer_view v6(b3);
|
||||
REQUIRE(v6.data() == b3.data());
|
||||
REQUIRE(v6.size() == 20);
|
||||
REQUIRE(v6.data() == &b3[0]);
|
||||
REQUIRE(v6.size() == 12);
|
||||
}
|
||||
{
|
||||
const char* s0 = "hell";
|
||||
|
||||
Reference in New Issue
Block a user