[前へ] [目次へ] [次へ]

DRViewPort (ネイティブクラス)


このクラスは独立した描画画面を描画するDRを扱うクラスです。
このクラスをDRとして扱う場合、描画画面を内容とするビットマップに接続した DRBitmap 相当になります。
このクラスのインスタンスは描画画面を内容とするビットマップとしても扱えます。

このクラスはインスタンスごとに独立したウィンドウ管理機構と描画画面を持っています。
このウィンドウ管理機構はシーンクラスが持つものと同様ですが、
キーボードやマウス、ゲームパッド等の入力系とは接続されていません。
そのため、入力を必要としないウィンドウクラスのみが使用できます。
なお、描画画面の初期サイズは0x0です。
最初に SetSize メソッドで描画画面の大きさを設定する必要があります。


このクラスのインスタンスにウィンドウオブジェクトを関連付けるには
各ウィンドウクラスが持つ NewWindowDRVP メソッドを使用します。
(このメソッドはこのクラスのウィンドウ管理機構に接続できるクラスのみが持っています)


このクラスのインスタンスに関連付けたウィンドウオブジェクトと描画画面は
このクラスのインスタンスがクロック供給を受けるか、 Update メソッドを呼び出すことで更新されます。
多くのウィンドウクラスはクロック供給時に描画情報を更新するため、
操作後にクロック供給されるか、 Update メソッドを呼び出すまでは以前の描画画面のままになります。

このクラスのインスタンスにクロック供給を行うには、
画面上に表示されているウィンドウ、またはそれに接続するDRに対して
このクラスのインスタンスをDRとして接続するか、DynamicBitmapとして接続してください。


このクラスはDynamicBitmapとして扱うことができます。
DynamicBitmapはクロック供給が可能なビットマップで、
対応するオブジェクトが INativeBitmap として参照を保持している間、
ビットマップ読み取り時にクロック供給とそれに伴う更新処理が実行されます。
現在ほとんどのウィンドウクラス、DR系クラスはDynamicBitmapに対応しています。


このクラスのインスタンスに対するビットマップ共有が行われていても、
このクラスのインスタンスが消滅するとビットマップ共有は無効化され、
空ビットマップが返されるようになります。


DR系クラスは描画に必要な情報を保持するクラスで、
INativeDrawResource での描画に対応したクラスを介して描画されます。
このクラスのインスタンスが消滅した時、
そのインスタンスへのリンクは強制的に解除されます。
描画に使用しているDRインスタンスを消滅させないようにしてください。

一番簡単にDRを画面に表示するには DRWindow クラスを使用します。

●継承

   このクラスは継承をしていません。

●インターフェイスとインターフェイスメソッド

   implements INativeDrawResource
          (C++レベルキャスト)IFGESDrawResource
   implements INativeBitmap
          GetWidth
          GetHeight
          GetWidthExtractIndexed
          GetHeightExtractIndexed


●クラスメソッド

   このクラスはクラスメソッドを持っていません。

●クラスメンバメソッド

名前概要
public設定メソッド SetSize描画画面の大きさを設定します
public取得メソッドconst GetWidth描画画面の横幅を取得します
public取得メソッドconst GetHeight描画画面の縦幅を取得します
public設定メソッド SetSrcAreaDR解釈時の描画内容の読み取り元を再設定します
public操作メソッド ShiftSrcXYDR解釈時の描画内容の読み取り元をずらします
public取得メソッドconst GetDrawAreaDR解釈時の実描画領域を取得します
public設定メソッド SetDrawModeDR解釈時の描画モードを設定します
public設定メソッド SetAlphaDR解釈時の透過度を設定します
public設定メソッド SetToneDR解釈時の色変換を設定します
public操作メソッド SetRotateDR解釈時の回転を設定します
public設定メソッド SetOffsetDR解釈時のタイリング/回転描画オフセットを設定します
public設定メソッド SetAxisDR解釈時の回転軸を設定します
public操作メソッド ClearRotateDR解釈時の回転を解除します
public設定メソッド SetDrawOffsetProcessDR解釈時の描画オフセット処理を設定します
public取得メソッドconst GetDrawOffsetProcessDR解釈時の描画オフセット処理を取得します
public設定メソッド SetNegativeSizeModeDR解釈時の負サイズ指定時の処理を設定します
public取得メソッドconst GetNegativeSizeModeDR解釈時の負サイズ指定時の処理を取得します
public取得メソッドconst GetWindowFromPoint指定座標にあるウィンドウを取得します
public操作メソッド Updateウィンドウ管理機構に更新処理要求を行います
public操作メソッド Resetこのオブジェクトの設定を破棄し、初期状態に戻します

