PlusGの中心的なクラス. [詳細]
#include <sggraphics.h>
Public メソッド | |
SGGraphics (SGApplication *app) | |
コンストラクタ | |
virtual | ~SGGraphics () |
デストラクタ | |
virtual void | Release () |
確保したリソースを解放する。 | |
void | SharedRelease () |
確保したリソースを解放する。 | |
void | AddFont (SGFontData *font) |
使用するフォントを登録する | |
SGFontData * | GetFont (int id) |
フォントの取得 | |
SGFontData * | GetFont (const char *filename) |
int | OpenWindow (int x, int y, int width, int height, SGWindow **window) |
ウィンドウを作成する | |
void | SetScreenPowerMode (int mode) |
SGApplication * | GetApp () |
アプリケーションクラスのポインタを取得する | |
void | GetScreenSize (int &width, int &height) |
スクリーンサイズを取得する | |
int | SetPrimaryPalette (SGPalette *pal) |
メインパレットを更新する。 | |
void | SetWindowPixcelFormat (int fmt) |
ウィンドウ作成時のピクセルフォーマットを設定する | |
int | GetWindowPixcelFormat () |
ウィンドウ作成時のピクセルフォーマットを取得する | |
void | SetSurfacePixcelFormat (int fmt) |
サーフェース作成時のピクセルフォーマットを設定する | |
int | GetSurfacePixcelFormat () |
サーフェース作成時のピクセルフォーマットを取得する | |
SGPalette * | GetPalette () |
パレットクラスのポインタを取得する。 | |
SGPalette * | CreatePalette (unsigned int *pal_data, int count=256, int transparent=1) |
パレットを作成する。 | |
SGPalette * | CreatePalette (const char *filename, int transparent=1) |
インデックスカラーのpng画像ファイルからパレットを作成する。 | |
void | SetCaretType (int type) |
キャレットの種類を設定する。 | |
void | SetSharedSurfaceKeep (int max) |
共有サーフェース数を設定する。 | |
void | WakeUp () |
イベント入力待ち状態から抜け出す | |
void | GetCursorPos (int &x, int &y) |
カーソルの座標を取得する。 | |
void | SetCursorPos (int x, int y) |
マウスカーソルを移動させる。 | |
void | EnableCursor (int enable) |
void | SetCursorShape (SGSurface *surface, int x, int y, int opacity=0xFF) |
void | SetColorMode (int mode) |
カラーモードを設定する。 | |
int | GetColorMode () |
マウスカーソルの表示・非表示状態を取得する | |
void | SetImageFolder (const char *folder) |
リソースフォルダを設定する。 | |
void | CreateImageProvider (const char *filename, SGImageProvider **provider) |
イメージ プロバイダ オブジェクトを作成する。 | |
int | CreateVideoProvider (const char *filename, _SGVideoProvider **provider) |
ビデオ プロバイダ オブジェクトを作成する。 | |
int | GetImageInfo (const char *filename, int &width, int &height, int &palette) |
フォントを作成する。 | |
int | CreateSurfaceLoadPng8 (const char *filename, SGSurface **surface, SGPalette **pal, int &width, int &height) |
int | CreateSurfaceBmp (SGSurface **surface, const char *filename, int shared=1) |
BMPファイルからサーフェースを作成する(内部関数). | |
int | CreateSurface (SGSurface **surface, const char *filename, int shared=1) |
画像ファイル(PNG、BMP)からサーフェースを作成する | |
void | CreateSurface (SGSurface **surface, int width=0, int height=0, unsigned int bgcol=((((unsigned int) 0x87)<< 24)|(((unsigned int) 0x00)<< 16)|(((unsigned int) 0x87)<< 8)|(unsigned int) 0x00)) |
サイズ指定でサーフェースを作成する。 | |
void | CreateSurface (_SGSurface **sface, _SGSurfaceDescription *dsc) |
int | GetFontInfo (SGFontData &font, int *width=NULL, int *height=NULL, int *ascender=NULL, int *descender=NULL) |
SGRect | GetStringRect (const char *text, int x, int y, SGFontData &font, int *ascender=NULL, int *height=NULL) |
SGRect | DrawString (SGSurface *base, const char *text, int bx, int by, SGFontData &font) |
void | GetStringPath (const char *text, SGFontData &font, SGFontRequsterCallback func, void *userdata) |
SGDisplayLayer * | GetLayer () |
(未記入) | |
Protected メソッド | |
const char * | GetKeyboardName (unsigned int code) |
int | GarbageCollection () |
Protected 変数 | |
SGString | mImageFolder |
(未記入) | |
SGSharedSurfaceMap | mSharedSurface |
(未記入) | |
int | mSharedSurfaceKeep |
(未記入) | |
SG * | mSG |
(未記入) | |
SGApplication * | mApp |
(未記入) | |
SGDisplayLayer * | mLayer |
(未記入) | |
_SGEventBuffer * | mEventBuf |
(未記入) | |
SGPalette * | mPalette |
(未記入) | |
SGCaret * | mCaretWindow |
(未記入) | |
int | mPipeFd |
(未記入) | |
int | mEnablePalette |
(未記入) | |
int | mScreenWidth |
(未記入) | |
int | mScreenHeight |
(未記入) | |
int | mScreenPixcelFormat |
ピクセルフォーマット(システム) | |
int | mWindowPixcelFormat |
ピクセルフォーマット(ウィンドウ作成時) | |
int | mSurfacePixcelFormat |
ピクセルフォーマット(サーフェース作成時) | |
SGFontRendering | mFontRender |
フレンド | |
class | SGApplication |
PlusGの中心的なクラス.
SGGraphics | ( | SGApplication * | app | ) |
コンストラクタ
~SGGraphics | ( | ) | [virtual] |
デストラクタ
void Release | ( | ) | [virtual] |
void SharedRelease | ( | ) |
確保したリソースを解放する。
共有画像領域を全て解放します。
void AddFont | ( | SGFontData * | font | ) |
使用するフォントを登録する
アプリケーションで使用するフォントを登録します。 この関数は SGApplication::SetFont() よりコールされている関数で、 この関数をコールする前に SGFontData の生成やIDのチェックなどを行っています。
フォントの登録を行う場合は SGApplication::SetFont() を使用して下さい。
font | フォントクラス |
SGFontData * GetFont | ( | int | id | ) |
int OpenWindow | ( | int | x, | |
int | y, | |||
int | width, | |||
int | height, | |||
SGWindow ** | window | |||
) |
ウィンドウを作成する
ダイアログなどの基本になるウィンドウ SGWindow を作成します。
主に SGDialog::OpenDialog からコールされ使用されますが、
キャレットクラス SGCaret やマウスカーソルクラス SGCursor でも使用しています。
この関数はライブラリ内部で使用される関数です。
x | 座標X | |
y | 座標Y | |
width | 幅 | |
height | 高さ | |
window | 作成された SGWindow (取得用) |
TRUE | 成功 | |
FALSE | 失敗 |
SGApplication * GetApp | ( | ) |
void GetScreenSize | ( | int & | width, | |
int & | height | |||
) |
スクリーンサイズを取得する
現在の画面(スクリーン)のサイズ(ドット数)を取得します。
width | 幅(dot数) | |
height | 高さ(dot数) |
int SetPrimaryPalette | ( | SGPalette * | pal | ) |
メインパレットを更新する。
メインのパレット(PrimaryPalette)は SGGraphics::Initialize()で初期化されます。
その後、ピクチャー オブジェクト SGPictureObject::Draw() の中からこの関数がコールされます。
この関数がコールされると、全てのダイアログに
void SGDialog::ChangePalette(SGPalette* pal)
で通知されます。
pal |
TRUE | 成功 | |
FALSE | 失敗 |
void SetWindowPixcelFormat | ( | int | fmt | ) |
ウィンドウ作成時のピクセルフォーマットを設定する
新規にウィンドウを作成する際のピクセルフォーマットを設定します。
SGPF_LUT8 SGPF_RGB16 SGPF_ARGB1555 SGPF_RGB24 SGPF_RGB32 SGPF_OTHER
int GetWindowPixcelFormat | ( | ) |
ウィンドウ作成時のピクセルフォーマットを取得する
新規にウィンドウを作成する際のピクセルフォーマットを取得します。
void SetSurfacePixcelFormat | ( | int | fmt | ) |
サーフェース作成時のピクセルフォーマットを設定する
新規にサーフェースを作成する際のピクセルフォーマットを設定します。
SGPF_LUT8 SGPF_RGB16 SGPF_ARGB1555 SGPF_RGB24 SGPF_RGB32 SGPF_OTHER
int GetSurfacePixcelFormat | ( | ) |
サーフェース作成時のピクセルフォーマットを取得する
新規にサーフェースを作成する際のピクセルフォーマットを取得します。
SGPalette * GetPalette | ( | ) |
パレットクラスのポインタを取得する。
PlusGライブラリはライブラリ初期化時に与えられたパレット情報をアプリケーション全体で 共有して使用する為に SGGraphics クラス内部に保持しています。
この関数はクラス内部に保持しているパレット情報へアクセスする為にパレットクラス SGPalette のポインタを取得します。
SGPalette * CreatePalette | ( | unsigned int * | pal_data, | |
int | count = 256 , |
|||
int | transparent = 1 | |||
) |
パレットを作成する。
RGB24ビットデータの配列からパレット SGPalette を作成します。
pal_data | データ配列のアドレス |
unsigned int palette_data[**] = { // bb gg rr 0x00000000, 0x5877b100, . . 0x434c5c00, };
count | 配列の数 | |
transparent | インデックス0番の透明処理TRUE インデックス0番の色を透明にする FALSE インデックス0番の色を透明にしない |
SGPalette * CreatePalette | ( | const char * | filename, | |
int | transparent = 1 | |||
) |
インデックスカラーのpng画像ファイルからパレットを作成する。
インデックスカラーのpng画像ファイルからパレットを作成します。
filenameには画像ファイルを指定します。ファイルはリソースフォルダにあるものとして処理します。
初期リソースフォルダは "resources/" です。
void SGGraphics::SetImageFolder(const char* folder)
で変更することが出来ます。
リソースフォルダ以外のファイルを指定する場合はfilename文字列の先頭を「/」にしフルパスで指定して下さい。
transparentにTRUEを指定するとパレット番号0が透明色として登録されます。
filename | png画像のファイル名 | |
transparent | 透明を使用する(default TRUE) |
void SetCaretType | ( | int | type | ) |
キャレットの種類を設定する。
キャレットの種類(形状)を設定します。
type | 種類SG_CARET_UNDERLINE アンダーライン(文字の下に横線) SG_CARET_IBEAM アイビーム(文字の左側に縦線) SG_CARET_BOX ボックス(文字を囲む線) |
void SetSharedSurfaceKeep | ( | int | max | ) |
共有サーフェース数を設定する。
共有画像サーフェースの保持数を設定します(既定値:30)
PlusGライブラリは一度メモリにロードしたリソース画像を共有し複数のオブジェクトから 参照できるような仕組みになっています。また、全てのオブジェクトから参照されなくなった 後も、過去の参照履歴順でソートし、上位n個の画像をメモリに残します。
この時のnを設定する関数です。
max | 保持数 |
void WakeUp | ( | ) |
イベント入力待ち状態から抜け出す
Select命令を強制終了する(内部制御用)
ライブラリはアイドル時イベント発生待ち状態にあります。
設定を変更し、即座に反映させるにはイベント入力待ち状態から一度抜ける必要があります。
マウスの動きや、タイマー、キーボードなど何らかのイベントが発生すれば、設定は反映されますが、 イベントの発生を待つことなく、即座にイベント待ちを解除する時にこの関数をコールします。
void GetCursorPos | ( | int & | x, | |
int & | y | |||
) |
カーソルの座標を取得する。
&x | X座標を受け取る変数 | |
&y | Y座標を受け取る変数 |
void SetCursorPos | ( | int | x, | |
int | y | |||
) |
マウスカーソルを移動させる。
指定のx、y座標にマウスカーソルが移動します。
x | X座標 | |
y | Y座標 |
void SetColorMode | ( | int | mode | ) |
カラーモードを設定する。
カラーモードは SGApplication::Initialize() によって決定します。
SG_COLMODE_PALETTE を設定する場合は SGGraphics::SetPrimaryPalette を使用して パレットの登録も行ってください。
mode | カラーモードSG_COLMODE_DIRECT 直接RGBで色を指定します。(既定値) SG_COLMODE_PALETTE パレットを使用します。 |
int GetColorMode | ( | ) |
マウスカーソルの表示・非表示状態を取得する
マウスカーソルの表示・非表示状態を取得します。
TRUE | 表示状態 | |
FALSE | 非表示状態 マウスカーソルを移動する。指定した座標へマウスカーソルを移動します。 |
x | X座標 | |
y | Y座標 マウスカーソルを非表示にするマウスカーソルを非表示にします。 |
TRUE | 成功 | |
FALSE | 失敗 マウスカーソルを表示する。マウスカーソルを表示状態にします。 | |
TRUE | 成功 | |
FALSE | 失敗 カラーモードを取得する。現在のカラーモードを取得します。 カラーモードは SGApplication::Initialize() によって決定します。 | |
SG_COLMODE_DIRECT | 直接RGBで色を指定します。 | |
SG_COLMODE_PALETTE | パレットを使用します。 |
void SetImageFolder | ( | const char * | folder | ) |
リソースフォルダを設定する。
リソースフォルダを設定します。
リソースフォルダはアプリケーション実行フォルダからの相対パスで指定します。 初期状態では "resources/" が設定されています。
folder | 新しく設定するフォルダ |
void CreateImageProvider | ( | const char * | filename, | |
SGImageProvider ** | provider | |||
) |
イメージ プロバイダ オブジェクトを作成する。
イメージ画像を読み込む時に使用しますが、この関数はライブラリが使用するもので 直接使用することは無い関数です。
画像を読み込む場合は通常 SGPictureObject 使用するか、
int SGGraphics::CreateSurface(SGSurface** surface,const char* filename,int shared)
を使用します。
filenameには画像ファイルを指定します。ファイルはリソースフォルダにあるものとして処理します。
初期リソースフォルダは "resources/" です。
void SGGraphics::SetImageFolder(const char* folder)
で変更することが出来ます。
リソースフォルダ以外のファイルを指定する場合はfilename文字列の先頭を「/」にしフルパスで指定して下さい。
filename | ファイル名 | |
provider | 取得したイメージ プロバイダ オブジェクト |
int CreateVideoProvider | ( | const char * | filename, | |
_SGVideoProvider ** | provider | |||
) |
ビデオ プロバイダ オブジェクトを作成する。
ビデオ画像を読み込む時に使用しますが、この関数はライブラリが使用するもので 直接使用することは無い関数です。
filenameには画像ファイルを指定します。ファイルはリソースフォルダにあるものとして処理します。
初期リソースフォルダは "resources/" です。
void SGGraphics::SetImageFolder(const char* folder)
で変更することが出来ます。
リソースフォルダ以外のファイルを指定する場合はfilename文字列の先頭を「/」にしフルパスで指定して下さい。
filename | ファイル名 | |
provider | 取得したビデオ プロバイダ オブジェクト |
int GetImageInfo | ( | const char * | filename, | |
int & | width, | |||
int & | height, | |||
int & | palette | |||
) |
フォントを作成する。
フォント SGFont を作成します。
この関数は新しい SGFont クラスを生成します。通常この関数は直接使用しません。
フォントを生成する場合は
int SGApplication::SetFont(int id,const char* file,int size,int antialiasing)
を使用し、フォントリソースとして登録し、フォントオブジェクトを使用して下さい。
filename | フォントファイル名 | |
size | フォントサイズ | |
font | フォントオブジェクトを受け取るポインタのアドレス | |
antialiasing | アンチエリアシング機能のON/OFF(省略時ON) リソースイメージ画像の情報を取得するリソースイメージ画像から情報を取得します。 filenameにはファイル名のみを指定し、ファイルはリソースフォルダにあるものとします。 初期リソースフォルダは "resources/" です。 void SGGraphics::SetImageFolder(const char* folder) で変更することが出来ます。 | |
filename | 画像ファイル名 | |
width | 画像の幅dot数(取得用) | |
height | 画像の高さdot数(取得用) | |
palette | カラーモードSG_COLMODE_DIRECT パレットを使っていない SG_COLMODE_PALETTE パレットを使っている |
TRUE | 成功 | |
FALSE | 失敗 |
int CreateSurfaceBmp | ( | SGSurface ** | surface, | |
const char * | filename, | |||
int | shared = 1 | |||
) |
BMPファイルからサーフェースを作成する(内部関数).
BMPファイルからサーフェースを作成します。
filenameには画像ファイルを指定します。ファイルはリソースフォルダにあるものとして処理します。
初期リソースフォルダは "resources/" です。
void SGGraphics::SetImageFolder(const char* folder)
で変更することが出来ます。
リソースフォルダ以外のファイルを指定する場合はfilename文字列の先頭を「/」にしフルパスで指定して下さい。
surface | 生成されたサーフェース(取得用) | |
filename | 画像ファイル名 | |
shared | 共有TRUE 共有する。(既定値)イメージは共有され他のオブジェクトからも参照できます。メモリにキャッシュされます。 FALSE 共有しない。イメージは共有されません。キャッシュもされません。 |
TRUE | 成功 | |
FALSE | 失敗 |
int CreateSurface | ( | SGSurface ** | surface, | |
const char * | filename, | |||
int | shared = 1 | |||
) |
画像ファイル(PNG、BMP)からサーフェースを作成する
画像ファイルからサーフェースを作成します。
サポートしているファイルタイプはPNGとBMPです。
filenameにはファイル名のみを指定し、ファイルはリソースフォルダにあるものとします。
初期リソースフォルダは "resources/" です。
void SGGraphics::SetImageFolder(const char* folder)
で変更することが出来ます。
surface | 生成されたサーフェース(取得用) | |
filename | 画像ファイル名 | |
shared | 共有TRUE 共有する。(既定値)イメージは共有され他のオブジェクトからも参照できます。メモリにキャッシュされます。 FALSE 共有しない。イメージは共有されません。キャッシュもされません。 |
TRUE | 成功 | |
FALSE | 失敗 |
void CreateSurface | ( | SGSurface ** | surface, | |
int | width = 0 , |
|||
int | height = 0 , |
|||
unsigned int | bgcol = ((((unsigned int) 0x87 )<<24)|(((unsigned int) 0x00 )<<16)|(((unsigned int) 0x87 )<<8)|(unsigned int) 0x00 ) | |||
) |
サイズ指定でサーフェースを作成する。
サイズ指定をしてサーフェースを作成します。
surface | 生成されたサーフェース(取得用) | |
width | 幅 | |
height | 高さ | |
bgcol | 背景色 |
int GetFontInfo | ( | SGFontData & | font, | |
int * | width = NULL , |
|||
int * | height = NULL , |
|||
int * | ascender = NULL , |
|||
int * | descender = NULL | |||
) |
書体の情報を取得する 書体の情報を取得します。
font | フォントデータ | |
pwidth | 書体サイズの幅情報取得用変数ポインタ(省略可能) | |
pheight | 書体サイズの高さ情報取得用変数ポインタ(省略可能) | |
pascender | 書体のアッセンダ情報取得用変数ポインタ(省略可能) | |
pdescender | 書体のディセンダ情報取得用変数ポインタ(省略可能) |
SGRect GetStringRect | ( | const char * | text, | |
int | x, | |||
int | y, | |||
SGFontData & | font, | |||
int * | ascender = NULL , |
|||
int * | height = NULL | |||
) |
文字列を描画するのに必要な領域を求める 文字列を描画するのに必要な領域を求めます。
文字列を表示する前に表示を行う領域を知りたい時に使用します。
text | 描画する文字列 | |
x | 表示開始位置x座標 | |
y | 表示開始位置y座標 | |
font | フォントデータ | |
ascender | 書体のアッセンダ情報取得用変数ポインタ(省略可能) | |
height | 書体の高さ情報取得用変数ポインタ(省略可能) |
SGRect DrawString | ( | SGSurface * | base, | |
const char * | text, | |||
int | bx, | |||
int | by, | |||
SGFontData & | font | |||
) |
文字列を描画する 文字列を表示する基本関数です。
SGCore::DrawTextもこの関数を使用します。
与える座標(原点)は、横書の場合は開始文字のベースライン左端、縦書の場合は上端中央です。
※SGCoreDrawTextは文字列の左上が原点です。原点が違いますので注意して下さい。
base | 表示を行うサーフェス | |
text | 描画する文字列 | |
bx | 開始位置の座標X | |
by | 開始位置の座標Y | |
font | フォントデータ |
void GetStringPath | ( | const char * | text, | |
SGFontData & | font, | |||
SGFontRequsterCallback | func, | |||
void * | userdata | |||
) |
文字列のベクトルデータを取得する 文字列のベクトルデータを取得します。
データはバッファ経由でなく、関数コールバックによって行われます。
第3パラメータにセットした関数はベクトルデータ1セグメント毎にコールされます。
登録する関数は
void Callback(int type,void* data,int x1,int y1,int x2,int y2,int x3,int y3);
というものを用意し、そのアドレスを登録します。
コールバックされる際の各パラメータの意味は次の通りです。
int type
第3パラメータ以降にセットされる座標の取り扱い方法を決定します。
0〜4の値がセットされます。次の様な定義が用意されています。
FONTRENDERING_MOVE_TO(0)
移動:カレント座標を点(x1,y1)に更新します。
FONTRENDERING_LINE_TO(1)
直線:カレント座標が始点、点(x1,y1)が終点の直線データ
処理後、カレント座標を点(x1,y1)に更新します。
FONTRENDERING_CONIC_TO(2)
円錐曲線:カレント座標が始点、点(x3,y3)が終点、点(x1,y1)がコントロール点の円錐曲線データ
処理後、カレント座標を点(x1,y1)に更新します。
FONTRENDERING_CUBIC_TO(3)
ベジェ曲線:カレント座標が始点、点(x3,y3)が終点、点(x1,y1)、点(x2,y2)がコントロール点のベジェ曲線データ
処理後、カレント座標を点(x1,y1)に更新します。
FONTRENDERING_TRANSLATE(4)
平行移動:原点を点(x1,y1)に移動します。
文字のベクトルデータには含まれません。文字列中の1文字毎に1度コールされます。
void* data
この関数 GetStringPath を使用する時の第4パラメータにセットしたポインタ。
使い方は任意です。 int x1 int y1 受け取るベクトルデータ。点(x1,y1) int x2 int y2 受け取るベクトルデータ。点(x2,y2) int x3 int y3 受け取るベクトルデータ。点(x3,y3)
text | 描画する文字列 | |
font | フォントデータ | |
func | コールバック関数 | |
userdata | コールバック関数 func に渡すポインタ(使い方は任意) |
SGDisplayLayer* GetLayer | ( | ) | [inline] |
(未記入)
const char * GetKeyboardName | ( | unsigned int | code | ) | [protected] |
protected: キーボードに割り当てられた名前を取得する。
int GarbageCollection | ( | ) | [protected] |
private ガベージコレクションを実行する。
0 | 正常終了 |
SGString mImageFolder [protected] |
(未記入)
SGSharedSurfaceMap mSharedSurface [protected] |
(未記入)
int mSharedSurfaceKeep [protected] |
(未記入)
SG* mSG [protected] |
(未記入)
SGApplication* mApp [protected] |
(未記入)
SGDisplayLayer* mLayer [protected] |
(未記入)
_SGEventBuffer* mEventBuf [protected] |
(未記入)
SGCaret* mCaretWindow [protected] |
(未記入)
int mPipeFd [protected] |
(未記入)
int mEnablePalette [protected] |
(未記入)
int mScreenWidth [protected] |
(未記入)
int mScreenHeight [protected] |
(未記入)
int mScreenPixcelFormat [protected] |
ピクセルフォーマット(システム)
int mWindowPixcelFormat [protected] |
ピクセルフォーマット(ウィンドウ作成時)
int mSurfacePixcelFormat [protected] |
ピクセルフォーマット(サーフェース作成時)