ginter
Software Requirements Specification (SRS)
1. Introduction
1.1 Purpose
본 문서는 ginter 모듈의 소프트웨어 요구사항을 정의한다.
ginter는 Grap 엔진 아키텍처에서 이벤트 브릿지 레이어(Event Bridge Layer) 역할을 수행한다.
이 모듈은 ghost 시스템에서 생성되는 Native Event를
gcore 이벤트 시스템에서 사용하는 Engine Event로 변환하고 전달한다.
ginter는 플랫폼 이벤트 시스템과 엔진 이벤트 시스템 사이의 인터페이스 계층이다.
1.2 Scope
ginter 모듈은 다음 기능을 제공한다.
- Native Event → Engine Event 변환
- 키코드 매핑
- 마우스 이벤트 변환
- 윈도우 이벤트 변환
- gcore Event 생성
- Event Pump를 통한 이벤트 전달
다음 기능은 본 모듈의 범위에 포함되지 않는다.
- OS API 처리
- Window 생성
- Rendering
- UI 처리
- Application 로직
1.3 Definitions
| Term | Description |
|---|---|
| Native Event | ghost 시스템에서 제공하는 플랫폼 이벤트 |
| Engine Event | gcore 이벤트 시스템에서 사용하는 이벤트 |
| Event Pump | Native Event를 읽어 Engine Event로 전달하는 구성 요소 |
| Keycode Map | 플랫폼 키코드를 엔진 키코드로 변환하는 매핑 |
1.4 System Context
ginter는 Grap 엔진 입력 시스템에서 다음 위치에 존재한다.
Input Layer
↓
ghost
(Platform Event Collection)
↓
ginter
(Event Conversion + Event Pump)
↓
gcore
(Engine Event System / EventBus)
1.5 Internal Module Structure
ginter 모듈은 다음 두 하위 모듈로 구성된다.
ginter ├─ convert │ Native Event → Engine Event 변환 │ └─ pump Native Event 수집 및 EventBus 전달
각 모듈의 역할은 다음과 같다.
| Module | Responsibility |
|---|---|
| convert | Native Event를 gcore Event로 변환 |
| pump | Window에서 Native Event를 읽어 EventBus로 전달 |
1.6 Event Flow
엔진의 입력 이벤트 처리 흐름은 다음과 같다.
ghost::Window
↓
ghost::NativeEvent
↓
ginter::EventPump
↓
ginter::native_to_gcore_event
↓
gcore::Event
↓
gcore EventBus