●クラス共有変数

   このクラスはクラス共有変数を持っていません。

●インスタンス変数

   このクラスはインスタンス変数を持っていません。


●C++レベル追加情報

クラスID: FGES_CLASSID_DRVIEWPORT
クラス名: FGES_DRViewPort



DRViewPort::INativeBitmap@@GetWidth

Integer INativeBitmap@@GetWidth()const

   このオブジェクトの描画画面の横幅を返します。

戻り値:このオブジェクトの描画画面の横幅

先頭へ


DRViewPort::INativeBitmap@@GetHeight

Integer INativeBitmap@@GetHeight()const

   このオブジェクトの描画画面の縦幅を返します。

戻り値:このオブジェクトの描画画面の縦幅

先頭へ


DRViewPort::INativeBitmap@@GetWidthExtractIndexed

Integer INativeBitmap@@GetWidthExtractIndexed()const

   このオブジェクトの描画画面の横幅を返します。

戻り値:このオブジェクトの描画画面の横幅

先頭へ


DRViewPort::INativeBitmap@@GetHeightExtractIndexed

Integer INativeBitmap@@GetHeightExtractIndexed()const

   このオブジェクトの描画画面の縦幅を返します。

戻り値:このオブジェクトの描画画面の縦幅

先頭へ


DRViewPort::SetSize

public Bool SetSize( INativeInteger width, INativeInteger height)

   このオブジェクトの描画画面の大きさを設定します。
   このメソッドを呼び出すとDRとしての読み取りサイズも合わせて更新されます。
      
戻り値:処理に成功すると真を返します。

INativeInteger width :設定する横幅。
INativeInteger height :設定する縦幅。

先頭へ


DRViewPort::GetWidth

public Integer GetWidth()const

   このオブジェクトの描画画面の横幅を返します。

戻り値:このオブジェクトの描画画面の横幅

先頭へ


DRViewPort::GetHeight

public Integer GetHeight()const

   このオブジェクトの描画画面の縦幅を返します。

戻り値:このオブジェクトの描画画面の縦幅

先頭へ


DRViewPort::SetSrcArea

public void SetSrcArea( INativeInteger? x, INativeInteger? y,
             INativeInteger? width=NULL, INativeInteger? height=NULL)


   ドローリソースとして描画する場合に使用する描画画面の読み取り元座標を再設定します。
   
INativeInteger? x :描画に使用する画像領域の左端座標。
      空参照を指定した場合、現在の値を維持します。
INativeInteger? y :描画に使用する画像領域の上端座標。
      空参照を指定した場合、現在の値を維持します。
INativeInteger? width=NULL :描画に使用する画像領域の横幅。
      空参照を指定した場合、現在の値を維持します。
INativeInteger? height=NULL :描画に使用する画像領域の縦幅。
      空参照を指定した場合、現在の値を維持します。

先頭へ


DRViewPort::ShiftSrcXY

public void ShiftSrcXY( INativeInteger x, INativeInteger y)

   ドローリソースとして描画する場合に使用する描画画面の読み取り元座標をずらします。
   
INativeInteger x :X軸の読み取り元移動量(ピクセル単位)
INativeInteger y :Y軸の読み取り元移動量(ピクセル単位)

先頭へ


DRViewPort::GetDrawArea

public Bool GetDrawArea(editable INativeInteger? x,editable INativeInteger? y,
             editable INativeInteger? width,editable INativeInteger? height)const


   現在の設定でドローリソースとして描画した時に出力される範囲に外接する領域を取得します。
   このメソッドは計算した値を原点からの相対値で返します。
   実際の描画範囲を求める場合は描画先の座標を加算してください。

戻り値:取得に成功すると真を返します。

editable INativeInteger? x :[出力]出力領域の左上X座標を出力するオブジェクト。
      空参照を指定した場合、無視します。
editable INativeInteger? y :[出力]出力領域の左上Y座標を出力するオブジェクト。
      空参照を指定した場合、無視します。
editable INativeInteger? width :[出力]出力領域の横幅を出力するオブジェクト。
      空参照を指定した場合、無視します。
editable INativeInteger? height :[出力]出力領域の縦幅を出力するオブジェクト。
      空参照を指定した場合、無視します。

先頭へ


DRViewPort::SetDrawMode

public void SetDrawMode( INativeInteger drawmode)

   ドローリソースとして描画する場合の描画方法を設定します。
   
