Squashed 'deps/nostalgia/' changes from 84205879..0c0ccd1a

0c0ccd1a [nostalgia/core/studio] Cleanup scratchpad code
1b629da8 [ox/std] Make Vector::contains always noexcept
32e4702d [ox] Improve hasing and MaybeView
6b47133c [nostalgia] Cleanup StudioModules
0764720f [nostalgia,olympic] Update for Ox changes
78955376 [glutils] Update for Ox changes
a00a0bd2 [ox] Rename BString to IString
ed4f0e1f [nostalgia,olympic] Replace oxIgnoreError with std::ignore
ea1feb72 [ox] Remove oxIgnoreError
e9a6a096 [ox] Run liccor
d7f30975 Merge commit 'c0baf7efca0e4c3a86a018ad2564d9df7b07c133'
eeb2a5a1 [olympic/studio] Add new ImGui util functions
453f2750 [nostalgia/core/studio] Cleanup context types
189ba4c5 [olympic/studio] Make studio::run static
05773808 [olympic] Change TypeId building to use constexpr globals
272eabc7 [nostalgia/core/opengl] Unbind vertex arrays when done with them
a0256669 [glutils] Remove trailing whitespace
6808adc8 [ox/std] Replace ox::ignore with std::ignore
abc076d6 [ox/std] Cleanup
1b790a34 [ox/std] Fix Signed_c and Unsigned_c
92202716 [nostalgia/core] Update pack transforms to use ModelTypeId_v
7941a514 [ox/model] Add constexpr ModelTypeId_v
0c09c530 [ox/std] Fix sfmt constexpr problems
3ff91af8 [ox/std] Sort of fix custom assert
79b42e1d [ox/std] Fix some Vector constexpr problems
5eec9085 [ox/std] Add nodiscard to some string functions
af7c8956 [ox/std] Add ox::ignore

git-subtree-dir: deps/nostalgia
git-subtree-split: 0c0ccd1a692169d99beb8c238b8b2c466e81a13d
This commit is contained in:
2024-04-24 23:10:33 -05:00
parent c0baf7efca
commit 22e6299e90
192 changed files with 1440 additions and 456 deletions

View File

