Music Notation
publish / publish (push) Successful in 15m32s

This commit is contained in:
khodowany
2026-09-15 01:30:19 -05:00
parent bb96aaf95d
commit fe159948bd
3 changed files with 19 additions and 0 deletions
+1
View File
@@ -56,6 +56,7 @@ public:
auto set_window_bounds(std::uint64_t id, luma::rect bounds) -> std::expected<void, modulus::error>; auto set_window_bounds(std::uint64_t id, luma::rect bounds) -> std::expected<void, modulus::error>;
auto set_window_visible(std::uint64_t id, std::bool_t visible) -> std::expected<void, modulus::error>; auto set_window_visible(std::uint64_t id, std::bool_t visible) -> std::expected<void, modulus::error>;
auto load_texture(std::string path) -> std::expected<std::shared_ptr<luma::texture>, modulus::error>; auto load_texture(std::string path) -> std::expected<std::shared_ptr<luma::texture>, modulus::error>;
auto load_texture_uncached(std::string path) -> std::expected<std::shared_ptr<luma::texture>, modulus::error>;
auto request_layout() -> std::expected<void, modulus::error>; auto request_layout() -> std::expected<void, modulus::error>;
auto set_root(std::expected<std::unique_ptr<luma::control>, modulus::error> root) -> std::expected<void, modulus::error>; auto set_root(std::expected<std::unique_ptr<luma::control>, modulus::error> root) -> std::expected<void, modulus::error>;
auto set_root(std::unique_ptr<luma::control> root) -> std::expected<void, modulus::error>; auto set_root(std::unique_ptr<luma::control> root) -> std::expected<void, modulus::error>;
+12
View File
@@ -985,6 +985,18 @@ auto luma::application::load_texture(std::string path) -> std::expected<std::sha
return core->assets->texture(path); }, false); return core->assets->texture(path); }, false);
} }
auto luma::application::load_texture_uncached(std::string path) -> std::expected<std::shared_ptr<luma::texture>, modulus::error> {
if (path.empty()) {
return luma::detail::fail<std::shared_ptr<luma::texture>>(luma::detail::error_invalid_argument, "texture path must not be empty");
}
auto core = core_snapshot();
return dispatch_to_ui<std::shared_ptr<luma::texture>>(core, [core, path = std::move(path)] {
if (!core->renderer_active.load(std::memory_order_acquire) || !core->resources) {
return unavailable<std::shared_ptr<luma::texture>>("texture loading requires an active renderer");
}
return core->resources->load_texture(path); }, false);
}
auto luma::application::request_layout() -> std::expected<void, modulus::error> { auto luma::application::request_layout() -> std::expected<void, modulus::error> {
auto core = core_snapshot(); auto core = core_snapshot();
return dispatch_to_ui<void>(core, [core] { return dispatch_to_ui<void>(core, [core] {
+6
View File
@@ -919,6 +919,12 @@ BOOST_AUTO_TEST_CASE(application_rejects_texture_load_without_renderer) {
auto texture = app.load_texture("missing.png"); auto texture = app.load_texture("missing.png");
BOOST_REQUIRE(!texture); BOOST_REQUIRE(!texture);
BOOST_TEST(texture.error().code() == 3); BOOST_TEST(texture.error().code() == 3);
auto uncached = app.load_texture_uncached("missing.png");
BOOST_REQUIRE(!uncached);
BOOST_TEST(uncached.error().code() == 3);
auto empty = app.load_texture_uncached("");
BOOST_REQUIRE(!empty);
BOOST_TEST(empty.error().code() == 1);
} }
BOOST_AUTO_TEST_CASE(application_show_toast_requires_root) { BOOST_AUTO_TEST_CASE(application_show_toast_requires_root) {