Readme
This commit is contained in:
71
README.md
Normal file
71
README.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# Zivro
|
||||
|
||||
Графическое приложение на Zig + DVUI/SDL3 для работы с документом фигур (линия, эллипс, ломаная) и CPU-рендерингом сцены.
|
||||
|
||||
## Что умеет
|
||||
|
||||
- Открывать и сохранять документ в JSON (`File -> Open`, `File -> Save As`).
|
||||
- Создавать новый документ и управлять несколькими открытыми вкладками.
|
||||
- Добавлять и удалять объекты в иерархическом дереве.
|
||||
- Отображать сцену в canvas и переключать параметры рендера (quality, stats, redraw).
|
||||
|
||||
## Технологии
|
||||
|
||||
- [Zig](https://ziglang.org/) `0.15.2+`
|
||||
- [DVUI](https://github.com/david-vanderson/dvui) (backend `sdl3`)
|
||||
- SDL3 (через зависимость DVUI)
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
```bash
|
||||
git clone <your-fork-or-repo-url>
|
||||
cd Zivro
|
||||
zig build run
|
||||
```
|
||||
|
||||
После запуска в окне приложения нажмите `New document`, чтобы создать первый документ.
|
||||
|
||||
## Сборка и запуск
|
||||
|
||||
```bash
|
||||
# Debug build
|
||||
zig build
|
||||
|
||||
# Запуск приложения
|
||||
zig build run
|
||||
|
||||
# Тесты
|
||||
zig build test
|
||||
```
|
||||
|
||||
Передача аргументов в приложение:
|
||||
|
||||
```bash
|
||||
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`.
|
||||
|
||||
Reference in New Issue
Block a user