クラス SGGraphics

PlusGの中心的なクラス. [詳細]

#include <sggraphics.h>

SGGraphicsに対する継承グラフ
Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

 SGGraphics (SGApplication *app)
 コンストラクタ
virtual ~SGGraphics ()
 デストラクタ
virtual void Release ()
 確保したリソースを解放する。
void SharedRelease ()
 確保したリソースを解放する。
void AddFont (SGFontData *font)
 使用するフォントを登録する
SGFontDataGetFont (int id)
 フォントの取得
SGFontDataGetFont (const char *filename)
int OpenWindow (int x, int y, int width, int height, SGWindow **window)
 ウィンドウを作成する
void SetScreenPowerMode (int mode)
SGApplicationGetApp ()
 アプリケーションクラスのポインタを取得する
void GetScreenSize (int &width, int &height)
 スクリーンサイズを取得する
int SetPrimaryPalette (SGPalette *pal)
 メインパレットを更新する。
void SetWindowPixcelFormat (int fmt)
 ウィンドウ作成時のピクセルフォーマットを設定する
int GetWindowPixcelFormat ()
 ウィンドウ作成時のピクセルフォーマットを取得する
void SetSurfacePixcelFormat (int fmt)
 サーフェース作成時のピクセルフォーマットを設定する
int GetSurfacePixcelFormat ()
 サーフェース作成時のピクセルフォーマットを取得する
SGPaletteGetPalette ()
 パレットクラスのポインタを取得する。
SGPaletteCreatePalette (unsigned int *pal_data, int count=256, int transparent=1)
 パレットを作成する。
SGPaletteCreatePalette (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)
SGDisplayLayerGetLayer ()
 (未記入)

Protected メソッド

const char * GetKeyboardName (unsigned int code)
int GarbageCollection ()

Protected 変数

SGString mImageFolder
 (未記入)
SGSharedSurfaceMap mSharedSurface
 (未記入)
int mSharedSurfaceKeep
 (未記入)
SG * mSG
 (未記入)
SGApplicationmApp
 (未記入)
SGDisplayLayermLayer
 (未記入)
_SGEventBuffer * mEventBuf
 (未記入)
SGPalettemPalette
 (未記入)
SGCaretmCaretWindow
 (未記入)
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]

確保したリソースを解放する。

PlusGライブラリが確保したリソース領域を全て解放します。

SGCoreで再定義されています。

void SharedRelease (  ) 

確保したリソースを解放する。

共有画像領域を全て解放します。

void AddFont ( SGFontData font  ) 

使用するフォントを登録する

アプリケーションで使用するフォントを登録します。 この関数は SGApplication::SetFont() よりコールされている関数で、 この関数をコールする前に SGFontData の生成やIDのチェックなどを行っています。
フォントの登録を行う場合は SGApplication::SetFont() を使用して下さい。

引数:
font フォントクラス
参照:
SGApplication::SetFont(int id,const char* file,int size)
SGFontData * GetFont ( int  id  ) 

フォントの取得

指定したフォントIDに対応したフォントデータ SGFontData をフォントリストから取得します。

引数:
id フォントID
戻り値:
フォントデータ SGFontData
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 (  ) 

アプリケーションクラスのポインタを取得する

アプリケーションクラス SGApplication のポインタを取得する時に使用します

戻り値:
アプリケーションクラスのポインタ
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型の配列です。
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 パレットを使用します。
参照:
SGGraphics::SetPrimaryPalette(SGPalette* pal)
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 書体のディセンダ情報取得用変数ポインタ(省略可能)
戻り値:
結果(成功:TRUE/失敗:FALSE)

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 フォントデータ
戻り値:
rect 表示を行った領域(更新エリアとして使用できます)

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]

(未記入)

SGPalette* mPalette [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]

ピクセルフォーマット(サーフェース作成時)


このクラスの説明は次のファイルから生成されました:

PlusG リファレンスマニュアル Ver 2.0.0