INativeInteger drawmode :設定する描画方法。以下のいずれかとオプションのOR結合。
識別名内容
DRBitmap::COPY画像の色と透過度で上書きします
DRBitmap::COPYC画像の色のみを上書きします
DRBitmap::ALPHA画像を透過描画します
DRBitmap::BLEND画像を半透明描画します
DRBitmap::LAYER画像をレイヤー描画します
DRBitmap::BACK画像を背後に描画します
DRBitmap::ALPHABLEND画像を透過半透明描画します
DRBitmap::LAYERBLEND画像をレイヤー半透明描画します
DRBitmap::BACKBLEND画像を背後に半透明描画します
DRBitmap::MIXALPHA画像を透過合成します
DRBitmap::MIXBLEND画像を半透明合成します
DRBitmap::MIXLAYER画像をレイヤー合成します
DRBitmap::MIXBACK画像を背後に合成します
DRBitmap::MIXALPHABLEND画像を透過半透明合成します
DRBitmap::MIXLAYERBLEND画像をレイヤー半透明合成します
DRBitmap::MIXBACKBLEND画像を背後に半透明合成します
DRBitmap::COPYA画像をアルファコピーします
DRBitmap::MULA画像をアルファ乗算します
DRBitmap::REVMULA画像をアルファ逆乗算します
DRBitmap::ADDA画像をアルファ加算します
DRBitmap::SUBA画像をアルファ減算します
DRBitmap::FILLA画像をアルファ設定します
DRBitmap::BLENDALPHA画像をアルファのみブレンドします
DRBitmap::COPYTONE画像を色変換して上書きします
DRBitmap::TONE画像を色変換して色のみに描画します
DRBitmap::ALPHATONE画像を色変換して透過描画します
DRBitmap::LAYERTONE画像を色変換してレイヤー描画します
DRBitmap::BACKTONE画像を色変換して背後に描画します
DRBitmap::MIXTONE画像を色変換して合成します
DRBitmap::MIXALPHATONE画像を色変換して透過合成します
DRBitmap::MIXLAYERTONE画像を色変換してレイヤー合成します
DRBitmap::MIXBACKTONE画像を色変換して背後に合成します
DRBitmap::MULC画像を色のみ乗算します
DRBitmap::REVMULC画像を色のみ逆乗算します
DRBitmap::ADDC画像を色のみ加算します
DRBitmap::SUBC画像を色のみ減算します
DRBitmap::SCREEN画像をスクリーン描画します
DRBitmap::OVERLAY画像をオーバーレイ描画します
DRBitmap::HARDLIGHT画像をハードライト描画します
DRBitmap::MULBLENDC画像を色のみ半透明乗算します
DRBitmap::ADDBLENDC画像を色のみ半透明加算します
DRBitmap::SUBBLENDC画像を色のみ半透明減算します
DRBitmap::SCREENBLEND画像を半透明スクリーン描画します
DRBitmap::OVERLAYBLEND画像を半透明オーバーレイ描画します
DRBitmap::HARDLIGHTBLEND画像を半透明ハードライト描画します
DRBitmap::MUL画像を乗算します
DRBitmap::REVMUL画像を逆乗算します
DRBitmap::ADD画像を加算します
DRBitmap::SUB画像を減算します
DRBitmap::MIXSCREEN画像をスクリーン合成します
DRBitmap::MIXOVERLAY画像をオーバーレイ合成します
DRBitmap::MIXHARDLIGHT画像をハードライト合成します
DRBitmap::MULBLEND画像を半透明乗算します
DRBitmap::ADDBLEND画像を半透明加算します
DRBitmap::SUBBLEND画像を半透明減算します
DRBitmap::MIXSCREENBLEND画像を半透明スクリーン合成します
DRBitmap::MIXOVERLAYBLEND画像を半透明オーバーレイ合成します
DRBitmap::MIXHARDLIGHTBLEND画像を半透明ハードライト合成します
オプション:これらのフラグは同時使用できます。
識別名内容
DRBitmap::DM_HMIRROR左右反転
DRBitmap::DM_VMIRROR上下反転

先頭へ


DRViewPort::SetAlpha

public void SetAlpha( INativeInteger alv)

   ドローリソースとして半透明描画する場合の透過度を設定します。
   現在の描画モードが透過度を必要としない場合、設定はされますが表面上の変化はありません。
   
INativeInteger alv :設定する透過度(0〜255)

先頭へ


DRViewPort::SetTone

