睡眠時間が長くなってきた・・・

進捗報告

  • 描画APIを整理し始め
  • Cのコード部分を分割して整理する準備

描画システム

シェーダー関連と描画コール関連を整備。
入力バッファの生成部分をまだ実装していないため未テストですが。

極力、ハードウェアに近い層を隠蔽したかったので、
API設計はふわっとした感じにしてあります。

出てくるオブジェクトは下記にまとめていきます。

  • Canvas - 出力先バッファ
  • View - Viewportおよび投影変換行列(2D/3D)
  • Rule - 出力ルール(Blend,Depth,Stencil), システム側で用意されたプリセットを利用する
  • Topology - プリミティブタイプ(Point, Line, Triangle) Stripや隣接情報付きは必要になったら
  • Image - 外部イメージデータ(png) その他のフォーマットは必要になったら
  • Texture - テクスチャスロットAPI
  • Shape - 入力バッファ(Vertex, Index), GLのようにストリーム処理で構成
  • Design - プログラマブルシェーダー, 将来的にLisp化したい
  • Mask - 深度/ステンシル用バッファ, 2Dを触っている間は後回し

上位層として最低下記の機能は実装していく予定。

  • Primitive
  • Sprite
  • SpriteFont

次の予定

とりあえずShapeが出来上がると描画ができるようになるので、
優先的にそちらを仕上げていく予定。
他の描画機能は上位層が完成して一通り使えるようになるまで後回し。