Merge commit '4e94c925686cdda4b1ac777045dd7a17c7dc0329'
All checks were successful
Build / build (push) Successful in 1m38s

This commit is contained in:
Gary Talent 2025-02-20 20:11:03 -06:00
commit a2e41e6527
28 changed files with 269 additions and 47 deletions

View File

@ -1,6 +1,7 @@
# module dir list # module dir list
add_subdirectory(gfx) add_subdirectory(gfx)
add_subdirectory(sound)
add_subdirectory(scene) add_subdirectory(scene)
# module libraries # module libraries
@ -13,7 +14,7 @@ add_library(
target_link_libraries( target_link_libraries(
NostalgiaKeelModules PUBLIC NostalgiaKeelModules PUBLIC
Keel Keel
NostalgiaCore-Keel NostalgiaGfx-Keel
NostalgiaScene-Keel NostalgiaScene-Keel
) )
install( install(
@ -32,7 +33,8 @@ if(NOSTALGIA_BUILD_STUDIO)
target_link_libraries( target_link_libraries(
NostalgiaStudioModules PUBLIC NostalgiaStudioModules PUBLIC
StudioAppLib StudioAppLib
NostalgiaCore-Studio-ImGui NostalgiaGfx-Studio-ImGui
NostalgiaSound-Studio-ImGui
NostalgiaScene-Studio NostalgiaScene-Studio
) )
install( install(

View File

@ -449,7 +449,7 @@ TileSheet::SubSheet &getSubSheet(
std::size_t idxIt, std::size_t idxIt,
TileSheet::SubSheet &pSubsheet) noexcept; TileSheet::SubSheet &pSubsheet) noexcept;
#if defined(__GNUC__) && __GNUC__ >= 14 #if defined(__GNUC__) && __GNUC__ >= 13
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdangling-reference" #pragma GCC diagnostic ignored "-Wdangling-reference"
#endif #endif
@ -458,7 +458,7 @@ TileSheet::SubSheet const&getSubSheet(TileSheet const&ts, ox::SpanView<uint32_t>
[[nodiscard]] [[nodiscard]]
TileSheet::SubSheet &getSubSheet(TileSheet &ts, ox::SpanView<uint32_t> const &idx) noexcept; TileSheet::SubSheet &getSubSheet(TileSheet &ts, ox::SpanView<uint32_t> const &idx) noexcept;
#if defined(__GNUC__) && __GNUC__ >= 14 #if defined(__GNUC__) && __GNUC__ >= 13
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
#endif #endif

View File

@ -1,5 +1,5 @@
add_library( add_library(
NostalgiaCore NostalgiaGfx
gfx.cpp gfx.cpp
tilesheet.cpp tilesheet.cpp
) )
@ -10,12 +10,12 @@ if(NOT BUILDCORE_TARGET STREQUAL "gba")
endif() endif()
target_include_directories( target_include_directories(
NostalgiaCore PUBLIC NostalgiaGfx PUBLIC
../include ../include
) )
target_link_libraries( target_link_libraries(
NostalgiaCore PUBLIC NostalgiaGfx PUBLIC
Turbine Turbine
) )
@ -26,7 +26,7 @@ endif()
install( install(
TARGETS TARGETS
NostalgiaCore NostalgiaGfx
DESTINATION DESTINATION
LIBRARY DESTINATION lib LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib ARCHIVE DESTINATION lib

View File

@ -1,15 +1,15 @@
add_library( add_library(
NostalgiaCore-GBA OBJECT NostalgiaGfx-GBA OBJECT
context.cpp context.cpp
gfx.cpp gfx.cpp
panic.cpp panic.cpp
) )
target_include_directories( target_include_directories(
NostalgiaCore-GBA PUBLIC NostalgiaGfx-GBA PUBLIC
../../include ../../include
) )
target_link_libraries( target_link_libraries(
NostalgiaCore-GBA PUBLIC NostalgiaGfx-GBA PUBLIC
TeaGBA TeaGBA
Keel Keel
Turbine Turbine
@ -17,5 +17,5 @@ target_link_libraries(
if(BUILDCORE_TARGET STREQUAL "gba") if(BUILDCORE_TARGET STREQUAL "gba")
set_source_files_properties(gfx.cpp PROPERTIES COMPILE_FLAGS -marm) set_source_files_properties(gfx.cpp PROPERTIES COMPILE_FLAGS -marm)
target_link_libraries(NostalgiaCore PUBLIC NostalgiaCore-GBA) target_link_libraries(NostalgiaGfx PUBLIC NostalgiaGfx-GBA)
endif() endif()

View File

@ -1,18 +1,18 @@
add_library( add_library(
NostalgiaCore-Keel NostalgiaGfx-Keel
keelmodule.cpp keelmodule.cpp
typeconv.cpp typeconv.cpp
) )
target_link_libraries( target_link_libraries(
NostalgiaCore-Keel PUBLIC NostalgiaGfx-Keel PUBLIC
Keel Keel
NostalgiaCore NostalgiaGfx
) )
install( install(
TARGETS TARGETS
NostalgiaCore-Keel NostalgiaGfx-Keel
DESTINATION DESTINATION
LIBRARY DESTINATION lib LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib ARCHIVE DESTINATION lib

View File

@ -1,9 +1,9 @@
target_sources( target_sources(
NostalgiaCore PRIVATE NostalgiaGfx PRIVATE
context.cpp context.cpp
gfx.cpp gfx.cpp
) )
target_link_libraries( target_link_libraries(
NostalgiaCore PUBLIC NostalgiaGfx PUBLIC
GlUtils GlUtils
) )

View File

@ -1,25 +1,25 @@
add_library(NostalgiaCore-Studio) add_library(NostalgiaGfx-Studio)
add_library( add_library(
NostalgiaCore-Studio-ImGui NostalgiaGfx-Studio-ImGui
studiomodule.cpp studiomodule.cpp
) )
target_link_libraries( target_link_libraries(
NostalgiaCore-Studio PUBLIC NostalgiaGfx-Studio PUBLIC
NostalgiaCore NostalgiaGfx
Studio Studio
) )
target_link_libraries( target_link_libraries(
NostalgiaCore-Studio-ImGui PUBLIC NostalgiaGfx-Studio-ImGui PUBLIC
NostalgiaCore-Studio NostalgiaGfx-Studio
) )
install( install(
TARGETS TARGETS
NostalgiaCore-Studio-ImGui NostalgiaGfx-Studio-ImGui
NostalgiaCore-Studio NostalgiaGfx-Studio
LIBRARY DESTINATION LIBRARY DESTINATION
${NOSTALGIA_DIST_MODULE} ${NOSTALGIA_DIST_MODULE}
) )

View File

@ -1,5 +1,5 @@
target_sources( target_sources(
NostalgiaCore-Studio-ImGui PRIVATE NostalgiaGfx-Studio-ImGui PRIVATE
paletteeditor-imgui.cpp paletteeditor-imgui.cpp
) )

View File

@ -1,6 +1,6 @@
target_sources( target_sources(
NostalgiaCore-Studio PRIVATE NostalgiaGfx-Studio PRIVATE
addcolorcommand.cpp addcolorcommand.cpp
addpagecommand.cpp addpagecommand.cpp
applycolorallpagescommand.cpp applycolorallpagescommand.cpp

View File

@ -1,5 +1,5 @@
target_sources( target_sources(
NostalgiaCore-Studio PRIVATE NostalgiaGfx-Studio PRIVATE
tilesheeteditorview.cpp tilesheeteditorview.cpp
tilesheeteditormodel.cpp tilesheeteditormodel.cpp
tilesheetpixelgrid.cpp tilesheetpixelgrid.cpp
@ -7,12 +7,12 @@ target_sources(
) )
target_sources( target_sources(
NostalgiaCore-Studio-ImGui PRIVATE NostalgiaGfx-Studio-ImGui PRIVATE
tilesheeteditor-imgui.cpp tilesheeteditor-imgui.cpp
) )
target_link_libraries( target_link_libraries(
NostalgiaCore-Studio-ImGui PUBLIC NostalgiaGfx-Studio-ImGui PUBLIC
lodepng lodepng
) )

View File

@ -1,5 +1,5 @@
target_sources( target_sources(
NostalgiaCore-Studio PRIVATE NostalgiaGfx-Studio PRIVATE
addsubsheetcommand.cpp addsubsheetcommand.cpp
cutpastecommand.cpp cutpastecommand.cpp
deletetilescommand.cpp deletetilescommand.cpp

View File

@ -18,14 +18,13 @@
#include "commands/drawcommand.hpp" #include "commands/drawcommand.hpp"
#include "commands/flipcommand.hpp" #include "commands/flipcommand.hpp"
#include "commands/inserttilescommand.hpp" #include "commands/inserttilescommand.hpp"
#include "commands/movesubsheetcommand.hpp"
#include "commands/palettechangecommand.hpp" #include "commands/palettechangecommand.hpp"
#include "commands/rmsubsheetcommand.hpp" #include "commands/rmsubsheetcommand.hpp"
#include "commands/rotatecommand.hpp"
#include "commands/updatesubsheetcommand.hpp" #include "commands/updatesubsheetcommand.hpp"
#include "tilesheeteditormodel.hpp" #include "tilesheeteditormodel.hpp"
#include "commands/movesubsheetcommand.hpp"
#include "commands/rotatecommand.hpp"
namespace nostalgia::gfx { namespace nostalgia::gfx {
// delete pixels of all non-leaf nodes // delete pixels of all non-leaf nodes

View File

@ -187,7 +187,7 @@ TileSheet::SubSheetIdx validateSubSheetIdx(TileSheet const&ts, TileSheet::SubShe
return validateSubSheetIdx(std::move(idx), 0, ts.subsheet); return validateSubSheetIdx(std::move(idx), 0, ts.subsheet);
} }
#if defined(__GNUC__) && __GNUC__ >= 14 #if defined(__GNUC__) && __GNUC__ >= 13
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdangling-reference" #pragma GCC diagnostic ignored "-Wdangling-reference"
#endif #endif
@ -204,7 +204,7 @@ static TileSheet::SubSheet const&getSubSheet(
} }
return getSubSheet(idx, idxIt + 1, pSubsheet.subsheets[currentIdx]); return getSubSheet(idx, idxIt + 1, pSubsheet.subsheets[currentIdx]);
} }
#if defined(__GNUC__) && __GNUC__ >= 14 #if defined(__GNUC__) && __GNUC__ >= 13
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
#endif #endif
@ -218,7 +218,7 @@ TileSheet::SubSheet &getSubSheet(
return getSubSheet(idx, idxIt + 1, pSubsheet.subsheets[idx[idxIt]]); return getSubSheet(idx, idxIt + 1, pSubsheet.subsheets[idx[idxIt]]);
} }
#if defined(__GNUC__) && __GNUC__ >= 14 #if defined(__GNUC__) && __GNUC__ >= 13
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdangling-reference" #pragma GCC diagnostic ignored "-Wdangling-reference"
#endif #endif
@ -229,7 +229,7 @@ TileSheet::SubSheet const&getSubSheet(TileSheet const &ts, ox::SpanView<uint32_t
TileSheet::SubSheet &getSubSheet(TileSheet &ts, ox::SpanView<uint32_t> const &idx) noexcept { TileSheet::SubSheet &getSubSheet(TileSheet &ts, ox::SpanView<uint32_t> const &idx) noexcept {
return gfx::getSubSheet(idx, 0, ts.subsheet); return gfx::getSubSheet(idx, 0, ts.subsheet);
} }
#if defined(__GNUC__) && __GNUC__ >= 14 #if defined(__GNUC__) && __GNUC__ >= 13
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
#endif #endif

View File

@ -1,11 +1,11 @@
add_executable( add_executable(
NostalgiaCoreTest NostalgiaGfxTest
tests.cpp tests.cpp
) )
target_link_libraries( target_link_libraries(
NostalgiaCoreTest NostalgiaGfxTest
NostalgiaCore NostalgiaGfx
) )
add_test("[NostalgiaCore] readWriteTileSheet" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/NostalgiaCoreTest readWriteTileSheet) add_test("[NostalgiaGfx] readWriteTileSheet" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/NostalgiaGfxTest readWriteTileSheet)

View File

@ -12,7 +12,7 @@ target_include_directories(
target_link_libraries( target_link_libraries(
NostalgiaScene PUBLIC NostalgiaScene PUBLIC
NostalgiaCore NostalgiaGfx
) )
add_subdirectory(keel) add_subdirectory(keel)

View File

@ -0,0 +1,12 @@
add_subdirectory(src)
if(NOT BUILDCORE_TARGET STREQUAL "gba")
add_subdirectory(test)
endif()
install(
DIRECTORY
include/nostalgia
DESTINATION
include
)

View File

@ -0,0 +1,8 @@
/*
* Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#pragma once
namespace nostalgia::sound {
}

View File

@ -0,0 +1,27 @@
add_library(
NostalgiaSound
sound.cpp
)
target_include_directories(
NostalgiaSound PUBLIC
../include
)
target_link_libraries(
NostalgiaSound PUBLIC
Turbine
)
add_subdirectory(keel)
if(NOSTALGIA_BUILD_STUDIO)
add_subdirectory(studio)
endif()
install(
TARGETS
NostalgiaSound
DESTINATION
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)

View File

@ -0,0 +1,19 @@
add_library(
NostalgiaSound-Keel
keelmodule.cpp
typeconv.cpp
)
target_link_libraries(
NostalgiaSound-Keel PUBLIC
Keel
NostalgiaSound
)
install(
TARGETS
NostalgiaSound-Keel
DESTINATION
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)

View File

@ -0,0 +1,46 @@
/*
* Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#include <ox/model/model.hpp>
#include <keel/module.hpp>
#include "typeconv.hpp"
namespace nostalgia::sound {
static class: public keel::Module {
private:
public:
[[nodiscard]]
ox::String id() const noexcept override {
return ox::String{"net.drinkingtea.nostalgia.sound"};
}
[[nodiscard]]
ox::Vector<keel::TypeDescGenerator> types() const noexcept final {
return {
};
}
[[nodiscard]]
ox::Vector<keel::BaseConverter const*> converters() const noexcept final {
return {
};
}
[[nodiscard]]
ox::Vector<keel::PackTransform> packTransforms() const noexcept final {
return {
};
}
} const mod;
keel::Module const*keelModule() noexcept {
return &mod;
}
}

View File

@ -0,0 +1,9 @@
/*
* Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#include "typeconv.hpp"
namespace nostalgia::sound {
}

View File

@ -0,0 +1,15 @@
/*
* Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#pragma once
#include <ox/std/def.hpp>
#include <keel/typeconv.hpp>
namespace nostalgia::sound {
// Type converters
}

View File

@ -0,0 +1,6 @@
/*
* Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
namespace nostalgia::sound {
}

View File

@ -0,0 +1,17 @@
add_library(
NostalgiaSound-Studio-ImGui
studiomodule.cpp
)
target_link_libraries(
NostalgiaSound-Studio-ImGui PUBLIC
NostalgiaSound
Studio
)
install(
TARGETS
NostalgiaSound-Studio-ImGui
LIBRARY DESTINATION
${NOSTALGIA_DIST_MODULE}
)

View File

@ -0,0 +1,27 @@
/*
* Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#include <ox/std/memory.hpp>
#include <studio/studio.hpp>
namespace nostalgia::gfx {
static class: public studio::Module {
ox::Vector<studio::EditorMaker> editors(studio::StudioContext&) const noexcept final {
return {
};
}
ox::Vector<ox::UPtr<studio::ItemMaker>> itemMakers(studio::StudioContext&) const noexcept final {
ox::Vector<ox::UniquePtr<studio::ItemMaker>> out;
return out;
}
} const mod;
const studio::Module *studioModule() noexcept {
return &mod;
}
}

View File

@ -0,0 +1,10 @@
add_executable(
NostalgiaSoundTest
tests.cpp
)
target_link_libraries(
NostalgiaSoundTest
NostalgiaSound
)

View File

@ -0,0 +1,26 @@
/*
* Copyright 2016 - 2025 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#undef NDEBUG
#include <map>
#include <ox/std/error.hpp>
#include <ox/mc/mc.hpp>
static std::map<ox::StringView, ox::Error(*)()> tests = {
};
int main(int argc, const char **argv) {
int retval = -1;
if (argc > 0) {
auto const args = ox::Span{argv, static_cast<size_t>(argc)};
auto const testName = ox::StringView(args[1]);
if (tests.find(testName) != tests.end()) {
retval = static_cast<int>(tests[testName]());
} else {
retval = 1;
}
}
return retval;
}

View File

@ -147,9 +147,8 @@ static void sceneKeyEventHandler(turbine::Context &tctx, turbine::Key key, bool
[[maybe_unused]] [[maybe_unused]]
static ox::Error runScene(turbine::Context &tctx) { static ox::Error runScene(turbine::Context &tctx) {
constexpr ox::StringView SceneAddr{"/Scenes/Chester.nscn"};
OX_REQUIRE_M(cctx, gfx::init(tctx)); OX_REQUIRE_M(cctx, gfx::init(tctx));
OX_REQUIRE(scn, keel::readObj<scene::SceneStatic>(keelCtx(tctx), SceneAddr)); OX_REQUIRE(scn, keel::readObj<scene::SceneStatic>(keelCtx(tctx), "/Scenes/Chester.nscn"));
turbine::setUpdateHandler(tctx, sceneUpdateHandler); turbine::setUpdateHandler(tctx, sceneUpdateHandler);
turbine::setKeyEventHandler(tctx, sceneKeyEventHandler); turbine::setKeyEventHandler(tctx, sceneKeyEventHandler);
scene::Scene const scene(*scn); scene::Scene const scene(*scn);
@ -163,7 +162,7 @@ ox::Error run(
[[maybe_unused]] ox::StringView projectDataDir, [[maybe_unused]] ox::StringView projectDataDir,
ox::SpanView<char const*> args) noexcept { ox::SpanView<char const*> args) noexcept {
if (args.size() < 2) { if (args.size() < 2) {
return ox::Error(1, "Please provide path to project directory or OxFS file."); return ox::Error{1, "Please provide path to project directory or OxFS file."};
} }
auto const path = args[1]; auto const path = args[1];
OX_REQUIRE_M(fs, keel::loadRomFs(path)); OX_REQUIRE_M(fs, keel::loadRomFs(path));