remove cancel from defer, add buffer_view overload for create_shader function

This commit is contained in:
BlackMATov
2019-12-26 07:28:54 +07:00
parent aff8bf4774
commit 0c20db62b5
5 changed files with 27 additions and 11 deletions

View File

@@ -907,6 +907,10 @@ namespace e2d
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,
const input_stream_uptr& fragment_stream);

View File

@@ -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};
};
}

View File

@@ -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)

View File

@@ -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)

View File

@@ -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";