update yaze_py module and py ext sample
This commit is contained in:
@@ -6,6 +6,20 @@ find_package(Boost COMPONENTS python3 REQUIRED)
|
||||
add_library(
|
||||
yaze_py MODULE
|
||||
py/yaze_py.cc
|
||||
yaze.cc
|
||||
app/rom.cc
|
||||
app/core/common.cc
|
||||
app/core/labeling.cc
|
||||
app/zelda3/overworld/overworld_map.cc
|
||||
app/zelda3/overworld/overworld.cc
|
||||
app/zelda3/sprite/sprite.cc
|
||||
app/editor/utils/gfx_context.cc
|
||||
${YAZE_APP_GFX_SRC}
|
||||
${IMGUI_PATH}/imgui.cpp
|
||||
${IMGUI_PATH}/imgui_demo.cpp
|
||||
${IMGUI_PATH}/imgui_draw.cpp
|
||||
${IMGUI_PATH}/imgui_widgets.cpp
|
||||
${IMGUI_PATH}/misc/cpp/imgui_stdlib.cpp
|
||||
)
|
||||
|
||||
if (APPLE)
|
||||
@@ -19,6 +33,7 @@ target_include_directories(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/
|
||||
lib/
|
||||
app/
|
||||
${SDL_INCLUDE_DIR}
|
||||
${PYTHON_HEADERS}
|
||||
${Boost_INCLUDE_DIRS}
|
||||
${PYTHON_INCLUDE_DIRS}
|
||||
@@ -26,6 +41,11 @@ target_include_directories(
|
||||
|
||||
target_link_libraries(
|
||||
yaze_py PUBLIC
|
||||
${SDL_TARGETS}
|
||||
${ABSL_TARGETS}
|
||||
${PYTHON_LIBRARIES}
|
||||
${PNG_LIBRARIES}
|
||||
Boost::python3
|
||||
ImGui
|
||||
ImGuiTestEngine
|
||||
)
|
||||
@@ -1,10 +1,12 @@
|
||||
#include <boost/python.hpp>
|
||||
|
||||
#include "base/overworld.h"
|
||||
#include "base/snes_color.h"
|
||||
#include "base/sprite.h"
|
||||
#include "ext/extension.h"
|
||||
#include "yaze.h"
|
||||
|
||||
BOOST_PYTHON_MODULE(yaze) {
|
||||
BOOST_PYTHON_MODULE(yaze_py) {
|
||||
using namespace boost::python;
|
||||
|
||||
class_<z3_rom>("z3_rom")
|
||||
@@ -31,4 +33,35 @@ BOOST_PYTHON_MODULE(yaze) {
|
||||
.def_readonly("name", &z3_sprite::name)
|
||||
.def_readonly("id", &z3_sprite::id)
|
||||
.def_readonly("actions", &z3_sprite::actions);
|
||||
}
|
||||
|
||||
class_<yaze_flags>("yaze_flags")
|
||||
.def_readwrite("debug", &yaze_flags::debug)
|
||||
.def_readwrite("rom_filename", &yaze_flags::rom_filename)
|
||||
.def_readwrite("rom", &yaze_flags::rom);
|
||||
|
||||
class_<yaze_project>("yaze_project")
|
||||
.def_readonly("filename", &yaze_project::filename)
|
||||
.def_readonly("rom", &yaze_project::rom)
|
||||
.def_readonly("overworld", &yaze_project::overworld);
|
||||
|
||||
class_<yaze_editor_context>("yaze_editor_context")
|
||||
.def_readonly("project", &yaze_editor_context::project);
|
||||
|
||||
enum_<yaze_event_type>("yaze_event_type")
|
||||
.value("YAZE_EVENT_ROM_LOADED", YAZE_EVENT_ROM_LOADED)
|
||||
.value("YAZE_EVENT_ROM_SAVED", YAZE_EVENT_ROM_SAVED)
|
||||
.value("YAZE_EVENT_SPRITE_MODIFIED", YAZE_EVENT_SPRITE_MODIFIED)
|
||||
.value("YAZE_EVENT_PALETTE_CHANGED", YAZE_EVENT_PALETTE_CHANGED);
|
||||
|
||||
class_<yaze_extension>("yaze_extension")
|
||||
.def_readonly("name", &yaze_extension::name)
|
||||
.def_readonly("version", &yaze_extension::version);
|
||||
|
||||
// Functions that return raw pointers need to be managed by Python's garbage
|
||||
// collector
|
||||
def("yaze_load_rom", &yaze_load_rom,
|
||||
return_value_policy<manage_new_object>());
|
||||
def("yaze_unload_rom", &yaze_unload_rom); // No need to manage memory here
|
||||
def("yaze_get_color_from_paletteset", &yaze_get_color_from_paletteset);
|
||||
def("yaze_check_version", &yaze_check_version);
|
||||
}
|
||||
Reference in New Issue
Block a user