public void SetTone( INativeInteger tone_color,
             INativeInteger tone_rpow, INativeInteger tone_gpow, INativeInteger tone_bpow)

   
   ドローリソースとして描画する場合色変換描画する場合の色を設定します。
   現在の描画モードが色変換を必要としない場合、設定はされますが表面上の変化はありません。
   
INativeInteger tone_color :色変換に使う色
INativeInteger tone_rpow :色変換する時の赤影響力(0〜256)
INativeInteger tone_gpow :色変換する時の緑影響力(0〜256)
INativeInteger tone_bpow :色変換する時の青影響力(0〜256)

先頭へ


DRViewPort::SetRotate

public void SetRotate( INativeFloat? angle=NULL, INativeFloat? h_mag=NULL, INativeFloat? v_mag=NULL,
             INativeInteger? offset_x=NULL, INativeInteger? offset_y=NULL,
             INativeFloat? axis_x=NULL, INativeFloat? axis_y=NULL)


   ドローリソースとして描画する場合の回転を設定します。
   現在、回転とタイリングは同時使用できません。
   
   なお、初期値を代入しても回転設定は解除されません。
   回転設定を解除するには ClearRotate を使用します。
   
INativeFloat? angle=NULL :回転角度(度単位)。
      空参照を指定した場合、0.0を指定したものとして扱います。
INativeFloat? h_mag=NULL :水平拡大率(1が等倍、最大10倍)。
      空参照を指定した場合、1.0を指定したものとして扱います。
INativeFloat? v_mag=NULL :垂直拡大率(1が等倍、最大10倍)。
      空参照を指定した場合、1.0を指定したものとして扱います。
INativeInteger? offset_x=NULL :描画位置の水平補正値。0が領域の中心。
      空参照を指定した場合、0を指定したものとして扱います。
INativeInteger? offset_y=NULL :描画位置の垂直補正値。0が領域の中心。
      空参照を指定した場合、0を指定したものとして扱います。
INativeFloat? axis_x=NULL :水平回転原点。0を領域の左端、1を領域の右端として指定します。
      空参照を指定した場合は0.5(中央)を指定したものとして扱います。
INativeFloat? axis_y=NULL :垂直回転原点。0を領域の上端、1を領域の下端として指定します。
      空参照を指定した場合は0.5(中央)を指定したものとして扱います。

先頭へ


DRViewPort::SetOffset

public void SetOffset( INativeInteger? offset_x, INativeInteger? offset_y)

   ドローリソースとして描画する場合のオフセットを設定します。
   回転設定中はこのオフセットは描画位置の補正です。
   タイリング設定中はこのオフセットは描画元読み取り位置の補正です。
   
INativeInteger? offset_x :設定する水平補正値。
         空参照を指定した場合は現在値を変更しません。
INativeInteger? offset_y :設定する垂直補正値。
         空参照を指定した場合は現在値を変更しません。

先頭へ


DRViewPort::SetAxis

public void SetAxis( INativeFloat? axis_x, INativeFloat? axis_y)

   ドローリソースとして描画する場合の回転軸を設定します。
   
INativeFloat? axis_x :水平回転原点。0を領域の左端、1を領域の右端として指定します。
         空参照を指定した場合は現在値を変更しません。
INativeFloat? axis_y :垂直回転原点。0を領域の上端、1を領域の下端として指定します。
         空参照を指定した場合は現在値を変更しません。

先頭へ


DRViewPort::ClearRotate

public void ClearRotate()

   ドローリソースとして描画する場合の回転設定を解除します。
   現在、回転とタイリングは同時使用できません。
   
先頭へ


DRViewPort::SetDrawOffsetProcess

public void SetDrawOffsetProcess( INativeBool new_mode)

   ドローリソースとして描画する場合に回転軸と描画位置の補正を反映するか設定します。
   この値を偽に設定すると、座標計算系メソッドでは回転軸と描画位置補正が計算されますが、
   DRの描画時には回転軸と描画位置補正が計算されなくなります。
   
   この値はデフォルトでは真に設定されています。
   
INativeBool new_mode :真を指定すると描画時に回転軸と描画位置補正を計算します。
      偽を指定すると描画時に回転軸と描画位置補正を計算しません。

先頭へ


DRViewPort::GetDrawOffsetProcess

public Bool GetDrawOffsetProcess()const

   ドローリソースとして描画する場合に回転軸と描画位置の補正を反映するか取得します。
   この値が偽の場合、座標計算系メソッドでは回転軸と描画位置補正が計算されますが、
   DRの描画時には回転軸と描画位置補正が計算されなくなります。
   
   この値はデフォルトでは真に設定されています。
      
