Playfield Engine 設計概要
移植レイヤ
Playfield Engine が Windows, macOS, Linux, iOS, Android, そして家庭用ゲーム機という、多様な環境で動作することをご存知でしょうか?
extern/StratoHAL ディレクトリにはプラットフォーム抽象化レイヤが含まれす。
これはプラットフォームごとに違いをきれいに吸収するものです。
共通コンポーネント
| File |
Description |
| image.c |
画像処理 |
| stdfile.c |
標準 C ライブラリによるファイルアクセス |
| glyph.c |
FreeType によるフォント描画 |
| wave.c |
OggVorbis デコーダ |
Windows 用
| File |
Description |
| winmain.c |
wWinMain() |
| d3drender.c |
レンダリングディスパッチ |
| d3d12render.cc |
Direct3D 12 |
| d3d11render.cc |
Direct3D 11 |
| d3d9render.cc |
Direct3D 9 |
| gdirender.c |
GDI rendering |
| dsound.c |
DirectSound audio |
| dsvideo.cc |
DirectShow video |
macOS 用
| File |
Description |
| nsmain.m |
main() (AppKit) |
| GameRenderer.m |
Metal |
| aunit.c |
Audio Unit |
Linux / BSD 用
| File |
Description |
| x11main.c |
X11 main() |
| glrender.c |
OpenGL |
| asound.c |
ALSA |
| bsdsound.c |
/dev/dsp and /dev/audio |
iOS 用
| File |
Description |
| uimain.m |
main() (UIKit) |
| GameRenderer.m |
Metal |
| aunit.c |
Audio Unit |
Android 用
| File |
Description |
| MainActivity.java |
Android activity |
| ndkmain.c |
Android NDK (main) |
| ndkfile.c |
Android NDK (file) |
SIMD
| File |
Description |
| drawimage.h |
Definitions of drawing functions |
| avx2.c |
AVX2 |
| avx.c |
AVX |
| sse42.c |
SSE4.2 |
| sse4.c |
SSE4.1 |
| sse3.c |
SSE3 |
| sse2.c |
SSE2 |
| sse.c |
SSE |
メインレイヤー
Playfield Engine の API を定義するメインレイヤは src/*.c にあります。
src/api.c にて C API を実装した上で、それを src/vm.c にて Noct でラッピングしてあります。
タグファイル
タグつきファイルはオプションで利用可能な機能としてサポートされています。