2.9 KiB
2.9 KiB
Zivro
Графическое приложение на Zig + DVUI/SDL3 для работы с документом фигур (линия, эллипс, ломаная) и CPU-рендерингом сцены.
Что умеет
- Открывать и сохранять документ в JSON (
File -> Open,File -> Save As). - Создавать новый документ и управлять несколькими открытыми вкладками.
- Добавлять и удалять объекты в иерархическом дереве.
- Отображать сцену в canvas и переключать параметры рендера (quality, stats, redraw).
Технологии
Быстрый старт
git clone <your-fork-or-repo-url>
cd Zivro
zig build run
После запуска в окне приложения нажмите New document, чтобы создать первый документ.
Сборка и запуск
# Debug build
zig build
# Запуск приложения
zig build run
# Тесты
zig build test
Передача аргументов в приложение:
zig build run -- <arg1> <arg2>
Структура проекта
src/main.zig— точка входа и главный цикл окна/событий.src/ui/— меню, панели, вкладки, canvas-представление.src/models/— документ, объекты, shape-модели.src/render/— абстракции рендера и CPU-реализация.src/persistence/— JSON импорт/экспорт документов.build.zig— описание шаговbuild,run,test.Report/— материалы отчёта и диаграммы.
Формат данных
Документы сохраняются как JSON. Операции чтения/записи реализованы в src/persistence/json_io.zig, а структура документа — в src/models/Document.zig.
Troubleshooting
- Ошибка линковки вида
R_X86_64_PC64 ... crt1.o:.sframeприzig build test
Обычно связана с несовместимостью toolchain линкера/системных CRT на некоторых Linux-конфигурациях.
Проверьте актуальность Zig и системного toolchain; при необходимости попробуйте другой Zig/toolchain пакет.
Разработка
- Тестовый root:
src/tests.zig(подключает модули сtest-блоками). - Для добавления тестов в общий прогон подключайте модуль через
@import(...)вsrc/tests.zig.