
TIGRは、Windows、MacOS、Linux、iOS、Android用の統一されたAPIを提供する小さなクロスプラットフォームグラフィックライブラリです。
Tigrのコアは、シンプルなフレームバッファライブラリです。それに加えて、2Dプログラムが一般的に必要とする一般的なタスクのいくつかのヘルパーを提供します。
TIGRは、小さく独立するように設計されています。 「Hello World」の例は100kb未満です。
| プラットフォーム | サイズ |
|---|---|
| Windows X86_64 | 48K |
| Linux X86_64 | 43k |
| MacOS ARM64 | 90k |
| macOS x86_64 | 74K |
含める追加のライブラリはありません。すべてがあなたのプログラムにすぐに焼かれています。
TIGRは制限なしで無料でコピーできます。 Tigr.Hを参照してください。

これがHello Worldプログラムの例です。詳細については、Tigr.hを読んでAPIをご覧ください。
#include "tigr.h"
int main ( int argc , char * argv [])
{
Tigr * screen = tigrWindow ( 320 , 240 , "Hello" , 0 );
while (! tigrClosed ( screen ))
{
tigrClear ( screen , tigrRGB ( 0x80 , 0x90 , 0xa0 ));
tigrPrint ( screen , tfont , 120 , 110 , tigrRGB ( 0xff , 0xff , 0xff ), "Hello, world." );
tigrUpdate ( screen );
}
tigrFree ( screen );
return 0 ;
}Tigrは、単一の.cおよび対応する.hファイルとして提供されます。
それを使用するには、プロジェクトにすぐに落とすだけです。
Androidアプリの複雑なライフサイクルとパッケージング(単一のソースファイルAndroidアプリのようなものはありません)のため、Tigrの小さなラッパーが必要です。それでも - TIGR APIは同じままです!
Tigrをそのままに焦点を合わせたままにするために、Androidラッパーは別のリポジトリに住んでいます。
Androidを開始するには、Timogr Repoにアクセスしてそこに進みます。
iOSでは、TIGRはアプリデリゲートとして実装されています。これは、数行のコードでアプリで使用できます。
通常、iOSアプリを構築するには、Xcodeでかなりの少しのいじくり回しが必要です。速く起動して実行するには、完全にコマンドラインベースのツールチェーンを備えたiOSスタータープロジェクトと、デバッグ用のコード構成と対象となります。
iOSを開始するには、Timogrios Repoにアクセスして進みます。
注:TigrはTimogrとTimogriosに含まれており、Tigrを個別にインストールする必要はありません。
TIGRには、 tfont変数がアクセスするビットマップフォントが組み込まれています。カスタムフォントは、 tigrLoadFontを使用してビットマップからロードできます。フォントビットマップには、同じ色の境界線で区切られた文字の行が含まれています。 Tigrは、境界線がビットマップの左上ピクセルと同じ色を使用すると想定しています。各キャラクターは、透明な背景に白で描かれて、色合いを機能させると想定されています。
TIGRFONTツールを使用して、TTFまたはBDFフォントファイルから独自のビットマップフォントを作成します。
TIGRバージョン3.1以降、ユニコードエンコードフォントシートがサポートされているため、フォントにグリフをレンダリングできます。ただし、テキストはまだLTRにレンダリングされています。
Tigrは、 tigrSetPostFXによって制御されるいくつかのストックエフェクトを提供するビルトインピクセルシェーダーを使用します。これらのストックエフェクトは、カスタムシェーダーでtigrSetPostShader呼び出すことで置き換えることができます。カスタムシェーダーは、シェーダー関数の形式です: void fxShader(out vec4 color, in vec2 uv)は、 parametersと呼ばれるuniform vec4としてtigrSetPostFXの4つのパラメーターにアクセスできます。
詳細については、シェーダーの例を参照してください。
MacOSでは、SDKバージョンに依存しているように見え、XCodeプロジェクトでTIGRを使用する場合は、 objc_msgSendプロトタイプの問題を回避するためにOBJC_OLD_DISPATCH_PROTOTYPES定義する必要があります。