以下のこのフレームワークの説明を示す。
win.h
フレームワークの基本である。一つのヘッダに基本的な各プラットフォームの処理が記述されている。以下に各処理ごとの説明を示す。
- Windows
Windowsのプロジェクトにおいてアプリケーションを作成する際以下の設定があり、それぞれのアプリケーションでの設定によって返る必要がある。
C++/C
- 文字セット(Unicode/マルチバイト)
- 構成(Debug/Release)
- プラットフォーム(x64/x86)
- ランタイムライブラリ(マルチスレッドDLL/マルチスレッド)
- SDLチェック
- サブシステム
C#
- ターゲットフレームワーク
- パッケージ
C++/Cli
- .NetFramework対象バージョン
- 文字セット
- ランタイムライブラリ
基本データ型
以下に基本となるデータ型と説明を示す。
・mswin
Windowsの設計の悪さを隠す構造体。Windowsに関してはこちらのデータ型にまとめた処理でプラットフォーム固有のデータをまとめる。
・winmanage
上記のデータ型をC言語で対応するマルチウィンドウを管理するデータ型
・apwin
C++でウィンドウやウィンドウプロシージャを管理し、諸悪の根源であるウィンドウプロシージャを派生クラスでも実装できるようにしたアプリケーションクラス
・renderparam
各プラットフォーム、DirectXバージョンOpenGL、OpenGLES、等のレンダリングの切り替え、または実装用のパラメータを管理するデータ型。(後日Metal、Vulkan等のレンダリングの追加予定)
・render_XX、winXXX
DirectX,OpenGL等のレンダリングの実装クラス。上記のrenderparamの派生によって実装される。
C++では基本敵にapwinクラスを派生しrender_XXXの内包することでコンソールプログラム、ウィンドウプログラム両方に対応し、各レンダリングの切り替えが可能としている。
C言語では基本的なウィンドウのデータ型とそれを管理するデータ型を使いC言語のみでの複数ウィンドウとマルチスレッドを実現している。iOS、Android、Mac等でのPthread等のPOSIXに関してはLinux系の説明に記載する。