Skip to content

[Engine] CommandBuffer 및 WorldCommands deferred mutation 구현#76

Merged
learncold merged 1 commit into
mainfrom
feat/issue-10
Apr 6, 2026
Merged

[Engine] CommandBuffer 및 WorldCommands deferred mutation 구현#76
learncold merged 1 commit into
mainfrom
feat/issue-10

Conversation

@SilverSupplier
Copy link
Copy Markdown
Collaborator

Summary

  • CommandBuffer 구현: spawnEntity, destroyEntity, addComponent<T>, removeComponent<T> 명령을 내부 큐에 누적하고 flush(EcsCore&)로 일괄 적용
  • WorldCommands 구현: 시스템이 명령을 enqueue하는 CommandBuffer facade
  • CommandBufferTests 추가: deferred 동작, flush 적용 순서, flush 후 초기화, spawnEntity, WorldCommands 전달 검증 (7개)
  • CMakeLists.txtCommandBuffer.h, CommandBufferTests.cpp 등록

Related Issue

Area

  • Engine
  • Domain
  • Application
  • Docs
  • Build
  • Analysis
  • Chore

Architecture Check

  • I kept the dependency direction application -> domain -> engine.
  • I did not add Qt UI code to src/domain.
  • I did not add domain or application dependencies to src/engine.
  • I used src/ as the include root.

Verification

  • cmake --preset windows-debug
  • cmake --build --preset build-debug
  • ctest --preset test-debug
  • Not run (reason below)

windows-debug-no-app / build-no-app-debug / test-no-app-debug preset 기준 실행 — configure, build, test(1/1) 모두 통과.

Risks / Follow-up

  • spawnEntity 호출 시 entity 핸들을 즉시 반환하지 않음 — 같은 프레임 내에서 생성된 entity에 추가 명령을 체이닝할 수 없음. 필요 시 별도 이슈로 확장 가능
  • EngineWorld와의 연결(시스템에 WorldCommands 노출)은 Task-Implement EngineRuntime minimal orchestration API #12 범위

- CommandBuffer: spawnEntity, destroyEntity, addComponent<T>, removeComponent<T> 명령 큐잉 및 flush(EcsCore&) 구현
- WorldCommands: 시스템용 CommandBuffer facade 추가
- CommandBufferTests: deferred 동작, flush 적용, flush 후 초기화, spawnEntity, WorldCommands 전달 검증 (7개)
- CMakeLists.txt: CommandBuffer.h, CommandBufferTests.cpp 등록
@learncold learncold merged commit 1b953c9 into main Apr 6, 2026
2 checks passed
@learncold learncold deleted the feat/issue-10 branch April 6, 2026 04:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Task-Implement deferred WorldCommands and CommandBuffer

2 participants