Contain retained assets and paint document paths

This commit is contained in:
2026-06-02 22:05:19 +02:00
parent 37b1cf82f3
commit e15894e4ea
4 changed files with 98 additions and 18 deletions

View File

@@ -274,8 +274,68 @@ if(PP_BUILD_APP)
VS_GLOBAL_CharacterSet "Unicode")
target_precompile_headers(pp_legacy_renderer_gl PRIVATE src/pch.h)
add_library(pp_legacy_assets_io OBJECT
${PP_LEGACY_ASSETS_IO_SOURCES})
target_link_libraries(pp_legacy_assets_io
PUBLIC
pp_project_options
PRIVATE
pp_assets
pp_project_warnings)
target_include_directories(pp_legacy_assets_io
PUBLIC
${PP_LEGACY_INCLUDE_DIRS})
target_compile_definitions(pp_legacy_assets_io
PUBLIC
ENUM_BITFIELDS_NOT_SUPPORTED
UNICODE
_UNICODE
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING
_CONSOLE
WITH_CURL=1)
set_target_properties(pp_legacy_assets_io PROPERTIES
VS_GLOBAL_CharacterSet "Unicode")
target_precompile_headers(pp_legacy_assets_io PRIVATE src/pch.h)
add_library(pp_legacy_paint_document OBJECT
${PP_LEGACY_PAINT_DOCUMENT_SOURCES})
target_link_libraries(pp_legacy_paint_document
PUBLIC
pp_project_options
PRIVATE
pp_assets
pp_document
pp_paint
pp_renderer_api
pp_project_warnings)
if(TARGET pp_renderer_gl)
target_link_libraries(pp_legacy_paint_document PRIVATE pp_renderer_gl)
endif()
target_include_directories(pp_legacy_paint_document
PUBLIC
${PP_LEGACY_INCLUDE_DIRS})
target_compile_definitions(pp_legacy_paint_document
PUBLIC
ENUM_BITFIELDS_NOT_SUPPORTED
UNICODE
_UNICODE
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING
_CONSOLE
WITH_CURL=1)
set_target_properties(pp_legacy_paint_document PROPERTIES
VS_GLOBAL_CharacterSet "Unicode")
target_precompile_headers(pp_legacy_paint_document PRIVATE src/pch.h)
add_library(pp_legacy_engine STATIC
${PP_LEGACY_ENGINE_SOURCES}
$<TARGET_OBJECTS:pp_legacy_assets_io>
$<TARGET_OBJECTS:pp_legacy_paint_document>
$<TARGET_OBJECTS:pp_legacy_renderer_gl>
$<TARGET_OBJECTS:pp_legacy_vendor>)
@@ -283,6 +343,9 @@ if(PP_BUILD_APP)
PUBLIC
pp_project_options
PRIVATE
pp_assets
pp_document
pp_paint
pp_renderer_api
pp_project_warnings)
if(TARGET pp_renderer_gl)

View File

