Compare commits
No commits in common. "945a55f94a4ba32e4cd1f6f9a7f606f6af368921" and "a7cf267385d534fb99517ca425b04d5ed64ee4e5" have entirely different histories.
945a55f94a
...
a7cf267385
4
deps/ox/src/ox/mc/test/tests.cpp
vendored
4
deps/ox/src/ox/mc/test/tests.cpp
vendored
@ -316,7 +316,7 @@ std::map<ox::StringView, ox::Error(*)()> tests = {
|
|||||||
testIn.Union.Int = 93;
|
testIn.Union.Int = 93;
|
||||||
oxAssert(ox::writeMC(dataBuff.data(), dataBuff.size(), testIn), "Data generation failed");
|
oxAssert(ox::writeMC(dataBuff.data(), dataBuff.size(), testIn), "Data generation failed");
|
||||||
ox::TypeStore typeStore;
|
ox::TypeStore typeStore;
|
||||||
const auto [type, typeErr] = ox::buildTypeDef(typeStore, testIn);
|
const auto [type, typeErr] = ox::buildTypeDef(&typeStore, &testIn);
|
||||||
oxAssert(typeErr, "Descriptor write failed");
|
oxAssert(typeErr, "Descriptor write failed");
|
||||||
ox::ModelObject testOut;
|
ox::ModelObject testOut;
|
||||||
oxReturnError(testOut.setType(type));
|
oxReturnError(testOut.setType(type));
|
||||||
@ -368,7 +368,7 @@ std::map<ox::StringView, ox::Error(*)()> tests = {
|
|||||||
testIn.Struct.IString = "Test String 2";
|
testIn.Struct.IString = "Test String 2";
|
||||||
oxAssert(ox::writeMC(dataBuff, dataBuffLen, testIn), "Data generation failed");
|
oxAssert(ox::writeMC(dataBuff, dataBuffLen, testIn), "Data generation failed");
|
||||||
ox::TypeStore typeStore;
|
ox::TypeStore typeStore;
|
||||||
const auto [type, typeErr] = ox::buildTypeDef(typeStore, testIn);
|
const auto [type, typeErr] = ox::buildTypeDef(&typeStore, &testIn);
|
||||||
oxAssert(typeErr, "Descriptor write failed");
|
oxAssert(typeErr, "Descriptor write failed");
|
||||||
ox::BufferReader br({dataBuff, dataBuffLen});
|
ox::BufferReader br({dataBuff, dataBuffLen});
|
||||||
oxReturnError(ox::walkModel<ox::MetalClawReader>(type, br,
|
oxReturnError(ox::walkModel<ox::MetalClawReader>(type, br,
|
||||||
|
10
deps/ox/src/ox/model/descwrite.hpp
vendored
10
deps/ox/src/ox/model/descwrite.hpp
vendored
@ -357,8 +357,8 @@ constexpr const DescriptorType *TypeDescWriter::getType(StringViewCR tn, int typ
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
constexpr Result<DescriptorType*> buildTypeDef(TypeStore &typeStore) noexcept {
|
constexpr Result<DescriptorType*> buildTypeDef(TypeStore *typeStore) noexcept {
|
||||||
TypeDescWriter writer(&typeStore);
|
TypeDescWriter writer(typeStore);
|
||||||
ModelHandlerInterface<TypeDescWriter, ox::OpType::Reflect> handler(&writer);
|
ModelHandlerInterface<TypeDescWriter, ox::OpType::Reflect> handler(&writer);
|
||||||
if (std::is_constant_evaluated()) {
|
if (std::is_constant_evaluated()) {
|
||||||
std::allocator<T> a;
|
std::allocator<T> a;
|
||||||
@ -373,10 +373,10 @@ constexpr Result<DescriptorType*> buildTypeDef(TypeStore &typeStore) noexcept {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
constexpr Result<DescriptorType*> buildTypeDef(TypeStore &typeStore, T &val) noexcept {
|
constexpr Result<DescriptorType*> buildTypeDef(TypeStore *typeStore, T *val) noexcept {
|
||||||
TypeDescWriter writer(&typeStore);
|
TypeDescWriter writer(typeStore);
|
||||||
ModelHandlerInterface<TypeDescWriter, ox::OpType::Reflect> handler(&writer);
|
ModelHandlerInterface<TypeDescWriter, ox::OpType::Reflect> handler(&writer);
|
||||||
oxReturnError(model(&handler, &val));
|
oxReturnError(model(&handler, val));
|
||||||
return writer.definition();
|
return writer.definition();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
deps/ox/src/ox/oc/test/tests.cpp
vendored
4
deps/ox/src/ox/oc/test/tests.cpp
vendored
@ -207,7 +207,7 @@ const std::map<ox::StringView, ox::Error(*)()> tests = {
|
|||||||
testIn.Union.Int = 93;
|
testIn.Union.Int = 93;
|
||||||
oxAssert(ox::writeOC(testIn).moveTo(dataBuff), "Data generation failed");
|
oxAssert(ox::writeOC(testIn).moveTo(dataBuff), "Data generation failed");
|
||||||
ox::TypeStore typeStore;
|
ox::TypeStore typeStore;
|
||||||
auto type = ox::buildTypeDef(typeStore, testIn);
|
auto type = ox::buildTypeDef(&typeStore, &testIn);
|
||||||
oxAssert(type.error, "Descriptor write failed");
|
oxAssert(type.error, "Descriptor write failed");
|
||||||
ox::ModelObject testOut;
|
ox::ModelObject testOut;
|
||||||
oxReturnError(testOut.setType(type.value));
|
oxReturnError(testOut.setType(type.value));
|
||||||
@ -257,7 +257,7 @@ const std::map<ox::StringView, ox::Error(*)()> tests = {
|
|||||||
auto [oc, ocErr] = ox::writeOC(testIn);
|
auto [oc, ocErr] = ox::writeOC(testIn);
|
||||||
oxAssert(ocErr, "Data generation failed");
|
oxAssert(ocErr, "Data generation failed");
|
||||||
ox::TypeStore typeStore;
|
ox::TypeStore typeStore;
|
||||||
auto type = ox::buildTypeDef(typeStore, testIn);
|
auto type = ox::buildTypeDef(&typeStore, &testIn);
|
||||||
oxAssert(type.error, "Descriptor write failed");
|
oxAssert(type.error, "Descriptor write failed");
|
||||||
oxReturnError(ox::walkModel<ox::OrganicClawReader>(type.value, oc.data(), oc.size(),
|
oxReturnError(ox::walkModel<ox::OrganicClawReader>(type.value, oc.data(), oc.size(),
|
||||||
[](const ox::Vector<ox::FieldName>&, const ox::Vector<ox::String>&, const ox::DescriptorField &f,
|
[](const ox::Vector<ox::FieldName>&, const ox::Vector<ox::String>&, const ox::DescriptorField &f,
|
||||||
|
@ -239,13 +239,9 @@ void PaletteEditorImGui::drawColorEditor() noexcept {
|
|||||||
name = currentName;
|
name = currentName;
|
||||||
ImGui::InputText("Name", name.data(), name.cap() + 1);
|
ImGui::InputText("Name", name.data(), name.cap() + 1);
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
bool inputFocused = false;
|
|
||||||
ImGui::InputInt("Red", &r, 1, 5);
|
ImGui::InputInt("Red", &r, 1, 5);
|
||||||
inputFocused |= ImGui::IsItemFocused();
|
|
||||||
ImGui::InputInt("Green", &g, 1, 5);
|
ImGui::InputInt("Green", &g, 1, 5);
|
||||||
inputFocused |= ImGui::IsItemFocused();
|
|
||||||
ImGui::InputInt("Blue", &b, 1, 5);
|
ImGui::InputInt("Blue", &b, 1, 5);
|
||||||
inputFocused |= ImGui::IsItemFocused();
|
|
||||||
if (ig::PushButton("Apply to all pages", {-1, ig::BtnSz.y})) {
|
if (ig::PushButton("Apply to all pages", {-1, ig::BtnSz.y})) {
|
||||||
std::ignore = pushCommand<ApplyColorAllPagesCommand>(
|
std::ignore = pushCommand<ApplyColorAllPagesCommand>(
|
||||||
m_pal, m_page, m_selectedColorRow);
|
m_pal, m_page, m_selectedColorRow);
|
||||||
@ -253,17 +249,6 @@ void PaletteEditorImGui::drawColorEditor() noexcept {
|
|||||||
r = ox::max(r, 0);
|
r = ox::max(r, 0);
|
||||||
g = ox::max(g, 0);
|
g = ox::max(g, 0);
|
||||||
b = ox::max(b, 0);
|
b = ox::max(b, 0);
|
||||||
if (!inputFocused) {
|
|
||||||
for (auto i = 0u; i < ox::min<size_t>(10, largestPage(m_pal)); ++i) {
|
|
||||||
auto const key = static_cast<ImGuiKey>(ImGuiKey_1 + i);
|
|
||||||
if (ImGui::IsKeyPressed(key, false)) {
|
|
||||||
m_selectedColorRow = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ImGui::GetIO().KeysDown[ImGuiKey_0]) {
|
|
||||||
m_selectedColorRow = ox::min<size_t>(9, largestPage(m_pal));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
auto const newColor = color16(r, g, b, a);
|
auto const newColor = color16(r, g, b, a);
|
||||||
if (c != newColor) {
|
if (c != newColor) {
|
||||||
std::ignore = pushCommand<UpdateColorCommand>(m_pal, m_page, m_selectedColorRow, newColor);
|
std::ignore = pushCommand<UpdateColorCommand>(m_pal, m_page, m_selectedColorRow, newColor);
|
||||||
|
@ -15,7 +15,7 @@ using TypeDescGenerator = ox::Error(*)(ox::TypeStore&);
|
|||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
ox::Error generateTypeDesc(ox::TypeStore &ts) noexcept {
|
ox::Error generateTypeDesc(ox::TypeStore &ts) noexcept {
|
||||||
return ox::buildTypeDef<T>(ts).error;
|
return ox::buildTypeDef<T>(&ts).error;
|
||||||
}
|
}
|
||||||
|
|
||||||
class Module {
|
class Module {
|
||||||
|
@ -131,15 +131,12 @@ class Project {
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
ox::Error Project::writeObj(ox::StringViewCR path, T const&obj, ox::ClawFormat fmt) noexcept {
|
ox::Error Project::writeObj(ox::StringViewCR path, T const&obj, ox::ClawFormat fmt) noexcept {
|
||||||
oxRequireM(buff, ox::writeClaw(obj, fmt));
|
oxRequireM(buff, ox::writeClaw(obj, fmt));
|
||||||
if (fmt == ox::ClawFormat::Organic) {
|
|
||||||
buff.pop_back();
|
|
||||||
}
|
|
||||||
// write to FS
|
// write to FS
|
||||||
oxReturnError(mkdir(parentDir(path)));
|
oxReturnError(mkdir(parentDir(path)));
|
||||||
oxReturnError(writeBuff(path, buff));
|
oxReturnError(writeBuff(path, ox::BufferView{buff} + (fmt == ox::ClawFormat::Organic)));
|
||||||
// write type descriptor
|
// write type descriptor
|
||||||
if (m_typeStore.get<T>().error) {
|
if (m_typeStore.get<T>().error) {
|
||||||
oxReturnError(ox::buildTypeDef(m_typeStore, obj));
|
oxReturnError(ox::buildTypeDef(&m_typeStore, &obj));
|
||||||
}
|
}
|
||||||
oxRequire(desc, m_typeStore.get<T>());
|
oxRequire(desc, m_typeStore.get<T>());
|
||||||
auto const descPath = ox::sfmt("{}/{}", m_typeDescPath, buildTypeId(*desc));
|
auto const descPath = ox::sfmt("{}/{}", m_typeDescPath, buildTypeId(*desc));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user