API Reference
grender_cpu
1. 개요
본 문서는 grender_cpu 모듈에서 제공하는 공개 API (Application Programming Interface) 를 정의한다.
grender_cpu는 grender 렌더링 인터페이스를 기반으로 동작하는 CPU 기반 렌더러 구현 모듈이며, 해당 API는 CPU 렌더링 디바이스 생성과 렌더링 파이프라인 실행을 위한 인터페이스를 제공한다.
이 문서는 grender_cpu에서 외부 모듈이 사용할 수 있는 공개 타입, 구조체, 함수 인터페이스를 기술한다.
2. API 범위
grender_cpu API는 다음 구성 요소를 포함한다.
- 공통 데이터 타입
- framebuffer 인터페이스
- 렌더링 파이프라인 인터페이스
- rasterization 인터페이스
- render device 생성 인터페이스
API는 다음 모듈에서 정의된다.
grender_cpu/common
grender_cpu/framebuffer
grender_cpu/pipeline
grender_cpu/pipeline/raster
grender_cpu/device
3. API 구성 구조
grender_cpu API는 다음 계층 구조로 구성된다.
Render Device API
↓
Rendering Pipeline API
↓
Rasterization API
↓
Framebuffer API
↓
Common Data Types
각 계층은 다음 역할을 가진다.
| 계층 | 역할 |
|---|---|
| Common | 공통 데이터 타입 정의 |
| Framebuffer | framebuffer 접근 인터페이스 |
| Raster | primitive rasterization 인터페이스 |
| Pipeline | 렌더링 파이프라인 처리 인터페이스 |
| Device | CPU render device 생성 및 실행 |
4. 주요 API 구성
4.1 Common API
공통 데이터 타입을 제공한다.
주요 타입
CpuVertex
ScreenVertex
또한 색상 처리 유틸리티를 제공한다.
pack_bgra8(...)
4.2 Framebuffer API
프레임버퍼 데이터 접근을 위한 구조를 제공한다.
주요 타입
ColorBuffer
DepthBuffer
FramebufferView
4.3 Pipeline API
렌더링 파이프라인 처리 인터페이스를 제공한다.
주요 기능
- vertex stage 처리
- primitive clipping
- fragment operations
4.4 Rasterization API
primitive rasterization 인터페이스를 제공한다.
지원 primitive
- triangle
- line
- point
주요 타입
RasterTriangle
RasterLine
RasterPoint
RasterContext
4.5 Render Device API
CPU 렌더링을 수행하는 render device 생성 인터페이스를 제공한다.
주요 구성
CpuRenderDevice
해당 객체는 CPU 기반 렌더링 파이프라인 실행을 담당한다.
5. 모듈 의존성
grender_cpu API는 다음 모듈과 연동된다.
grender
ghost
내부 모듈 의존성
device
↓
pipeline
↓
raster
↓
framebuffer
↓
common
6. 설계 제약
grender_cpu API는 다음 제약 조건을 가진다.
- CPU 기반 렌더링만 지원한다.
- GPU API에 의존하지 않는다.
- framebuffer 기반 렌더링 구조를 사용한다.
7. 문서 구성
이 API Reference는 다음 하위 문서로 구성된다.
API
├─ common
├─ framebuffer
├─ pipeline
├─ raster
└─ device
각 문서는 해당 모듈에서 제공하는 타입과 함수 인터페이스를 정의한다.
8. 요약
grender_cpu API는 CPU 기반 렌더링을 수행하기 위한 인터페이스 집합이다.
API는 다음 계층으로 구성된다.
- Common Data Types
- Framebuffer
- Rasterization
- Rendering Pipeline
- Render Device
각 API는 CPU 기반 software rasterizer 시스템을 구성하기 위한 인터페이스를 제공한다.