flatlib3
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
flatlib3 [2014/08/30 12:14] – [window] oga | flatlib3 [2015/11/29 16:12] – [特徴] oga | ||
---|---|---|---|
行 11: | 行 11: | ||
* Multi Platform 対応 | * Multi Platform 対応 | ||
* 独自の build system で、開発 HOST も Windows, Mac OS X, Linux どれでも OK | * 独自の build system で、開発 HOST も Windows, Mac OS X, Linux どれでも OK | ||
- | * アプリケーション自体は VisualStudio, | + | * アプリケーション自体は VisualStudio, |
* Database Backend | * Database Backend | ||
* On memory の data 構造 (Script 系言語の 連想配列, | * On memory の data 構造 (Script 系言語の 連想配列, | ||
- | * リソース管理、データフォーマット、モジュール&タスク管理、その他の基盤として活用 | + | * リソース管理、データフォーマット、モジュール&タスク管理、その他のバックエンドとして活用 |
* テキストベースのデータファイルフォーマット | * テキストベースのデータファイルフォーマット | ||
- | * Xml では無いので高速な読み書きが可能 | ||
- | * デバッグのため人間が見ても理解しやすく編集しやすい | ||
- | * 読み書きが高速に行えるように設計 | ||
- | * パーサーの作成が容易で行単位でデコード可能 | ||
- | * 型情報が保存される | ||
- | * 直接読み込んでそのまま利用できる | ||
- | * テクスチャのように最初からバイナリの情報は含まないため、サイズが肥大しない | ||
* 自由度が高く冗長性を持たせることが可能。情報が増えても上位互換性を保つことができる | * 自由度が高く冗長性を持たせることが可能。情報が増えても上位互換性を保つことができる | ||
- | * バイナリ化対応予定 (未完成) | + | * バイナリ化対応予定 (flatlib4 で実装) |
* Script Engine (FlatScript) | * Script Engine (FlatScript) | ||
* 独自の Script 言語、Compiler & VM | * 独自の Script 言語、Compiler & VM | ||
- | * ほぼ < | + | * ほぼ < |
* 共通 Module API | * 共通 Module API | ||
* < | * < | ||
行 33: | 行 26: | ||
* 仮想ファイルシステム | * 仮想ファイルシステム | ||
* プラットフォームごとに異なる Data path を統一化できる | * プラットフォームごとに異なる Data path を統一化できる | ||
- | * Zip File の Mount 等、アーカイブファイルを File API で読み込み可能 | + | * アーカイブファイルを File API で読み込み可能 |
- | * Network による Remote Access 対応 | + | |
* 開発効率を向上させるための軽量&高速なデータ開発サイクル | * 開発効率を向上させるための軽量&高速なデータ開発サイクル | ||
* プログラムの再コンパイルなしにデータやスクリプトを更新可能 | * プログラムの再コンパイルなしにデータやスクリプトを更新可能 | ||
- | * 外部依存ライブラリなし | + | * 最小限の外部依存ライブラリ |
- | * 機能は | + | * 出来る限り |
- | * 唯一の例外: | + | |
* 描画関連 | * 描画関連 | ||
* 頂点データ形式が自由でシェーダーとのマッチングも自動 | * 頂点データ形式が自由でシェーダーとのマッチングも自動 | ||
行 46: | 行 37: | ||
* ハードウエアにとって最も効率が良いフォーマットを選んで描画することが可能 | * ハードウエアにとって最も効率が良いフォーマットを選んで描画することが可能 | ||
* 複数フォーマットに対応したコンバータを開発予定 | * 複数フォーマットに対応したコンバータを開発予定 | ||
- | * 膨大になりがちなシェーダーの管理を自動化 | + | * シェーダー管理の自動化 |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
行 57: | 行 43: | ||
* Windows x86/x64 | * Windows x86/x64 | ||
- | * OpenGL 4.x / OpenGL ES 2.0, 3.0 (各種Emulator/ | + | |
- | * 主に開発ツール用 | + | |
- | * Android | + | * Android |
- | * OpenGL ES 2.0 / OpenGL ES 3.0 / OpenSL | + | * OpenGL ES 2.0, 3.0, 3.1 / OpenSL |
* iOS armv7/ | * iOS armv7/ | ||
- | * Metal / OpenGL ES 2.0 / OpenGL ES 3.0 / OpenAL | + | * Metal / OpenGL ES 2.0, 3.0 / OpenAL |
* Linux x86/ | * Linux x86/ | ||
- | * OpenGL 4.x / OpenGL ES 2.0, 3.0 / OpenAL | + | * OpenGL 4.x / OpenGL ES 2.0, 3.0, 3.1 / OpenAL |
* Mac OSX x86_64 | * Mac OSX x86_64 | ||
- | * OpenGL 4.1 / OpenAL | + | * Metal / OpenGL 4.1 / OpenAL |
* Web Emscripten | * Web Emscripten | ||
* WebGL | * WebGL | ||
+ | * 64bit 対応 | ||
* < | * < | ||
行 76: | 行 63: | ||
===== 対応ツール ===== | ===== 対応ツール ===== | ||
- | * Maya 2014 | + | * Maya 2014~2016 |
* データ export プラグイン(mll) &ツール(mel) (現在 Windows x64 のみ) | * データ export プラグイン(mll) &ツール(mel) (現在 Windows x64 のみ) | ||
* Model, Light, Camera, Material, Animation | * Model, Light, Camera, Material, Animation | ||
行 85: | 行 72: | ||
* Maya TangentSpace / 独自 TangentSpace 対応 | * Maya TangentSpace / 独自 TangentSpace 対応 | ||
- | * Blender 2.69 | + | * Blender 2.69~ |
* データ export プラグイン | * データ export プラグイン | ||
* 現状 単純な Model のみ | * 現状 単純な Model のみ | ||
行 109: | 行 96: | ||
* モデルデータビュア | * モデルデータビュア | ||
- | * Windows, Android, iOS, MacOS, Linux (armv7l) | + | * Windows, Android, iOS, MacOSX, Linux (x86_64,armv7l), browser (WebGL) |
+ | |||
+ | * Texture Converter | ||
+ | * Mipmap, Cubemap, 3D, Array 対応 | ||
+ | * flat-script による自動処理に対応 | ||
+ | * BC(DXT), PVRTCv1, PVRTCv2, ATITC, ETC1, ETC2-EAC, ASTC 変換 (外部 dll が必要) | ||
行 127: | 行 119: | ||
* マルチプラットフォーム用共通ライブラリ | * マルチプラットフォーム用共通ライブラリ | ||
* Memory 管理 | * Memory 管理 | ||
- | * FileSystem | + | * FileSystem |
* Thread API (Lock, Queue 他) | * Thread API (Lock, Queue 他) | ||
- | * Database | + | * Database |
* Module 管理 | * Module 管理 | ||
* Slice (Task/ | * Slice (Task/ | ||
行 135: | 行 127: | ||
* Encoding (文字コードアクセス、変換) | * Encoding (文字コードアクセス、変換) | ||
* その他 | * その他 | ||
- | * 圧縮&解凍、vector (Linear, | + | |
行 152: | 行 144: | ||
* モデルフォーマット | * モデルフォーマット | ||
* 独自形式 a7 | * 独自形式 a7 | ||
- | * テキスト形式で、人間が見て読み書き可能。 | ||
- | * テキストのままアプリケーションがロード可能。 | ||
- | * 行単位のパースが可能で高速に読み込める | ||
- | * Database と共通 API でアクセスできる | ||
- | * 事前に変換したバイナリ形式に対応予定 | ||
==== event ==== | ==== event ==== | ||
行 175: | 行 162: | ||
* コンテキスト (VM) はわずか 36byte (64bit時は 64byte) + スタック領域 のみ。いくらでもインスタンス化可能 | * コンテキスト (VM) はわずか 36byte (64bit時は 64byte) + スタック領域 のみ。いくらでもインスタンス化可能 | ||
* 実行コンテキストの任意中断による非同期処理が可能 | * 実行コンテキストの任意中断による非同期処理が可能 | ||
- | * < | + | * < |
+ | * 最小限のプリプロセッサ機能 (C# の プリプロセッサに近いが、include や数値定義が可能) | ||
* 構文が同じなので、enum 等のシンボル値をアプリケーションと共有可能 | * 構文が同じなので、enum 等のシンボル値をアプリケーションと共有可能 | ||
* アプリケーションとバイナリの完全な分離 | * アプリケーションとバイナリの完全な分離 | ||
行 182: | 行 170: | ||
* static な Lambda 式風構文 (インラインで記述できるがオブジェクトを伴わない、< | * static な Lambda 式風構文 (インラインで記述できるがオブジェクトを伴わない、< | ||
* 64bit プラットフォームに完全対応 | * 64bit プラットフォームに完全対応 | ||
+ | * Script 自体が動的な暗黙のオブジェクトの生成は行わない。 | ||
+ | * メモリアロケートが発生する処理は < | ||
+ | * 言語単体は最小限で、それ以外の機能はすべて < | ||
+ | * Module API 自体は FlatScript 以外の言語からも呼び出しできる | ||
+ | * string 型無し、静的なテキストのみ | ||
+ | |||
行 193: | 行 187: | ||
* 挙動は script で記述可能 | * 挙動は script で記述可能 | ||
- | ++++UI Script | + | ++++ FlatScript |
<code c++> | <code c++> | ||
行 248: | 行 242: | ||
==== image5 ==== | ==== image5 ==== | ||
- | * テクスチャツール用 | + | * テクスチャツール用 |
+ | * テクスチャ画像の読み込みと変換 | ||
+ | * Mipmap, Cubemap, 3D, Array 対応 | ||
+ | * dds, ktx, pvr3, pvr2, bmp 形式の読み書きに対応 | ||
+ | |||