戻り値:描画時に回転軸と描画位置補正を計算する場合は真を返します。

先頭へ


DRViewPort::SetNegativeSizeMode

public Bool SetNegativeSizeMode( INativeInteger new_mode)

   ドローリソースとして描画する場合に負の描画サイズが指定された時の処理を設定します。
   
   この値はデフォルトでは NSM_MIRROR に設定されています。

戻り値:設定に成功すると真を返します。

INativeInteger new_mode :新しい処理モード。以下のいずれか。
識別子内容
DRBitmap::NSM_DISABLE負値の設定を無効にします。
DRBitmap::NSM_ABSOLUTEサイズを絶対値化して描画します。
DRBitmap::NSM_MIRRORサイズを絶対値化し、反転描画します。

先頭へ


DRViewPort::GetNegativeSizeMode

public Integer GetNegativeSizeMode()const

   ドローリソースとして描画する場合に負の描画サイズが指定された時の処理を取得します。
   
   この値はデフォルトでは NSM_MIRROR に設定されています。
      
戻り値:現在の処理モード。以下のいずれか。
識別子内容
DRBitmap::NSM_DISABLE負値の設定を無効にします。
DRBitmap::NSM_ABSOLUTEサイズを絶対値化して描画します。
DRBitmap::NSM_MIRRORサイズを絶対値化し、反転描画します。

先頭へ


DRViewPort::GetWindowFromPoint

public INativeWindow?@ GetWindowFromPoint(
             INativeInteger x, INativeInteger y, INativeInteger? option=NULL)const


   このオブジェクトに所属するウィンドウのうち、指定した座標にある、列挙可能な最も上にあるウィンドウを返します。
   このメソッドは仮想ビュー座標系で座標を指定します。
   
   デフォルトではこのオブジェクトのトップレベルウィンドウのみが取得対象になります。
   トップレベルウィンドウに所属するウィンドウも取得対象にするには WFP_RECURSIVE オプションを使用します。
   
戻り値:指定した座標にあるウィンドウのうち、列挙可能な最も上にあるウィンドウを返します。
      該当するウィンドウが存在しない場合、空参照を返します。

INativeInteger x :ウィンドウを取得するX座標。
INativeInteger y :ウィンドウを取得するY座標。
INativeInteger? option=NULL :取得対象のウィンドウを決定するオプション。以下のOR結合。
識別名内容
Window::WFP_TYPE_STACKスタックウィンドウを取得対象にします。
Window::WFP_TYPE_SUBサブウィンドウを取得対象にします。
Window::WFP_TYPE_CHILD子ウィンドウを取得対象にします。
Window::WFP_TYPE_ALL全種類のウィンドウを取得対象にします。(デフォルト)
Window::WFP_FEX_UPDATE_OFF更新停止しているウィンドウを取得対象から除外します。
Window::WFP_FEX_INPUT_OFF入力停止しているウィンドウを取得対象から除外します。
Window::WFP_FEX_INVISIBLE非表示のウィンドウを取得対象から除外します。
Window::WFP_FEX_ALV0透過度が0のウィンドウを取得対象から除外します。
Window::WFP_RECURSIVE取得対象のウィンドウに所属するウィンドウも再帰的に検索します。

先頭へ


DRViewPort::Update

public Bool Update( INativeBool? immediately=NULL)

   このオブジェクトが持つウィンドウ管理機構に更新処理要求を行います。
   このメソッドは手動で1単位のクロックを供給します。
   
   immediately に真を指定した場合、描画画面の更新処理まで行い実際に画面更新が発生した場合のみ真を返します。
   immediately に偽または空参照を指定した場合、描画画面の更新を予約し真を返します。
   
戻り値:描画画面が更新されたか、またはされる予定かを返します。詳細は本文参照。

INativeBool? immediately=NULL :描画画面の更新を直ちに行うか指定します。
      空参照を指定した場合、偽として扱います。

先頭へ


DRViewPort::Reset

public Bool Reset()

   このオブジェクトの設定を破棄し、初期状態に戻します。
   
   このオブジェクトに関連付けられているウィンドウは全て DeleteWindow され、描画画面も削除されます。
   このオブジェクトのDRとしての設定は初期状態に戻ります。
   このオブジェクトに対して行われているビットマップ共有やDRリンクは解除されません。
   
戻り値:処理に成功すると真を返します。

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2023/09/12