![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
| インスタンスの作成 | |
| Tips | すべて |
ITransform オブジェクトは、IBitmap のオブジェクトから QueryInterface して下さい。
| DIB のサポート | |
| Tips | すべて |
ITransform のサポートは実装依存になります。 現在、SDK2.0.1.5 上では、DIB においては transform オペレーションをサポートしておりません。 DDB の IBitmap オブジェクトのみ、transform に対応しております。 実機上で何がサポートされるかは実装に依存します。
| パブリック関数 | |
|---|---|
| static SFBTransformSmp |
NewInstance(
SFBBitmapSmpConstRef bmp
)
SFBTransform クラスのインスタンスを取得します。
|
| SFCError |
TransformBltComplex(
SInt32 xDest
, SInt32 yDest
, SFBBitmapSmpConstRef bmpSrc
, SInt32 xSrc
, SInt32 ySrc
, UInt32 dxSrc
, UInt32 dySrc
, AEETransformMatrix const & transformMatrix
, UInt08 composite = COMPOSITE_OPAQUE
) TransformBltComplex( SFXGridConstRef gridDest , SFBBitmapSmpConstRef bmpSrc , SFXRectangleConstRef rectSrc , AEETransformMatrix const & transformMatrix , UInt08 composite = COMPOSITE_OPAQUE )
AEETransformMatrix 構造体の情報を元にして指定されたビットマップを変形し、
転送先のビットマップに描画します。
|
| SFCError |
TransformBltSimple(
SInt32 xDest
, SInt32 yDest
, SFBBitmapSmpConstRef bmpSrc
, SInt32 xSrc
, SInt32 ySrc
, UInt32 dxSrc
, UInt32 dySrc
, UInt16 transform
, UInt08 composite = COMPOSITE_OPAQUE
) TransformBltSimple( SFXGridConstRef gridDest , SFBBitmapSmpConstRef bmpSrc , SFXRectangleConstRef rectSrc , UInt16 transform , UInt08 composite = COMPOSITE_OPAQUE )
フラグの値を元にして指定されたビットマップを変形し、
転送先のビットマップに描画します。
|
| SFCError |
QueryInterface(
AEECLSID clsid
, VoidHandle handle
)
(SFBQuery から継承)
QueryInterface( AEECLSID clsid , SFBBaseSmpPtr handle ) (SFBQuery から継承) このオブジェクトからの別の API を問い合わせます。
|
| SFBBaseSmp |
QueryInterface(
AEECLSID clsid
)
(SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
|
| Void |
Self(
AEECLSID clsidReq
, SFBQuerySmpPtr clone
, AEECLSID clsidImp
)
(SFBQuery から継承)
オブジェクトを単一インタフェースで実装する際に使用します。
|
| SFBQuerySmp |
Self(
AEECLSID clsidReq
, AEECLSID clsidImp
)
(SFBQuery から継承)
オブジェクトを単一インタフェースで実装する際に使用します。
|
[ public, static ] SFBTransformSmp NewInstance( SFBBitmapSmpConstRef bmp // SFBBitmap クラスのインスタンス );
引数に指定された SFBBitmap クラスのインスタンスから、 SFBTransform クラスのインスタンスを取得して返します。
[ public ] SFCError TransformBltComplex( SInt32 xDest // 転送先の長方形の左上の X 座標 SInt32 yDest // 転送先の長方形の左上の Y 座標 SFBBitmapSmpConstRef bmpSrc // 転送元のビットマップ SInt32 xSrc // 転送元の長方形の左上の X 座標 SInt32 ySrc // 転送元の長方形の左上の Y 座標 UInt32 dxSrc // 転送元の長方形の幅 UInt32 dySrc // 転送元の長方形の高さ AEETransformMatrix const & transformMatrix // AEETransformMatrix 構造体を指すポインタ UInt08 composite = COMPOSITE_OPAQUE // プロパティ );
[ public ] SFCError TransformBltComplex( SFXGridConstRef gridDest // 転送先の長方形の左上の座標 SFBBitmapSmpConstRef bmpSrc // 転送元のビットマップ SFXRectangleConstRef rectSrc // 転送元の長方形 AEETransformMatrix const & transformMatrix // AEETransformMatrix 構造体を指すポインタ UInt08 composite = COMPOSITE_OPAQUE // プロパティ );
リソース ファイルから読み込んだビットマップを 1.5 倍に拡大して描画します。
// リソース ファイルから読み込むビットマップ画像のリソース ID
#define IDB_MY_PICTURE 0x0001
SFXGraphicsPtr graphic = SFXGraphics::GetInstance();
SFBShellSmp shell = SFBShell::GetInstance();
SFBBitmapSmp bmp;
SFBBitmapSmp dst;
SFBBitmapSmp tmp;
AEEBitmapInfo bmpInfo = {0};
SFXRectangle bmpRect;
SFBTransformSmp trans;
SFXGrid point;
AEETransformMatrix matrix = {0};
// リソース ファイルからビットマップを取得します。
bmp = shell->LoadResBitmap(MYRESOURCE_RES_FILE, IDB_MY_PICTURE);
if (bmp != null) {
// ビットマップのサイズを取得します。
bmp->GetInfo(&bmpInfo);
// 転送元ビットマップの長方形領域を設定します。
bmpRect.Set(0, 0, (UInt16)bmpInfo.cx, (UInt16)bmpInfo.cy);
// 作業用のビットマップを作成します。
// (転送先のビットマップと互換性のあるビットマップを作成します。)
dst = graphic->GetDestination();
tmp = dst->CreateCompatibleBitmap(SFXSize((UInt16)bmpInfo.cx, (UInt16)bmpInfo.cy));
// 作業用のビットマップに画像を描画します。
tmp->BltIn(bmpRect, bmp, SFXGrid(0, 0));
// SFBTransform のインスタンスを生成します。
trans = SFBTransform::NewInstance(dst);
// 変形マトリックスを設定します。
// 1.5 倍に拡大します。
matrix.A = 384;
matrix.B = 0;
matrix.C = 0;
matrix.D = 384;
// 転送元のビットマップを 1.5 倍に拡大して描画します。
point.Set((UInt16)(bmpInfo.cx / 2), (UInt16)(bmpInfo.cy / 2));
trans->TransformBltComplex(
point, // 転送先の座標
tmp, // 転送元のビットマップ
bmpRect, // 転送元の長方形領域
matrix // 1.5 倍に拡大します。
);
}
BREW API ITRANSFORM_TransformBltComplex | BREW API ITransformのプロパティ | AEEMatrixTransform | SFBTransform
[ public ] SFCError TransformBltSimple( SInt32 xDest // 転送先の長方形の左上の X 座標 SInt32 yDest // 転送先の長方形の左上の Y 座標 SFBBitmapSmpConstRef bmpSrc // 転送元のビットマップ SInt32 xSrc // 転送元の長方形の左上の X 座標 SInt32 ySrc // 転送元の長方形の左上の Y 座標 UInt32 dxSrc // 転送元の長方形の幅 UInt32 dySrc // 転送元の長方形の高さ UInt16 transform // フラグ UInt08 composite = COMPOSITE_OPAQUE // プロパティ );
[ public ] SFCError TransformBltSimple( SFXGridConstRef gridDest // 転送先の長方形の左上の座標 SFBBitmapSmpConstRef bmpSrc // 転送元のビットマップ SFXRectangleConstRef rectSrc // 転送元の長方形 UInt16 transform // フラグ UInt08 composite = COMPOSITE_OPAQUE // プロパティ );
リソース ファイルから読み込んだビットマップを 2 倍に拡大して描画します。
// リソース ファイルから読み込むビットマップ画像のリソース ID
#define IDB_MY_PICTURE 0x0001
SFXGraphicsPtr graphic = SFXGraphics::GetInstance();
SFBShellSmp shell = SFBShell::GetInstance();
SFBBitmapSmp bmp;
SFBBitmapSmp dst;
SFBBitmapSmp tmp;
AEEBitmapInfo bmpInfo = {0};
SFXRectangle bmpRect;
SFBTransformSmp trans;
// リソース ファイルからビットマップを取得します。
bmp = shell->LoadResBitmap(MYRESOURCE_RES_FILE, IDB_MY_PICTURE);
if (bmp != null) {
// ビットマップのサイズを取得します。
bmp->GetInfo(&bmpInfo);
// 転送元ビットマップの長方形領域を設定します。
bmpRect.Set(0, 0, (UInt16)bmpInfo.cx, (UInt16)bmpInfo.cy);
// 作業用のビットマップを作成します。
// (転送先のビットマップと互換性のあるビットマップを作成します。)
dst = graphic->GetDestination();
tmp = dst->CreateCompatibleBitmap(SFXSize((UInt16)bmpInfo.cx, (UInt16)bmpInfo.cy));
// 作業用のビットマップに画像を描画します。
tmp->BltIn(bmpRect, bmp, SFXGrid(0, 0));
// SFBTransform のインスタンスを生成します。
trans = SFBTransform::NewInstance(dst);
// 転送元のビットマップを 2 倍に拡大して描画します。
point.Set((UInt16)(bmpInfo.cx / 2), (UInt16)(bmpInfo.cy / 2));
trans->TransformBltSimple(
point, // 転送先の座標
tmp, // 転送元のビットマップ
bmpRect, // 転送元の長方形領域
TRANSFORM_SCALE_2 // 2 倍に拡大します。
);
}
|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|