@@ -117,7 +117,7 @@ class AssetRef: public ox::SignalHandler {
}
if (m_ctr) {
m_ctr->decRefs();
oxIgnoreError(m_ctr->updated.disconnectObject(this));
std::ignore = m_ctr->updated.disconnectObject(this);
}
m_ctr = h.m_ctr;
if (m_ctr) {
@@ -133,11 +133,11 @@ class AssetRef: public ox::SignalHandler {
}
if (m_ctr) {
m_ctr->decRefs();
oxIgnoreError(m_ctr->updated.disconnectObject(this));
std::ignore = m_ctr->updated.disconnectObject(this);
}
m_ctr = h.m_ctr;
if (m_ctr) {
oxIgnoreError(m_ctr->updated.disconnectObject(&h));
std::ignore = m_ctr->updated.disconnectObject(&h);
m_ctr->updated.connect(this, &AssetRef::emitUpdated);
}
h.m_ctr = nullptr;

View File

@@ -160,7 +160,7 @@ auto transformRule(keel::Context &ctx, ox::Buffer &buff) noexcept -> ox::Error {
oxRequire(hdr, readAssetHeader(buff));
const auto typeId = ox::buildTypeId(
hdr.clawHdr.typeName, hdr.clawHdr.typeVersion, hdr.clawHdr.typeParams);
if (typeId == ox::buildTypeId<From>()) {
if (typeId == ox::ModelTypeId_v<From>) {
oxReturnError(keel::convertBuffToBuff<To>(ctx, buff, fmt).moveTo(buff));
}
return {};

View File

@@ -11,7 +11,7 @@ ox::Error init(
ox::UPtr<ox::FileSystem> &&fs,
ox::CRStringView appName) noexcept {
ctx.appName = appName;
oxIgnoreError(setRomFs(ctx, std::move(fs)));
std::ignore = setRomFs(ctx, std::move(fs));
#ifndef OX_BARE_METAL
auto const&mods = modules();
for (auto &mod : mods) {

View File

@@ -56,7 +56,7 @@ static ox::Error runApp(
return err;
}
ox::Error run(
static ox::Error run(
ox::CRStringView appName,
ox::CRStringView projectDataDir,
int,

View File

@@ -28,7 +28,7 @@ class NewMenu: public studio::Popup {
private:
Stage m_stage = Stage::Closed;
ox::String m_typeName;
ox::BString<255> m_itemName;
ox::IString<255> m_itemName;
ox::Vector<ox::UniquePtr<studio::ItemMaker>> m_types;
int m_selectedType = 0;
bool m_open = false;

View File

@@ -28,7 +28,7 @@ class NewProject: public studio::Popup {
Stage m_stage = Stage::Closed;
ox::String const m_projectDataDir;
ox::String m_projectPath;
ox::BString<255> m_projectName;
ox::IString<255> m_projectName;
ox::Vector<ox::UniquePtr<studio::ItemMaker>> m_types;
bool m_open = false;

View File

@@ -417,10 +417,10 @@ ox::Error StudioUI::closeFile(ox::CRStringView path) noexcept {
if (!m_openFiles.contains(path)) {
return {};
}
oxIgnoreError(m_openFiles.erase(std::remove(m_openFiles.begin(), m_openFiles.end(), path)));
std::ignore = m_openFiles.erase(std::remove(m_openFiles.begin(), m_openFiles.end(), path));
// save to config
studio::editConfig<StudioConfig>(keelCtx(m_ctx), [&](StudioConfig *config) {
oxIgnoreError(config->openFiles.erase(std::remove(config->openFiles.begin(), config->openFiles.end(), path)));
std::ignore = config->openFiles.erase(std::remove(config->openFiles.begin(), config->openFiles.end(), path));
});
return {};
}

View File

@@ -8,6 +8,8 @@
#include <imgui.h>
#include <ox/std/bit.hpp>
#include <turbine/context.hpp>
#include <studio/context.hpp>
@@ -15,6 +17,91 @@ namespace studio::ig {
inline constexpr auto BtnSz = ImVec2{52, 22};
constexpr ImTextureID toImTextureID(ox::Unsigned_c auto id) noexcept
requires(sizeof(id) <= sizeof(ox::Uint<sizeof(ImTextureID)*8>)) {
return std::bit_cast<ImTextureID>(ox::Uint<sizeof(ImTextureID)*8>{id});
}
template<typename T>
ox::Result<T> getDragDropPayload(ox::CStringView name) noexcept {
auto const payload = ImGui::AcceptDragDropPayload(name.c_str());
if (!payload) {
return OxError(1, "No drag/drop payload");
}
return ox::readClaw<T>(
reinterpret_cast<char const*>(payload->Data),
static_cast<size_t>(payload->DataSize));
}
ox::Error setDragDropPayload(ox::CStringView name, auto const &obj) noexcept {
oxRequire(buff, ox::writeClaw(obj, ox::ClawFormat::Metal));
ImGui::SetDragDropPayload(name.c_str(), buff.data(), buff.size());
return {};
}
class DragDropSource {
private:
bool const m_active{};
public:
inline DragDropSource() noexcept:
m_active(ImGui::BeginDragDropSource()) {
}
inline ~DragDropSource() noexcept {
if (m_active) {
ImGui::EndDragDropSource();
}
}
constexpr operator bool() const noexcept {
return m_active;
}
};
inline auto dragDropSource(auto const&cb) noexcept {
if constexpr(ox::is_same_v<decltype(cb()), ox::Error>) {
if (ig::DragDropSource const tgt; tgt) [[unlikely]] {
return cb();
}
} else {
if (ig::DragDropSource const tgt; tgt) [[unlikely]] {
cb();
}
}
}
class DragDropTarget {
private:
bool const m_active{};
public:
inline DragDropTarget() noexcept:
m_active(ImGui::BeginDragDropTarget()) {
}
inline ~DragDropTarget() noexcept {
if (m_active) {
ImGui::EndDragDropTarget();
}
}
constexpr operator bool() const noexcept {
return m_active;
}
};
inline auto dragDropTarget(auto const&cb) noexcept {
if constexpr(ox::is_same_v<decltype(cb()), ox::Error>) {
if (ig::DragDropTarget const tgt; tgt) [[unlikely]] {
return cb();
}
return ox::Error{};
} else {
if (ig::DragDropTarget const tgt; tgt) [[unlikely]] {
cb();
}
}
}
class ChildStackItem {
public:
explicit ChildStackItem(ox::CStringView id, ImVec2 const&sz = {}) noexcept;

View File

@@ -24,7 +24,7 @@ static ox::Result<ox::String> toResult(nfdresult_t r, NFD::UniquePathN const&pat
ox::String out;
for (auto i = 0u; path.get()[i]; ++i) {
auto const c = static_cast<char>(path.get()[i]);
oxIgnoreError(out.append(&c, 1));
std::ignore = out.append(&c, 1);
}
return out;
}

View File

@@ -9,13 +9,13 @@
namespace studio {
void TaskRunner::update(turbine::Context &ctx) noexcept {
oxIgnoreError(m_tasks.erase(std::remove_if(m_tasks.begin(), m_tasks.end(), [&](ox::UPtr<studio::Task> &t) {
std::ignore = m_tasks.erase(std::remove_if(m_tasks.begin(), m_tasks.end(), [&](ox::UPtr<studio::Task> &t) {
auto const done = t->update(ctx) == TaskState::Done;
if (done) {
t->finished.emit();
}
return done;
})));
}));
}
void TaskRunner::add(Task &task) noexcept {

View File

@@ -12,7 +12,7 @@ bool UndoCommand::mergeWith(UndoCommand const*) noexcept {
void UndoStack::push(ox::UPtr<UndoCommand> &&cmd) noexcept {
for (auto const i = m_stackIdx; i < m_stack.size();) {
oxIgnoreError(m_stack.erase(i));
std::ignore = m_stack.erase(i);
}
cmd->redo();
redoTriggered.emit(cmd.get());

View File

@@ -22,7 +22,7 @@ void addDrawer(Context &ctx, Drawer *cd) noexcept {
void removeDrawer(Context &ctx, Drawer *cd) noexcept {
for (auto i = 0u; i < ctx.drawers.size(); ++i) {
if (ctx.drawers[i] == cd) {
oxIgnoreError(ctx.drawers.erase(i));
std::ignore = ctx.drawers.erase(i);
break;
}
}