前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFBTransform
ITransform インターフェースのラッパークラスです。
#include <SFBTransform.h.hpp>
class SFBTransform : public SFBQuery;
SFMTYPEDEFWRAPPER(SFBTransform)

継承図

SFBTransform クラスの継承図

バージョン

BREW 2.0 BREW 2.1 BREW 3.1 BREW 4.0

参照

BREW API ITransform

メンバ

パブリック関数
static
SFBTransformSmp
NewInstance( SFBBitmapSmpConstRef bitmap , SFCErrorPtr exception = null )
SFBTransform インスタンスを生成します。
static
SFBTransformSmp
NewInstance( SFBBitmapSmpConstRef bitmap , AEECLSID id , SFCErrorPtr exception = null )
SFBTransform インスタンスを生成します。
SFCError TransformBltComplex( SInt32 xDest , SInt32 yDest , SFBBitmapSmpConstRef bmpSrc , SInt32 xSrc , SInt32 ySrc , UInt32 dxSrc , UInt32 dySrc , AEETransformMatrix const & transformMatrix , UInt08 composite = COMPOSITE_OPAQUE )
AEETransformMatrix 構造体の情報を元にして指定したビットマップを変形し、 転送先のビットマップに描画します。
SFCError 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 )
フラグの値を元にして指定したビットマップを変形し、 転送先のビットマップに描画します。
SFCError TransformBltSimple( SFXGridConstRef gridDest , SFBBitmapSmpConstRef bmpSrc , SFXRectangleConstRef rectSrc , UInt16 transform , UInt08 composite = COMPOSITE_OPAQUE )
フラグの値を元にして指定したビットマップを変形し、 転送先のビットマップに描画します。
SFCError QueryInterface( AEECLSID clsid , VoidHandle handle ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SFCError 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 から継承)
オブジェクトを単一インターフェースで実装するときに使います。
プロテクト関数
static
SFBBaseSmp
FactoryByCreate( AEECLSID id , SFCErrorPtr exception = null ) (SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを生成します。
static
SFBBaseSmp
FactoryByQuery( SFBQuerySmpConstRef query , AEECLSID id , SFCErrorPtr exception = null ) (SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを指定した SFBQuery インスタンスを使用して生成します。

SFBTransform::NewInstance
SFBTransform インスタンスを生成します。
[ public, static ]
SFBTransformSmp NewInstance(
    SFBBitmapSmpConstRef bitmap    // SFBBitmap インスタンス
    SFCErrorPtr exception = null   // エラー値
);
[ public, static ]
SFBTransformSmp NewInstance(
    SFBBitmapSmpConstRef bitmap    // SFBBitmap インスタンス
    AEECLSID id                    // Class ID
    SFCErrorPtr exception = null   // エラー値
);

解説

引数に指定された SFBBitmap インスタンスから、 SFBTransform インスタンスを取得して返します。

参照

SFBBitmap


SFBTransform::TransformBltComplex
AEETransformMatrix 構造体の情報を元にして指定したビットマップを変形し、 転送先のビットマップに描画します。
[ 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          // プロパティ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • サポートされていないとき: SFERR_UNSUPPORTED

使用例

リソースファイルから読み込んだビットマップを 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


SFBTransform::TransformBltSimple
フラグの値を元にして指定したビットマップを変形し、 転送先のビットマップに描画します。
[ 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   // プロパティ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • サポートされていないとき: SFERR_UNSUPPORTED

使用例

リソースファイルから読み込んだビットマップを 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 倍に拡大
                              );
}

参照

BREW API ITRANSFORM_TransformBltSimple | BREW API ITransformのプロパティ | SFBTransform