@@ -1,22 +1,28 @@
set(PP_LEGACY_ENGINE_SOURCES
src/hmd.cpp
src/log.cpp
src/mp4enc.cpp
src/util.cpp
src/wacom.cpp
)
set(PP_LEGACY_ASSETS_IO_SOURCES
src/abr.cpp
src/action.cpp
src/asset.cpp
src/bezier.cpp
src/binary_stream.cpp
src/image.cpp
src/serializer.cpp
src/settings.cpp
)
set(PP_LEGACY_PAINT_DOCUMENT_SOURCES
src/action.cpp
src/bezier.cpp
src/brush.cpp
src/canvas.cpp
src/canvas_actions.cpp
src/canvas_layer.cpp
src/event.cpp
src/hmd.cpp
src/image.cpp
src/log.cpp
src/mp4enc.cpp
src/serializer.cpp
src/settings.cpp
src/util.cpp
src/wacom.cpp
)
set(PP_LEGACY_RENDERER_GL_SOURCES

View File

@@ -10,7 +10,7 @@ Keep it updated as platform paths move to shared CMake targets.
| Platform/Target | Current Entrypoint | Notes |
| --- | --- | --- |
| Windows desktop | Root `CMakeLists.txt`, preset `windows-msvc-default`; target preset `windows-vs2026-x64` retained for VS 2026 | Raw `.sln/.vcxproj` files removed on 2026-05-31; local machine currently uses Visual Studio 17 2022; `PanoPainter` now links through `pp_platform_windows` and `panopainter_app`, with Windows/vendor link dependencies owned by the platform shell, runtime payload deployment in `cmake/PanoPainterRuntime.cmake`, retained third-party source dependencies contained by `pp_legacy_vendor`, retained OpenGL runtime sources contained by `pp_legacy_renderer_gl` and folded into `pp_legacy_engine`, legacy canvas/asset/runtime sources contained by `pp_legacy_engine`, retained base UI controls contained by `pp_legacy_ui_core` and folded into `pp_legacy_app`, app orchestration/version metadata owned by `panopainter_app`, and app-specific modal/dialog/panel/canvas workflow nodes owned by `pp_panopainter_ui` |
| Windows desktop | Root `CMakeLists.txt`, preset `windows-msvc-default`; target preset `windows-vs2026-x64` retained for VS 2026 | Raw `.sln/.vcxproj` files removed on 2026-05-31; local machine currently uses Visual Studio 17 2022; `PanoPainter` now links through `pp_platform_windows` and `panopainter_app`, with Windows/vendor link dependencies owned by the platform shell, runtime payload deployment in `cmake/PanoPainterRuntime.cmake`, retained third-party source dependencies contained by `pp_legacy_vendor`, retained asset/file/serialization sources contained by `pp_legacy_assets_io`, retained paint/document/canvas sources contained by `pp_legacy_paint_document`, retained OpenGL runtime sources contained by `pp_legacy_renderer_gl` and folded into `pp_legacy_engine`, retained runtime shell sources contained by `pp_legacy_engine`, retained base UI controls contained by `pp_legacy_ui_core` and folded into `pp_legacy_app`, app orchestration/version metadata owned by `panopainter_app`, and app-specific modal/dialog/panel/canvas workflow nodes owned by `pp_panopainter_ui` |
| Windows AppX | `PanoPainterPackage/Package.appxmanifest`, `.wapproj` referenced by solution | Distribution packaging |
| macOS | `PanoPainter-OSX/` project files and `Info.plist` | Uses `NSOpenGLView` today |
| iOS | `PanoPainter/Info.plist`, related Apple sources | Uses OpenGL ES today |
@@ -402,10 +402,17 @@ Known warnings after the current CMake app build:
now, including JPEG, SQLite, Yoga, poly2tri, GLAD, fmt, Wacom utilities, and
other patched/embedded sources. Each dependency should either move to vcpkg,
an SDK import target, or a documented permanent vendored target.
- `pp_legacy_engine` intentionally contains retained legacy runtime sources for
now, so it concentrates existing legacy canvas, asset, brush, tablet, video,
serialization, and low-level runtime warnings until those paths move to
cleaner component ownership.
- `pp_legacy_assets_io` is an object-library containment boundary for retained
ABR, asset/file, binary stream, image, serializer, and settings code. It
should shrink as app I/O consumes `pp_assets` directly.
- `pp_legacy_paint_document` is an object-library containment boundary for
retained action, bezier, brush, canvas, canvas-layer, and event code. It
should shrink as app painting and document behavior consume `pp_paint` and
`pp_document` directly.
- `pp_legacy_engine` intentionally contains retained legacy runtime shell
sources for now, so it concentrates existing legacy tablet, video, HMD, log,
and low-level utility warnings until those paths move to cleaner component
ownership.
- `pp_legacy_renderer_gl` is an object-library containment boundary because
the retained OpenGL runtime classes still include legacy app/engine headers
and are still consumed directly by canvas and UI classes. It should become a

View File

@@ -150,9 +150,13 @@ payload deployment lives behind `cmake/PanoPainterRuntime.cmake`.
`pp_legacy_vendor` now owns the retained third-party source bundle as an
interim containment boundary until vcpkg, SDK imports, or documented permanent
vendoring decisions replace each dependency. `pp_legacy_engine` now contains
the retained legacy canvas, asset/file, brush, tablet, video, serialization,
and low-level runtime sources as an interim containment boundary while pure
replacement components take over.
the retained legacy tablet, video, and low-level runtime sources as an interim
containment boundary while pure replacement components take over.
`pp_legacy_assets_io` now owns retained ABR, asset/file, binary stream, image,
serializer, and settings implementations until `pp_assets` fully replaces those
paths in the app. `pp_legacy_paint_document` now owns retained action, bezier,
brush, canvas, canvas-layer, and event implementations until `pp_paint` and
`pp_document` fully replace those paths in the app.
`pp_legacy_renderer_gl` now owns the retained OpenGL runtime implementations
for `Font`, `RTT`, `Shader`, `Shape`, `Texture2D`, `TextureCube`, `Sampler`,
and `TextureManager` as an object-library boundary folded into the retained