SetPSConstFArray

ピクセルシェーダーの FLOAT4 型定数を配列を使って設定する

SetPSConstFArray ConstantIndex, param, ParamArray, ParamNum

int ConstantIndex : 変更する FLOAT4型定数の番号( 0~31 or 0~223 )
FLOAT4 *ParamArray : FLOAT4型配列の先頭アドレス
int ParamNum : 設定する数

(プラグイン / モジュール : DxLibW)

解説

( この関数は Direct3D 9 用の関数です、Direct3D 11 では効果がありませんので注意してください )

SetPSConstF は FLOAT4型の構造体一つ分をピクセルシェーダーの FLOAT4型定数として設定する関数でしたが、
この関数は FLOAT4型定数を指定数分だけ一度に設定することができます。

例えば

FLOAT4 f4array[ 3 ] ;

f4array[ 0 ].x = 100.0f ;

f4array[ 0 ].y = 65.0f ;

f4array[ 0 ].z = 19.0f ;

f4array[ 0 ].w = 888.0f ;

f4array[ 1 ].x = 296.0f ;

f4array[ 1 ].y = 879.0f ;

f4array[ 1 ].z = 1111.0f ;

f4array[ 1 ].w = 6.0f ;

f4array[ 2 ].x = 769910.0f ;

f4array[ 2 ].y = 4023.0f ;

f4array[ 2 ].z = 61.0f ;

f4array[ 2 ].w = 735.0f ;

SetPSConstFArray( 10, f4array, 3 ) ;

は、

FLOAT4 f4array[ 3 ] ;

f4array[ 0 ].x = 100.0f ;

f4array[ 0 ].y = 65.0f ;

f4array[ 0 ].z = 19.0f ;

f4array[ 0 ].w = 888.0f ;

f4array[ 1 ].x = 296.0f ;

f4array[ 1 ].y = 879.0f ;

f4array[ 1 ].z = 1111.0f ;

f4array[ 1 ].w = 6.0f ;

f4array[ 2 ].x = 769910.0f ;

f4array[ 2 ].y = 4023.0f ;

f4array[ 2 ].z = 61.0f ;

f4array[ 2 ].w = 735.0f ;

SetPSConstF( 10, f4array[ 0 ] ) ;

SetPSConstF( 11, f4array[ 1 ] ) ;

SetPSConstF( 12, f4array[ 2 ] ) ;

と同じ動作をします。

なんでこんな関数があるのかといいますと、単純に何回も SetPSConstF を呼ぶのが面倒だからという理由以外に何回も SetPSConstF を呼ぶのは処理負荷が高いからです。

因みに ConstantIndex で有効な値が0~31 or 0~223なのは float4型定数の数がピクセルシェーダー2.0では 32個、3.0では 224個だからです。

尚、この関数で値を設定した場合は、DrawGraph 等の描画関数を使用する前に ResetPSConstF 関数で設定した値を無効にする必要がありますので注意してください。

戻り値:
  0:成功

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib その他
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs