drawライブラリは現在、動作環境(-eオプション)が「exe」のときのみ使えます。 他の環境向けに使用するとコンパイルエラーになります。
draw@AlignHorizontal
水平方向の揃え方を表す列挙型です。
名前 | 説明 |
---|---|
%center | 中央揃え |
%left | 左揃え |
%right | 右揃え |
draw@AlignVertical
垂直方向の揃え方を表す列挙型です。
名前 | 説明 |
---|---|
%bottom | 下揃え |
%center | 中央揃え |
%top | 上ぞろえ |
draw@Blend
ブレンドを表す列挙型です。
名前 | 説明 |
---|---|
%add | 加算合成。 描画先の色に描画元の色を足し合わせて明るくなる |
%alpha | アルファ合成。 描画元のアルファ値により半透明描画が可能 |
%mul | 乗算合成。 描画先の色に描画元の色を掛けて暗くなる |
%none | ブレンドなし。 描画元がそのまま不透明で表示され、高速に動作する |
%sub | 減算合成。 描画先の色から描画元の色を引く |
draw@Font
フォントのクラスです。
draw@Font.align
文字揃えを設定するメソッドです。
func align(horizontal: draw@AlignHorizontal, vertical: draw@AlignVertical)
horizontal 水平方向の文字揃え vertical 垂直方向の文字揃え
初期値ではhorizontalは%left、verticalは%topに設定されています。
draw@Font.calcSize
文字列を描画したときの幅と高さを取得するメソッドです。
func calcSize(width: &float, height: &float, text: []char)
width 描画したときの幅を格納する変数 height 描画したときの高さを格納する変数 text 文字列。 nullを渡してはならない
draw@Font.calcWidth
文字列を描画したときの幅を取得するメソッドです。
func calcWidth(text: []char): float
text 文字列。 nullを渡してはならない 戻り値 描画したときの幅
draw@Font.draw
フォントを使って文字列を描画するメソッドです。
func draw(dstX: float, dstY: float, text: []char, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 text 描画する文字列。 nullを渡してはならない color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Font.drawScale
フォントを使って文字列を拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstScaleX: float, dstScaleY: float, text: []char, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstScaleX 描画先の拡大率X dstScaleY 描画先の拡大率Y text 描画する文字列。 nullを渡してはならない color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Font.fin
フォントのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Fontクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Font.getHeight
1行の高さを取得するメソッドです。
func getHeight(): float
戻り値 1行の高さ
draw@Font.handle
フォントハンドルを取得するメソッドです。
func handle(): int
戻り値 フォントハンドル
draw@Font.maxHeight
最大の文字の高さを取得するメソッドです。
func maxHeight(): float
戻り値 最大の文字の高さ
draw@Font.maxWidth
最大の文字の幅を取得するメソッドです。
func maxWidth(): float
戻り値 最大の文字の幅
draw@Font.setHeight
1行の高さを設定するメソッドです。
func setHeight(height: float)
height 1行の高さ
初期値ではフォントの情報をもとに自然な高さに設定されています。
draw@Obj
3Dオブジェクトのクラスです。
draw@Obj.draw
3Dオブジェクトを描画するメソッドです。
func draw(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
ディフューズマップとは、物体に光が当たったときに一部を吸収して色となって見えるときの、物体の色情報をrgbに格納したテクスチャです。 aは使われません。 例えば赤いリンゴであれば赤いテクスチャを用意します。 nullを指定した場合、rは0.6、gは0.6、bは0.6となります。
スペキュラマップとは、物体に光が当たったときに全反射して光そのものが見えるときの、物体の反射情報をrgbに格納したテクスチャです。 aには表面の滑らかさを格納します。 nullを指定した場合、rは0.7、gは0.7、bは0.7、aは3.0となります。
法線マップとは、物体の表面の小さな傾きのxyz成分をそれぞれrgbに格納したテクスチャです。 aは使われません。 nullを指定した場合、傾きが無いテクスチャとして、rは0.5、gは0.5、bは1.0となります。
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawFlat
3Dオブジェクトをフラットに描画するメソッドです。
func drawFlat(element: int, frame: float, diffuse: @Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawOutline
3Dオブジェクトの輪郭線を描画するメソッドです。
func drawOutline(element: int, frame: float, width: float, color: int)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム width 輪郭線の太さ color 輪郭線の色
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008 colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Obj.drawToon
3Dオブジェクトをトゥーン描画するメソッドです。
func drawToon(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawToonWithShadow
3Dオブジェクトを影付きでトゥーン描画するメソッドです。
func drawToonWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawWithShadow
3Dオブジェクトを影付きで描画するメソッドです。
func drawWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.fin
3Dオブジェクトのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Objクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Obj.look
3Dオブジェクトを指定した位置から注視点を向くように設定するメソッドです。
func look(x: float, y: float, z: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z atX 注視点X atY 注視点Y atZ 注視点Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.lookCamera
3Dオブジェクトをカメラの方向へ向くように設定するメソッドです。
func lookCamera(x: float, y: float, z: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.mat
3Dオブジェクトへの変換行列を直接設定するメソッドです。
func mat(mat_: []float, normMat: []float)
mat_ 変換行列 normMat 法線の変換行列
発生条件 ビルド 例外コード mat_もしくはnormMatの要素数が16でない dbgのみ 0xE9170006
draw@Obj.pos
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float)
scaleX 拡大率X。 1.0なら等倍 scaleY 拡大率Y。 1.0なら等倍 scaleZ 拡大率Z。 1.0なら等倍 rotX X軸を中心とする回転角度[rad] rotY Y軸を中心とする回転角度[rad] rotZ Z軸を中心とする回転角度[rad] transX 位置X transY 位置Y transZ 位置Z
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func align(horizontal: draw@AlignHorizontal, vertical: draw@AlignVertical) | |
horizontal | 水平方向の文字揃え |
vertical | 垂直方向の文字揃え |
文字列を描画したときの幅と高さを取得するメソッドです。
func calcSize(width: &float, height: &float, text: []char) | |
width | 描画したときの幅を格納する変数 |
height | 描画したときの高さを格納する変数 |
text | 文字列。 nullを渡してはならない |
draw@Font.calcWidth
文字列を描画したときの幅を取得するメソッドです。
func calcWidth(text: []char): float
text 文字列。 nullを渡してはならない 戻り値 描画したときの幅
draw@Font.draw
フォントを使って文字列を描画するメソッドです。
func draw(dstX: float, dstY: float, text: []char, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 text 描画する文字列。 nullを渡してはならない color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Font.drawScale
フォントを使って文字列を拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstScaleX: float, dstScaleY: float, text: []char, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstScaleX 描画先の拡大率X dstScaleY 描画先の拡大率Y text 描画する文字列。 nullを渡してはならない color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Font.fin
フォントのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Fontクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Font.getHeight
1行の高さを取得するメソッドです。
func getHeight(): float
戻り値 1行の高さ
draw@Font.handle
フォントハンドルを取得するメソッドです。
func handle(): int
戻り値 フォントハンドル
draw@Font.maxHeight
最大の文字の高さを取得するメソッドです。
func maxHeight(): float
戻り値 最大の文字の高さ
draw@Font.maxWidth
最大の文字の幅を取得するメソッドです。
func maxWidth(): float
戻り値 最大の文字の幅
draw@Font.setHeight
1行の高さを設定するメソッドです。
func setHeight(height: float)
height 1行の高さ
初期値ではフォントの情報をもとに自然な高さに設定されています。
draw@Obj
3Dオブジェクトのクラスです。
draw@Obj.draw
3Dオブジェクトを描画するメソッドです。
func draw(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
ディフューズマップとは、物体に光が当たったときに一部を吸収して色となって見えるときの、物体の色情報をrgbに格納したテクスチャです。 aは使われません。 例えば赤いリンゴであれば赤いテクスチャを用意します。 nullを指定した場合、rは0.6、gは0.6、bは0.6となります。
スペキュラマップとは、物体に光が当たったときに全反射して光そのものが見えるときの、物体の反射情報をrgbに格納したテクスチャです。 aには表面の滑らかさを格納します。 nullを指定した場合、rは0.7、gは0.7、bは0.7、aは3.0となります。
法線マップとは、物体の表面の小さな傾きのxyz成分をそれぞれrgbに格納したテクスチャです。 aは使われません。 nullを指定した場合、傾きが無いテクスチャとして、rは0.5、gは0.5、bは1.0となります。
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawFlat
3Dオブジェクトをフラットに描画するメソッドです。
func drawFlat(element: int, frame: float, diffuse: @Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawOutline
3Dオブジェクトの輪郭線を描画するメソッドです。
func drawOutline(element: int, frame: float, width: float, color: int)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム width 輪郭線の太さ color 輪郭線の色
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008 colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Obj.drawToon
3Dオブジェクトをトゥーン描画するメソッドです。
func drawToon(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawToonWithShadow
3Dオブジェクトを影付きでトゥーン描画するメソッドです。
func drawToonWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawWithShadow
3Dオブジェクトを影付きで描画するメソッドです。
func drawWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.fin
3Dオブジェクトのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Objクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Obj.look
3Dオブジェクトを指定した位置から注視点を向くように設定するメソッドです。
func look(x: float, y: float, z: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z atX 注視点X atY 注視点Y atZ 注視点Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.lookCamera
3Dオブジェクトをカメラの方向へ向くように設定するメソッドです。
func lookCamera(x: float, y: float, z: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.mat
3Dオブジェクトへの変換行列を直接設定するメソッドです。
func mat(mat_: []float, normMat: []float)
mat_ 変換行列 normMat 法線の変換行列
発生条件 ビルド 例外コード mat_もしくはnormMatの要素数が16でない dbgのみ 0xE9170006
draw@Obj.pos
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float)
scaleX 拡大率X。 1.0なら等倍 scaleY 拡大率Y。 1.0なら等倍 scaleZ 拡大率Z。 1.0なら等倍 rotX X軸を中心とする回転角度[rad] rotY Y軸を中心とする回転角度[rad] rotZ Z軸を中心とする回転角度[rad] transX 位置X transY 位置Y transZ 位置Z
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func calcWidth(text: []char): float | |
text | 文字列。 nullを渡してはならない |
戻り値 | 描画したときの幅 |
フォントを使って文字列を描画するメソッドです。
func draw(dstX: float, dstY: float, text: []char, color: int) | |
dstX | 描画先の左端座標 |
dstY | 描画先の上端座標 |
text | 描画する文字列。 nullを渡してはならない |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
draw@Font.drawScale
フォントを使って文字列を拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstScaleX: float, dstScaleY: float, text: []char, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstScaleX 描画先の拡大率X dstScaleY 描画先の拡大率Y text 描画する文字列。 nullを渡してはならない color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Font.fin
フォントのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Fontクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Font.getHeight
1行の高さを取得するメソッドです。
func getHeight(): float
戻り値 1行の高さ
draw@Font.handle
フォントハンドルを取得するメソッドです。
func handle(): int
戻り値 フォントハンドル
draw@Font.maxHeight
最大の文字の高さを取得するメソッドです。
func maxHeight(): float
戻り値 最大の文字の高さ
draw@Font.maxWidth
最大の文字の幅を取得するメソッドです。
func maxWidth(): float
戻り値 最大の文字の幅
draw@Font.setHeight
1行の高さを設定するメソッドです。
func setHeight(height: float)
height 1行の高さ
初期値ではフォントの情報をもとに自然な高さに設定されています。
draw@Obj
3Dオブジェクトのクラスです。
draw@Obj.draw
3Dオブジェクトを描画するメソッドです。
func draw(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
ディフューズマップとは、物体に光が当たったときに一部を吸収して色となって見えるときの、物体の色情報をrgbに格納したテクスチャです。 aは使われません。 例えば赤いリンゴであれば赤いテクスチャを用意します。 nullを指定した場合、rは0.6、gは0.6、bは0.6となります。
スペキュラマップとは、物体に光が当たったときに全反射して光そのものが見えるときの、物体の反射情報をrgbに格納したテクスチャです。 aには表面の滑らかさを格納します。 nullを指定した場合、rは0.7、gは0.7、bは0.7、aは3.0となります。
法線マップとは、物体の表面の小さな傾きのxyz成分をそれぞれrgbに格納したテクスチャです。 aは使われません。 nullを指定した場合、傾きが無いテクスチャとして、rは0.5、gは0.5、bは1.0となります。
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawFlat
3Dオブジェクトをフラットに描画するメソッドです。
func drawFlat(element: int, frame: float, diffuse: @Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawOutline
3Dオブジェクトの輪郭線を描画するメソッドです。
func drawOutline(element: int, frame: float, width: float, color: int)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム width 輪郭線の太さ color 輪郭線の色
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008 colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Obj.drawToon
3Dオブジェクトをトゥーン描画するメソッドです。
func drawToon(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawToonWithShadow
3Dオブジェクトを影付きでトゥーン描画するメソッドです。
func drawToonWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawWithShadow
3Dオブジェクトを影付きで描画するメソッドです。
func drawWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.fin
3Dオブジェクトのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Objクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Obj.look
3Dオブジェクトを指定した位置から注視点を向くように設定するメソッドです。
func look(x: float, y: float, z: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z atX 注視点X atY 注視点Y atZ 注視点Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.lookCamera
3Dオブジェクトをカメラの方向へ向くように設定するメソッドです。
func lookCamera(x: float, y: float, z: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.mat
3Dオブジェクトへの変換行列を直接設定するメソッドです。
func mat(mat_: []float, normMat: []float)
mat_ 変換行列 normMat 法線の変換行列
発生条件 ビルド 例外コード mat_もしくはnormMatの要素数が16でない dbgのみ 0xE9170006
draw@Obj.pos
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float)
scaleX 拡大率X。 1.0なら等倍 scaleY 拡大率Y。 1.0なら等倍 scaleZ 拡大率Z。 1.0なら等倍 rotX X軸を中心とする回転角度[rad] rotY Y軸を中心とする回転角度[rad] rotZ Z軸を中心とする回転角度[rad] transX 位置X transY 位置Y transZ 位置Z
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func drawScale(dstX: float, dstY: float, dstScaleX: float, dstScaleY: float, text: []char, color: int) | |
dstX | 描画先の左端座標 |
dstY | 描画先の上端座標 |
dstScaleX | 描画先の拡大率X |
dstScaleY | 描画先の拡大率Y |
text | 描画する文字列。 nullを渡してはならない |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
フォントのリソースを解放するメソッドです。
func fin() |
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Fontクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Font.getHeight
1行の高さを取得するメソッドです。
func getHeight(): float
戻り値 1行の高さ
draw@Font.handle
フォントハンドルを取得するメソッドです。
func handle(): int
戻り値 フォントハンドル
draw@Font.maxHeight
最大の文字の高さを取得するメソッドです。
func maxHeight(): float
戻り値 最大の文字の高さ
draw@Font.maxWidth
最大の文字の幅を取得するメソッドです。
func maxWidth(): float
戻り値 最大の文字の幅
draw@Font.setHeight
1行の高さを設定するメソッドです。
func setHeight(height: float)
height 1行の高さ
初期値ではフォントの情報をもとに自然な高さに設定されています。
draw@Obj
3Dオブジェクトのクラスです。
draw@Obj.draw
3Dオブジェクトを描画するメソッドです。
func draw(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
ディフューズマップとは、物体に光が当たったときに一部を吸収して色となって見えるときの、物体の色情報をrgbに格納したテクスチャです。 aは使われません。 例えば赤いリンゴであれば赤いテクスチャを用意します。 nullを指定した場合、rは0.6、gは0.6、bは0.6となります。
スペキュラマップとは、物体に光が当たったときに全反射して光そのものが見えるときの、物体の反射情報をrgbに格納したテクスチャです。 aには表面の滑らかさを格納します。 nullを指定した場合、rは0.7、gは0.7、bは0.7、aは3.0となります。
法線マップとは、物体の表面の小さな傾きのxyz成分をそれぞれrgbに格納したテクスチャです。 aは使われません。 nullを指定した場合、傾きが無いテクスチャとして、rは0.5、gは0.5、bは1.0となります。
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawFlat
3Dオブジェクトをフラットに描画するメソッドです。
func drawFlat(element: int, frame: float, diffuse: @Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawOutline
3Dオブジェクトの輪郭線を描画するメソッドです。
func drawOutline(element: int, frame: float, width: float, color: int)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム width 輪郭線の太さ color 輪郭線の色
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008 colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Obj.drawToon
3Dオブジェクトをトゥーン描画するメソッドです。
func drawToon(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawToonWithShadow
3Dオブジェクトを影付きでトゥーン描画するメソッドです。
func drawToonWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawWithShadow
3Dオブジェクトを影付きで描画するメソッドです。
func drawWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.fin
3Dオブジェクトのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Objクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Obj.look
3Dオブジェクトを指定した位置から注視点を向くように設定するメソッドです。
func look(x: float, y: float, z: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z atX 注視点X atY 注視点Y atZ 注視点Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.lookCamera
3Dオブジェクトをカメラの方向へ向くように設定するメソッドです。
func lookCamera(x: float, y: float, z: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.mat
3Dオブジェクトへの変換行列を直接設定するメソッドです。
func mat(mat_: []float, normMat: []float)
mat_ 変換行列 normMat 法線の変換行列
発生条件 ビルド 例外コード mat_もしくはnormMatの要素数が16でない dbgのみ 0xE9170006
draw@Obj.pos
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float)
scaleX 拡大率X。 1.0なら等倍 scaleY 拡大率Y。 1.0なら等倍 scaleZ 拡大率Z。 1.0なら等倍 rotX X軸を中心とする回転角度[rad] rotY Y軸を中心とする回転角度[rad] rotZ Z軸を中心とする回転角度[rad] transX 位置X transY 位置Y transZ 位置Z
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func getHeight(): float | |
戻り値 | 1行の高さ |
フォントハンドルを取得するメソッドです。
func handle(): int | |
戻り値 | フォントハンドル |
draw@Font.maxHeight
最大の文字の高さを取得するメソッドです。
func maxHeight(): float
戻り値 最大の文字の高さ
draw@Font.maxWidth
最大の文字の幅を取得するメソッドです。
func maxWidth(): float
戻り値 最大の文字の幅
draw@Font.setHeight
1行の高さを設定するメソッドです。
func setHeight(height: float)
height 1行の高さ
初期値ではフォントの情報をもとに自然な高さに設定されています。
draw@Obj
3Dオブジェクトのクラスです。
draw@Obj.draw
3Dオブジェクトを描画するメソッドです。
func draw(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
ディフューズマップとは、物体に光が当たったときに一部を吸収して色となって見えるときの、物体の色情報をrgbに格納したテクスチャです。 aは使われません。 例えば赤いリンゴであれば赤いテクスチャを用意します。 nullを指定した場合、rは0.6、gは0.6、bは0.6となります。
スペキュラマップとは、物体に光が当たったときに全反射して光そのものが見えるときの、物体の反射情報をrgbに格納したテクスチャです。 aには表面の滑らかさを格納します。 nullを指定した場合、rは0.7、gは0.7、bは0.7、aは3.0となります。
法線マップとは、物体の表面の小さな傾きのxyz成分をそれぞれrgbに格納したテクスチャです。 aは使われません。 nullを指定した場合、傾きが無いテクスチャとして、rは0.5、gは0.5、bは1.0となります。
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawFlat
3Dオブジェクトをフラットに描画するメソッドです。
func drawFlat(element: int, frame: float, diffuse: @Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawOutline
3Dオブジェクトの輪郭線を描画するメソッドです。
func drawOutline(element: int, frame: float, width: float, color: int)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム width 輪郭線の太さ color 輪郭線の色
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008 colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Obj.drawToon
3Dオブジェクトをトゥーン描画するメソッドです。
func drawToon(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawToonWithShadow
3Dオブジェクトを影付きでトゥーン描画するメソッドです。
func drawToonWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawWithShadow
3Dオブジェクトを影付きで描画するメソッドです。
func drawWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.fin
3Dオブジェクトのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Objクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Obj.look
3Dオブジェクトを指定した位置から注視点を向くように設定するメソッドです。
func look(x: float, y: float, z: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z atX 注視点X atY 注視点Y atZ 注視点Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.lookCamera
3Dオブジェクトをカメラの方向へ向くように設定するメソッドです。
func lookCamera(x: float, y: float, z: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.mat
3Dオブジェクトへの変換行列を直接設定するメソッドです。
func mat(mat_: []float, normMat: []float)
mat_ 変換行列 normMat 法線の変換行列
発生条件 ビルド 例外コード mat_もしくはnormMatの要素数が16でない dbgのみ 0xE9170006
draw@Obj.pos
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float)
scaleX 拡大率X。 1.0なら等倍 scaleY 拡大率Y。 1.0なら等倍 scaleZ 拡大率Z。 1.0なら等倍 rotX X軸を中心とする回転角度[rad] rotY Y軸を中心とする回転角度[rad] rotZ Z軸を中心とする回転角度[rad] transX 位置X transY 位置Y transZ 位置Z
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func maxHeight(): float | |
戻り値 | 最大の文字の高さ |
最大の文字の幅を取得するメソッドです。
func maxWidth(): float | |
戻り値 | 最大の文字の幅 |
draw@Font.setHeight
1行の高さを設定するメソッドです。
func setHeight(height: float)
height 1行の高さ
初期値ではフォントの情報をもとに自然な高さに設定されています。
draw@Obj
3Dオブジェクトのクラスです。
draw@Obj.draw
3Dオブジェクトを描画するメソッドです。
func draw(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
ディフューズマップとは、物体に光が当たったときに一部を吸収して色となって見えるときの、物体の色情報をrgbに格納したテクスチャです。 aは使われません。 例えば赤いリンゴであれば赤いテクスチャを用意します。 nullを指定した場合、rは0.6、gは0.6、bは0.6となります。
スペキュラマップとは、物体に光が当たったときに全反射して光そのものが見えるときの、物体の反射情報をrgbに格納したテクスチャです。 aには表面の滑らかさを格納します。 nullを指定した場合、rは0.7、gは0.7、bは0.7、aは3.0となります。
法線マップとは、物体の表面の小さな傾きのxyz成分をそれぞれrgbに格納したテクスチャです。 aは使われません。 nullを指定した場合、傾きが無いテクスチャとして、rは0.5、gは0.5、bは1.0となります。
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawFlat
3Dオブジェクトをフラットに描画するメソッドです。
func drawFlat(element: int, frame: float, diffuse: @Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawOutline
3Dオブジェクトの輪郭線を描画するメソッドです。
func drawOutline(element: int, frame: float, width: float, color: int)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム width 輪郭線の太さ color 輪郭線の色
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008 colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Obj.drawToon
3Dオブジェクトをトゥーン描画するメソッドです。
func drawToon(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawToonWithShadow
3Dオブジェクトを影付きでトゥーン描画するメソッドです。
func drawToonWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawWithShadow
3Dオブジェクトを影付きで描画するメソッドです。
func drawWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.fin
3Dオブジェクトのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Objクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Obj.look
3Dオブジェクトを指定した位置から注視点を向くように設定するメソッドです。
func look(x: float, y: float, z: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z atX 注視点X atY 注視点Y atZ 注視点Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.lookCamera
3Dオブジェクトをカメラの方向へ向くように設定するメソッドです。
func lookCamera(x: float, y: float, z: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.mat
3Dオブジェクトへの変換行列を直接設定するメソッドです。
func mat(mat_: []float, normMat: []float)
mat_ 変換行列 normMat 法線の変換行列
発生条件 ビルド 例外コード mat_もしくはnormMatの要素数が16でない dbgのみ 0xE9170006
draw@Obj.pos
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float)
scaleX 拡大率X。 1.0なら等倍 scaleY 拡大率Y。 1.0なら等倍 scaleZ 拡大率Z。 1.0なら等倍 rotX X軸を中心とする回転角度[rad] rotY Y軸を中心とする回転角度[rad] rotZ Z軸を中心とする回転角度[rad] transX 位置X transY 位置Y transZ 位置Z
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func setHeight(height: float) | |
height | 1行の高さ |
3Dオブジェクトを描画するメソッドです。
func draw(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex) | |
element | 複数のオブジェクトが含まれている場合の要素番号 |
frame | アニメーションフレーム |
diffuse | ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull |
specular | スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull |
normal | 法線マップのテクスチャ。 デフォルト値を使う場合はnull |
ディフューズマップとは、物体に光が当たったときに一部を吸収して色となって見えるときの、物体の色情報をrgbに格納したテクスチャです。 aは使われません。 例えば赤いリンゴであれば赤いテクスチャを用意します。 nullを指定した場合、rは0.6、gは0.6、bは0.6となります。
スペキュラマップとは、物体に光が当たったときに全反射して光そのものが見えるときの、物体の反射情報をrgbに格納したテクスチャです。 aには表面の滑らかさを格納します。 nullを指定した場合、rは0.7、gは0.7、bは0.7、aは3.0となります。
法線マップとは、物体の表面の小さな傾きのxyz成分をそれぞれrgbに格納したテクスチャです。 aは使われません。 nullを指定した場合、傾きが無いテクスチャとして、rは0.5、gは0.5、bは1.0となります。
発生条件 | ビルド | 例外コード |
---|---|---|
elementの値が0未満、もしくは存在しているオブジェクト数以上 | dbgのみ | 0xE9170006 |
frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい | dbgのみ | 0xE9170006 |
オブジェクトのジョイント数が0より小さい、もしくは256より大きい | dbgおよびrls | 0xE9170008 |
draw@Obj.drawFlat
3Dオブジェクトをフラットに描画するメソッドです。
func drawFlat(element: int, frame: float, diffuse: @Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawOutline
3Dオブジェクトの輪郭線を描画するメソッドです。
func drawOutline(element: int, frame: float, width: float, color: int)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム width 輪郭線の太さ color 輪郭線の色
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008 colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Obj.drawToon
3Dオブジェクトをトゥーン描画するメソッドです。
func drawToon(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawToonWithShadow
3Dオブジェクトを影付きでトゥーン描画するメソッドです。
func drawToonWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawWithShadow
3Dオブジェクトを影付きで描画するメソッドです。
func drawWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.fin
3Dオブジェクトのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Objクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Obj.look
3Dオブジェクトを指定した位置から注視点を向くように設定するメソッドです。
func look(x: float, y: float, z: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z atX 注視点X atY 注視点Y atZ 注視点Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.lookCamera
3Dオブジェクトをカメラの方向へ向くように設定するメソッドです。
func lookCamera(x: float, y: float, z: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.mat
3Dオブジェクトへの変換行列を直接設定するメソッドです。
func mat(mat_: []float, normMat: []float)
mat_ 変換行列 normMat 法線の変換行列
発生条件 ビルド 例外コード mat_もしくはnormMatの要素数が16でない dbgのみ 0xE9170006
draw@Obj.pos
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float)
scaleX 拡大率X。 1.0なら等倍 scaleY 拡大率Y。 1.0なら等倍 scaleZ 拡大率Z。 1.0なら等倍 rotX X軸を中心とする回転角度[rad] rotY Y軸を中心とする回転角度[rad] rotZ Z軸を中心とする回転角度[rad] transX 位置X transY 位置Y transZ 位置Z
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func drawFlat(element: int, frame: float, diffuse: @Tex) | |
element | 複数のオブジェクトが含まれている場合の要素番号 |
frame | アニメーションフレーム |
diffuse | ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull |
発生条件 | ビルド | 例外コード |
---|---|---|
elementの値が0未満、もしくは存在しているオブジェクト数以上 | dbgのみ | 0xE9170006 |
frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい | dbgのみ | 0xE9170006 |
オブジェクトのジョイント数が0より小さい、もしくは256より大きい | dbgおよびrls | 0xE9170008 |
3Dオブジェクトの輪郭線を描画するメソッドです。
func drawOutline(element: int, frame: float, width: float, color: int) | |
element | 複数のオブジェクトが含まれている場合の要素番号 |
frame | アニメーションフレーム |
width | 輪郭線の太さ |
color | 輪郭線の色 |
発生条件 | ビルド | 例外コード |
---|---|---|
elementの値が0未満、もしくは存在しているオブジェクト数以上 | dbgのみ | 0xE9170006 |
frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい | dbgのみ | 0xE9170006 |
オブジェクトのジョイント数が0より小さい、もしくは256より大きい | dbgおよびrls | 0xE9170008 |
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
draw@Obj.drawToon
3Dオブジェクトをトゥーン描画するメソッドです。
func drawToon(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawToonWithShadow
3Dオブジェクトを影付きでトゥーン描画するメソッドです。
func drawToonWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.drawWithShadow
3Dオブジェクトを影付きで描画するメソッドです。
func drawWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.fin
3Dオブジェクトのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Objクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Obj.look
3Dオブジェクトを指定した位置から注視点を向くように設定するメソッドです。
func look(x: float, y: float, z: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z atX 注視点X atY 注視点Y atZ 注視点Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.lookCamera
3Dオブジェクトをカメラの方向へ向くように設定するメソッドです。
func lookCamera(x: float, y: float, z: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.mat
3Dオブジェクトへの変換行列を直接設定するメソッドです。
func mat(mat_: []float, normMat: []float)
mat_ 変換行列 normMat 法線の変換行列
発生条件 ビルド 例外コード mat_もしくはnormMatの要素数が16でない dbgのみ 0xE9170006
draw@Obj.pos
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float)
scaleX 拡大率X。 1.0なら等倍 scaleY 拡大率Y。 1.0なら等倍 scaleZ 拡大率Z。 1.0なら等倍 rotX X軸を中心とする回転角度[rad] rotY Y軸を中心とする回転角度[rad] rotZ Z軸を中心とする回転角度[rad] transX 位置X transY 位置Y transZ 位置Z
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func drawToon(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex) | |
element | 複数のオブジェクトが含まれている場合の要素番号 |
frame | アニメーションフレーム |
diffuse | ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull |
specular | スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull |
normal | 法線マップのテクスチャ。 デフォルト値を使う場合はnull |
発生条件 | ビルド | 例外コード |
---|---|---|
elementの値が0未満、もしくは存在しているオブジェクト数以上 | dbgのみ | 0xE9170006 |
frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい | dbgのみ | 0xE9170006 |
オブジェクトのジョイント数が0より小さい、もしくは256より大きい | dbgおよびrls | 0xE9170008 |
3Dオブジェクトを影付きでトゥーン描画するメソッドです。
func drawToonWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow) | |
element | 複数のオブジェクトが含まれている場合の要素番号 |
frame | アニメーションフレーム |
diffuse | ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull |
specular | スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull |
normal | 法線マップのテクスチャ。 デフォルト値を使う場合はnull |
shadow | 影 |
発生条件 | ビルド | 例外コード |
---|---|---|
elementの値が0未満、もしくは存在しているオブジェクト数以上 | dbgのみ | 0xE9170006 |
frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい | dbgのみ | 0xE9170006 |
オブジェクトのジョイント数が0より小さい、もしくは256より大きい | dbgおよびrls | 0xE9170008 |
draw@Obj.drawWithShadow
3Dオブジェクトを影付きで描画するメソッドです。
func drawWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow)
element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull shadow 影
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Obj.fin
3Dオブジェクトのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Objクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Obj.look
3Dオブジェクトを指定した位置から注視点を向くように設定するメソッドです。
func look(x: float, y: float, z: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z atX 注視点X atY 注視点Y atZ 注視点Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.lookCamera
3Dオブジェクトをカメラの方向へ向くように設定するメソッドです。
func lookCamera(x: float, y: float, z: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.mat
3Dオブジェクトへの変換行列を直接設定するメソッドです。
func mat(mat_: []float, normMat: []float)
mat_ 変換行列 normMat 法線の変換行列
発生条件 ビルド 例外コード mat_もしくはnormMatの要素数が16でない dbgのみ 0xE9170006
draw@Obj.pos
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float)
scaleX 拡大率X。 1.0なら等倍 scaleY 拡大率Y。 1.0なら等倍 scaleZ 拡大率Z。 1.0なら等倍 rotX X軸を中心とする回転角度[rad] rotY Y軸を中心とする回転角度[rad] rotZ Z軸を中心とする回転角度[rad] transX 位置X transY 位置Y transZ 位置Z
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func drawWithShadow(element: int, frame: float, diffuse: draw@Tex, specular: draw@Tex, normal: draw@Tex, shadow: draw@Shadow) | |
element | 複数のオブジェクトが含まれている場合の要素番号 |
frame | アニメーションフレーム |
diffuse | ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull |
specular | スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull |
normal | 法線マップのテクスチャ。 デフォルト値を使う場合はnull |
shadow | 影 |
発生条件 | ビルド | 例外コード |
---|---|---|
elementの値が0未満、もしくは存在しているオブジェクト数以上 | dbgのみ | 0xE9170006 |
frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい | dbgのみ | 0xE9170006 |
オブジェクトのジョイント数が0より小さい、もしくは256より大きい | dbgおよびrls | 0xE9170008 |
3Dオブジェクトのリソースを解放するメソッドです。
func fin() |
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Objクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Obj.look
3Dオブジェクトを指定した位置から注視点を向くように設定するメソッドです。
func look(x: float, y: float, z: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z atX 注視点X atY 注視点Y atZ 注視点Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.lookCamera
3Dオブジェクトをカメラの方向へ向くように設定するメソッドです。
func lookCamera(x: float, y: float, z: float, upX: float, upY: float, upZ: float, fixUp: bool)
x 位置X y 位置Y z 位置Z upX 上面の方向X upY 上面の方向Y upZ 上面の方向Z fixUp 上面の方向を固定するならtrue、固定しないならfalse
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.mat
3Dオブジェクトへの変換行列を直接設定するメソッドです。
func mat(mat_: []float, normMat: []float)
mat_ 変換行列 normMat 法線の変換行列
発生条件 ビルド 例外コード mat_もしくはnormMatの要素数が16でない dbgのみ 0xE9170006
draw@Obj.pos
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float)
scaleX 拡大率X。 1.0なら等倍 scaleY 拡大率Y。 1.0なら等倍 scaleZ 拡大率Z。 1.0なら等倍 rotX X軸を中心とする回転角度[rad] rotY Y軸を中心とする回転角度[rad] rotZ Z軸を中心とする回転角度[rad] transX 位置X transY 位置Y transZ 位置Z
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func look(x: float, y: float, z: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float, fixUp: bool) | |
x | 位置X |
y | 位置Y |
z | 位置Z |
atX | 注視点X |
atY | 注視点Y |
atZ | 注視点Z |
upX | 上面の方向X |
upY | 上面の方向Y |
upZ | 上面の方向Z |
fixUp | 上面の方向を固定するならtrue、固定しないならfalse |
3Dオブジェクトをカメラの方向へ向くように設定するメソッドです。
func lookCamera(x: float, y: float, z: float, upX: float, upY: float, upZ: float, fixUp: bool) | |
x | 位置X |
y | 位置Y |
z | 位置Z |
upX | 上面の方向X |
upY | 上面の方向Y |
upZ | 上面の方向Z |
fixUp | 上面の方向を固定するならtrue、固定しないならfalse |
引数が無効な値の場合、設定せずに関数を抜けます。
draw@Obj.mat
3Dオブジェクトへの変換行列を直接設定するメソッドです。
func mat(mat_: []float, normMat: []float)
mat_ 変換行列 normMat 法線の変換行列
発生条件 ビルド 例外コード mat_もしくはnormMatの要素数が16でない dbgのみ 0xE9170006
draw@Obj.pos
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float)
scaleX 拡大率X。 1.0なら等倍 scaleY 拡大率Y。 1.0なら等倍 scaleZ 拡大率Z。 1.0なら等倍 rotX X軸を中心とする回転角度[rad] rotY Y軸を中心とする回転角度[rad] rotZ Z軸を中心とする回転角度[rad] transX 位置X transY 位置Y transZ 位置Z
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func mat(mat_: []float, normMat: []float) | |
mat_ | 変換行列 |
normMat | 法線の変換行列 |
発生条件 | ビルド | 例外コード |
---|---|---|
mat_もしくはnormMatの要素数が16でない | dbgのみ | 0xE9170006 |
3Dオブジェクトの拡縮、回転、位置を設定するメソッドです。
func pos(scaleX: float, scaleY: float, scaleZ: float, rotX: float, rotY: float, rotZ: float, transX: float, transY: float, transZ: float) | |
scaleX | 拡大率X。 1.0なら等倍 |
scaleY | 拡大率Y。 1.0なら等倍 |
scaleZ | 拡大率Z。 1.0なら等倍 |
rotX | X軸を中心とする回転角度[rad] |
rotY | Y軸を中心とする回転角度[rad] |
rotZ | Z軸を中心とする回転角度[rad] |
transX | 位置X |
transY | 位置Y |
transZ | 位置Z |
変換の処理は、引数の順序と同じく、拡大、回転X、回転Y、回転Z、位置の順に行います。
draw@Particle
パーティクルのクラスです。
GPUで位置などを計算するため大量の画像を高速に描画できます。
draw@Particle.draw2d
パーティクルを2D描画するメソッドです。
func draw2d(tex: @Tex)
tex テクスチャ。 nullを渡してはならない
この関数を呼びたび、パーティクルの位置や大きさなどは更新されます。
draw@Particle.emit
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float)
x 位置X y 位置Y z 位置Z veloX 速度X veloY 速度Y veloZ 速度Z size 大きさ sizeVelo 大きさの速度 rot 回転 rotVelo 回転の速度
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func draw2d(tex: @Tex) | |
tex | テクスチャ。 nullを渡してはならない |
パーティクルを放出するメソッドです。
func emit(x: float, y: float, z: float, veloX: float, veloY: float, veloZ: float, size: float, sizeVelo: float, rot: float, rotVelo: float) | |
x | 位置X |
y | 位置Y |
z | 位置Z |
veloX | 速度X |
veloY | 速度Y |
veloZ | 速度Z |
size | 大きさ |
sizeVelo | 大きさの速度 |
rot | 回転 |
rotVelo | 回転の速度 |
放出したパーティクルは描画するたびに位置や大きさなどを更新します。
draw@Particle.fin
パーティクルのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Particleクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Sampler
サンプラーを表す列挙型です。
名前 説明 %linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる %point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる
draw@Shadow
影のクラスです。
draw@Shadow.add
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float)
obj 影を生み出すオブジェクト element 複数のオブジェクトが含まれている場合の要素番号 frame アニメーションフレーム
発生条件 ビルド 例外コード elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ 0xE9170006 frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい dbgのみ 0xE9170006 オブジェクトのジョイント数が0より小さい、もしくは256より大きい dbgおよびrls 0xE9170008
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func fin() |
名前 | 説明 |
---|---|
%linear | 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる |
%point | 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる |
影の情報を追加するメソッドです。
func add(obj: draw@Obj, element: int, frame: float) | |
obj | 影を生み出すオブジェクト |
element | 複数のオブジェクトが含まれている場合の要素番号 |
frame | アニメーションフレーム |
発生条件 | ビルド | 例外コード |
---|---|---|
elementの値が0未満、もしくは存在しているオブジェクト数以上 | dbgのみ | 0xE9170006 |
frameの値がアニメーションの開始フレームより小さい、もしくは終了フレームより大きい | dbgのみ | 0xE9170006 |
オブジェクトのジョイント数が0より小さい、もしくは256より大きい | dbgおよびrls | 0xE9170008 |
draw@Shadow.beginRecord
影の記録を開始するメソッドです。
func beginRecord(x: float, y: float, z: float, radius: float)
x 影を記録する範囲の中心X y 影を記録する範囲の中心Y z 影を記録する範囲の中心Z radius 影を記録する範囲の半径
指定した球の範囲で、平行光の方向に影が落ちるように記録します。
発生条件 ビルド 例外コード radiusが0以下 dbgのみ 0xE9170006
draw@Shadow.endRecord
影の記録を終了するメソッドです。
func endRecord()
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func beginRecord(x: float, y: float, z: float, radius: float) | |
x | 影を記録する範囲の中心X |
y | 影を記録する範囲の中心Y |
z | 影を記録する範囲の中心Z |
radius | 影を記録する範囲の半径 |
発生条件 | ビルド | 例外コード |
---|---|---|
radiusが0以下 | dbgのみ | 0xE9170006 |
影の記録を終了するメソッドです。
func endRecord() |
draw@Shadow.fin
影のリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Shadowクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex
テクスチャのクラスです。
draw@Tex.draw
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func fin() |
テクスチャを描画するメソッドです。
func draw(dstX: float, dstY: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int) | |
dstX | 描画先の左端座標 |
dstY | 描画先の上端座標 |
srcX | 描画元の左端座標 |
srcY | 描画元の上端座標 |
srcW | 描画元の幅 |
srcH | 描画元の高さ |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
draw@Tex.drawRot
テクスチャを拡縮および回転描画するメソッドです。
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ centerX 回転中心座標X centerY 回転中心座標Y angle 回転角度[rad] color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.drawScale
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int)
dstX 描画先の左端座標 dstY 描画先の上端座標 dstW 描画先の幅 dstH 描画先の高さ srcX 描画元の左端座標 srcY 描画元の上端座標 srcW 描画元の幅 srcH 描画元の高さ color 色(sRGB)
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func drawRot(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, centerX: float, centerY: float, angle: float, color: int) | |
dstX | 描画先の左端座標 |
dstY | 描画先の上端座標 |
dstW | 描画先の幅 |
dstH | 描画先の高さ |
srcX | 描画元の左端座標 |
srcY | 描画元の上端座標 |
srcW | 描画元の幅 |
srcH | 描画元の高さ |
centerX | 回転中心座標X |
centerY | 回転中心座標Y |
angle | 回転角度[rad] |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
テクスチャを拡縮描画するメソッドです。
func drawScale(dstX: float, dstY: float, dstW: float, dstH: float, srcX: float, srcY: float, srcW: float, srcH: float, color: int) | |
dstX | 描画先の左端座標 |
dstY | 描画先の上端座標 |
dstW | 描画先の幅 |
dstH | 描画先の高さ |
srcX | 描画元の左端座標 |
srcY | 描画元の上端座標 |
srcW | 描画元の幅 |
srcH | 描画元の高さ |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
draw@Tex.fin
テクスチャのリソースを解放するメソッドです。
func fin()
計算量:
既にリソースが解放されているとき、このメソッドは何もしません。
リソースはdraw@Texクラスのインスタンスが解放されるときに自動で解放されますが、解放のタイミングをコントロールしたいときにこのメソッドを使います。
draw@Tex.height
テクスチャの高さを取得するメソッドです。
func height(): int
戻り値 テクスチャの高さ
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func fin() |
テクスチャの高さを取得するメソッドです。
func height(): int | |
戻り値 | テクスチャの高さ |
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の高さを取得したい場合はimgHeightメソッドをお使いください。
draw@Tex.imgHeight
画像部分の高さを取得するメソッドです。 実際にメモリ上に確保されたテクスチャの高さを取得したい場合はheightメソッドをお使いください。
func imgHeight(): int
戻り値 画像部分の高さ
draw@Tex.imgWidth
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int
戻り値 画像部分の幅
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func imgHeight(): int | |
戻り値 | 画像部分の高さ |
画像部分の幅を取得するメソッドです。 実際にメモリ上に確保されたテクスチャの幅を取得したい場合はwidthメソッドをお使いください。
func imgWidth(): int | |
戻り値 | 画像部分の幅 |
draw@Tex.width
テクスチャの幅を取得するメソッドです。
func width(): int
戻り値 テクスチャの幅
ハードウェアの制約を考慮して調整された、メモリ上に確保されたテクスチャのサイズが返ります。 画像部分の幅を取得したい場合はimgWidthメソッドをお使いください。
draw@ambLight
環境光を設定する関数です。
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float)
topR 空の色の赤成分 topG 空の色の緑成分 topB 空の色の青成分 bottomR 地面の色の赤成分 bottomG 地面の色の緑成分 bottomB 地面の色の青成分
環境光とは、物体に当たって反射した光が周囲を照らす間接光を近似したものです。 ポリゴンが上を向いているほど空の色の影響を受け、下を向いているほど地面の色の影響を受けます。
アプリ起動時には、topRは0.05、topGは0.05、topBは0.08、bottomRは0.08、bottomGは0.05、bottomBは0.05に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@argbToColor
リニア空間の色をsRGB空間の色に変換する関数です。
func argbToColor(a: float, r: float, g: float, b: float): int
a アルファ r 赤 g 緑 b 青 戻り値 sRGB空間の色
draw@autoClear
draw@render時にクリアするかどうかを設定する関数です。
func autoClear(enabled: bool)
enabled draw@render時にクリアするならtrue、しないならfalse
ドローコントロールごとに設定します。 ドローコントロールを作成したときの初期値はtrueです。
draw@black
黒色(#000000)を表す定数です。
const black: int :: 0xFF000000
draw@blend
ブレンドを設定する関数です。
func blend(kind: draw@Blend)
kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@camera
カメラを設定する関数です。
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float)
eyeX 視線の位置X eyeY 視線の位置Y eyeZ 視線の位置Z atX 注視点の位置X atY 注視点の位置Y atZ 注視点の位置Z upX カメラの上方向X upY カメラの上方向Y upZ カメラの上方向Z
カメラが視線の位置に移動して、注視点を向くように設定されます。
upX、upY、upZはカメラの上面が向いている向きを表します。 カメラの上面が空の方向を向いている場合にはそれぞれ0.0、1.0、0.0になります。
アプリ起動時には、eyeXは0.0、eyeYは0.0、eyeZは10.0、atXは0.0、atYは0.0、atZは0.0、upXは0.0、upYは1.0、upZは0.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
この関数は、設定できない値が渡されたときには何もせずに抜けます。
draw@capture
画面をキャプチャして画像ファイルに保存する関数です。
func capture(path: []char): bool
path 保存する画像ファイルのパス 戻り値 成功したらtrue、失敗したらfalse
この関数は処理に時間がかかります。
draw@circle
塗りつぶされた円を描画する関数です。
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@circle関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@circleLine
円の枠線を描画する関数です。
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int)
x 中心のX座標 y 中心のY座標 radiusX 半径X radiusY 半径Y color 色(sRGB)
本関数は高速に円が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@circleLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@clear
画面をクリアする関数です。
func clear()
デフォルトでは、draw@renderを呼ぶたびに自動でクリアされますが、draw@autoClear(false)を呼んでいたり、特定のタイミングでクリアしたいときに使います。
draw@clearColor
画面クリアの色を設定する関数です。
func clearColor(color: int)
color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@cnt
フレームの回数を取得する関数です。
func cnt(): int
戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。
draw@colorToArgb
sRGB空間の色をリニア空間の色に変換する関数です。
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int)
a アルファを格納する変数 r 赤を格納する変数 g 緑を格納する変数 b 青を格納する変数 color sRGB空間の色
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@depth
デプスバッファを設定する関数です。
func depth(test: bool, write: bool)
test デプステストを有効にするにはtrue、無効にするにはfalse write デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse
testがtrueの場合、これから描画する物体のカメラから見た奥行きが、既に描画されている物体の奥行きと同じかそれよりも奥の場合、描画をスキップします。 「既に描画されている物体の奥行き」とは、writeをtrueにして描画した物体のみが該当します。
writeがtrueの場合、描画時にその物体の奥行き情報を記録します。
2Dのものを描画するときは通常、testはfalse、writeはfalseに設定し、3Dのものを描画するときは通常、testはtrue、writeはtrueに設定すると良いでしょう。
アプリ起動時にはtestはfalse、writeはfalseに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@dirLight
平行光を設定する関数です。
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float)
atX 光を照らす方向X atY 光を照らす方向Y atZ 光を照らす方向Z r 光の赤成分 g 光の緑成分 b 光の青成分
平行光とは、無限遠から直線的に照らす、太陽光に相当する光です。
アプリ起動時には、atXは1.0、atYは-1.0、atZは-1.0、rは2.0、gは2.0、bは2.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@editPixels
func editPixels(callback: func<(int, int, []bit32)>)
callback コールバック関数
callback
ピクセル単位で画面を編集する関数です。
func callback(width: int, height: int, buf: []bit32)
width テクスチャの幅 height テクスチャの高さ buf テクスチャのピクセルが格納されたバッファ
この関数は、wnd@makeDrawEditableで作成したドローコントロールにのみ使えます。
callbackが呼ばれたら、callback内でbufを読み書きすることで編集できます。 callbackを抜けるとbufの中身がテクスチャに書き戻されます。
この関数は処理にやや時間がかかります。
発生条件 ビルド 例外コード wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した dbgのみ 0xE917000A
draw@filterMonotone
画面全体をモノトーンにするフィルターを設定する関数です。
func filterMonotone(color: int, rate: float)
color モノトーンの色(sRGB) rate ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン)
rateが0.0より小さければ0.0に、1.0より大きければ1.0にクランプされます。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@filterNone
フィルターを無効化する関数です。
func filterNone()
フィルターは一度設定すると永続的に反映されるため、本関数で明示的に解除する必要があります。 操作対象のドローコントロールを切り替えても設定が引き継がれます。
draw@line
線分を描画する関数です。
func line(x1: float, y1: float, x2: float, y2: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 color 色(sRGB)
本関数は高速に線分が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@line関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@makeBox
立方体の3Dオブジェクトを作成する関数です。
func makeBox(): draw@Obj
戻り値 立方体の3Dオブジェクトのインスタンス
原点が(0,0,0)、1辺の長さが1の立方体です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeFont
フォントクラスのインスタンスを生成する関数です。
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font
fontName フォント名。 nullを指定すると「Meiryo UI」となる size フォントサイズ bold 太字にする場合はtrue、しない場合はfalse italic 斜体にする場合はtrue、しない場合はfalse proportional プロポーショナルにする場合はtrue、等幅にする場合はfalse advance 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある 戻り値 フォントクラスのインスタンス
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。
発生条件 ビルド 例外コード sizeが1未満 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeObj
3Dオブジェクトをファイルから作成する関数です。
func makeObj(path: []char): draw@Obj
path 3Dオブジェクトファイルのパス(.knobj) 戻り値 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件 ビルド 例外コード pathのファイルが開けない dbgおよびrls 0xE9170007 3Dオブジェクトファイルが読み込めない形式になっている dbgおよびrls 0xE9170008
draw@makeParticle
パーティクルを作成する関数です。
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle
lifeSpan 寿命 color1 放出時の色(sRGB) color2 消失時の色(sRGB) friction 摩擦 accelX 加速度X accelY 加速度Y accelZ 加速度Z sizeAccel サイズの加速度 rotAccel 回転の加速度 戻り値 パーティクルクラスのインスタンス。 生成に失敗したらnullが返る
発生条件 ビルド 例外コード lifeSpanが0以下 dbgのみ 0xE9170006 frictionが0より小さい dbgのみ 0xE9170006
draw@makePlane
正方形の3Dオブジェクトを作成する関数です。
func makePlane(): draw@Obj
戻り値 正方形の3Dオブジェクトのインスタンス
X-Z平面上にある、原点が(0,0,0)、1辺の長さが1の正方形です。 つまり(-0.5,0,-0.5)から(0.5,0,0.5)の領域にちょうど収まっています。
draw@makeShadow
影を作成する関数です。
func makeShadow(width: int, height: int): draw@Shadow
width 影用のテクスチャの幅 height 影用のテクスチャの高さ 戻り値 影クラスのインスタンス
影用のテクスチャのサイズが大きいほど滑らかで綺麗な影になります。
発生条件 ビルド 例外コード 影の作成に失敗 dbgおよびrls 0xE9170009
draw@makeSphere
球の3Dオブジェクトを作成する関数です。
func makeSphere(): draw@Obj
戻り値 球の3Dオブジェクトのインスタンス
原点が(0,0,0)、直径が1の球です。 つまり(-0.5,-0.5,-0.5)から(0.5,0.5,0.5)の領域にちょうど収まっています。
draw@makeTex
テクスチャを画像ファイルから作成する関数です。
func makeTex(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexArgb
テクスチャを画像ファイルからリニアカラーで作成する関数です。
func makeTexArgb(path: []char): draw@Tex
path 画像のファイルパス(.png、.jpg、.dds) 戻り値 テクスチャクラスのインスタンス
通常の画像ファイルはsRGBカラーなためmakeTex関数でテクスチャを作成します。 この関数は法線マップなど、色ではなく数値の情報を書き込んだ画像ファイルを読み込むときに使います。
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」ファイルは、各チャンネル8ビットのカラーおよびグレースケールにのみ対応しています。 アルファチャンネルおよびインターレースは、あり、なしの両方に対応しています。
「.jpg」ファイルは、ベースライン形式にのみ対応しています。 保存時に「プログレッシブ」ではなく「ベースライン」で保存してください。
発生条件 ビルド 例外コード ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ 0xE9170006 pathのファイルが開けない dbgおよびrls 0xE9170007 画像ファイルが読み込めない形式になっている dbgおよびrls 0xE9170008 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenArgb
均一な色のテクスチャをリニアカラーで作成する関数です。
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex
a アルファ r 赤 g 緑 b 青 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@makeTexEvenColor
均一な色のテクスチャを作成する関数です。
func makeTexEvenColor(color: int): draw@Tex
color 色(sRGB) 戻り値 テクスチャクラスのインスタンス
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006 テクスチャの生成に失敗 dbgおよびrls 0xE9170009
draw@proj
プロジェクションを設定する関数です。
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float)
fovy 縦の画角 aspectX アスペクト比X aspectY アスペクト比Y nearZ カメラからニアクリップ面までの距離 farZ カメラからファークリップ面までの距離
カメラで撮影したものを画面に転送する方法を設定する関数です。
fovyはカメラの縦の画角で、大きくなるほど広角になり、小さくなるほど望遠になります。
aspectX、aspectYは画面のアスペクト比です。 16:9の画面ならaspectXには16.0、aspectYには9.0を設定します。
nearZ、farZはクリップ面の設定で、カメラからの奥行きがnearZからfarZの範囲に無いものは描画しません。 奥行きの値を有限範囲にしておくと様々な場面で役に立つため、便宜上設定します。 nearZは0.0にはできません。
アプリ起動時には、fovyは27°(50mmレンズの画角に相当)、aspectXは16.0、aspectYは9.0、nearZは0.01、farZは1000.0に設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード fovyが0以下、もしくは以上 dbgのみ 0xE9170006 aspectXもしくはaspectYが0以下 dbgのみ 0xE9170006 nearZが0以下、もしくはnearZがfarZ以上 dbgのみ 0xE9170006
draw@rect
塗りつぶされた四角形を描画する関数です。
func rect(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@rect関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@rectLine
四角形の枠線を描画する関数です。
func rectLine(x: float, y: float, width: float, height: float, color: int)
x 左端座標 y 上端座標 width 幅 height 高さ color 色(sRGB)
本関数は高速に四角形が描画できますが、アンチエイリアス処理は行わず、線の太さも指定できません。 単純な描画を行いたいとき以外では、draw2d@rectLine関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@render
バックバッファをフロントバッファへ転送する関数です。
func render(fps: int)
fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
発生条件 ビルド 例外コード fpsの値が「0、30、60」以外の値 dbgのみ 0xE9170006
draw@sampler
サンプラーを設定する関数です。
func sampler(kind: draw@Sampler)
kind サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。 また操作対象のドローコントロールを切り替えても設定が引き継がれます。
発生条件 ビルド 例外コード kindの値が有効範囲外 dbgのみ 0xE9170006
draw@screenHeight
スクリーンの幅を取得する関数です。
func screenHeight(): int
戻り値 スクリーンの幅
ドローコントロールの幅ではなく、描画先のテクスチャの幅を返します。
draw@screenWidth
スクリーンの高さを取得する関数です。
func screenWidth(): int
戻り値 スクリーンの高さ
ドローコントロールの高さではなく、描画先のテクスチャの高さを返します。
draw@target
描画ターゲットとするドローコントロールを指定する関数です。
func target(drawCtrl: wnd@Draw)
drawCtrl ドローコントロール。 nullを渡してはならない
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。
描画ターゲットが切り替わるタイミングは、draw@target関数により明示的に設定したとき、ドローコントロールを作成したとき、wnd@Draw.onPaintイベントが呼ばれるときです。
draw@tri
塗りつぶされた三角形を描画する関数です。
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int)
x1 頂点1のX座標 y1 頂点1のY座標 x2 頂点2のX座標 y2 頂点2のY座標 x3 頂点3のX座標 y3 頂点3のY座標 color 色(sRGB)
本関数は高速に三角形が描画できますが、アンチエイリアス処理は行いません。 単純な描画を行いたいとき以外では、draw2d@tri関数をお使いください。
発生条件 ビルド 例外コード colorの値が有効範囲外 dbgのみ 0xE9170006
draw@white
白色(#FFFFFF)を表す定数です。
const white: int :: 0xFFFFFFFF
func width(): int | |
戻り値 | テクスチャの幅 |
func ambLight(topR: float, topG: float, topB: float, bottomR: float, bottomG: float, bottomB: float) | |
topR | 空の色の赤成分 |
topG | 空の色の緑成分 |
topB | 空の色の青成分 |
bottomR | 地面の色の赤成分 |
bottomG | 地面の色の緑成分 |
bottomB | 地面の色の青成分 |
func argbToColor(a: float, r: float, g: float, b: float): int | |
a | アルファ |
r | 赤 |
g | 緑 |
b | 青 |
戻り値 | sRGB空間の色 |
func autoClear(enabled: bool) | |
enabled | draw@render時にクリアするならtrue、しないならfalse |
const black: int :: 0xFF000000 |
func blend(kind: draw@Blend) | |
kind | ブレンドの種類 |
発生条件 | ビルド | 例外コード |
---|---|---|
kindの値が有効範囲外 | dbgのみ | 0xE9170006 |
func camera(eyeX: float, eyeY: float, eyeZ: float, atX: float, atY: float, atZ: float, upX: float, upY: float, upZ: float) | |
eyeX | 視線の位置X |
eyeY | 視線の位置Y |
eyeZ | 視線の位置Z |
atX | 注視点の位置X |
atY | 注視点の位置Y |
atZ | 注視点の位置Z |
upX | カメラの上方向X |
upY | カメラの上方向Y |
upZ | カメラの上方向Z |
func capture(path: []char): bool | |
path | 保存する画像ファイルのパス |
戻り値 | 成功したらtrue、失敗したらfalse |
func circle(x: float, y: float, radiusX: float, radiusY: float, color: int) | |
x | 中心のX座標 |
y | 中心のY座標 |
radiusX | 半径X |
radiusY | 半径Y |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
func circleLine(x: float, y: float, radiusX: float, radiusY: float, color: int) | |
x | 中心のX座標 |
y | 中心のY座標 |
radiusX | 半径X |
radiusY | 半径Y |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
func clear() |
func clearColor(color: int) | |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
func cnt(): int | |
戻り値 | フレームの回数 |
func colorToArgb(a: &float, r: &float, g: &float, b: &float, color: int) | |
a | アルファを格納する変数 |
r | 赤を格納する変数 |
g | 緑を格納する変数 |
b | 青を格納する変数 |
color | sRGB空間の色 |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
func depth(test: bool, write: bool) | |
test | デプステストを有効にするにはtrue、無効にするにはfalse |
write | デプスバッファへの書き込みを有効にするにはtrue、無効にするにはfalse |
func dirLight(atX: float, atY: float, atZ: float, r: float, g: float, b: float) | |
atX | 光を照らす方向X |
atY | 光を照らす方向Y |
atZ | 光を照らす方向Z |
r | 光の赤成分 |
g | 光の緑成分 |
b | 光の青成分 |
func editPixels(callback: func<(int, int, []bit32)>) | |
callback | コールバック関数 |
func callback(width: int, height: int, buf: []bit32) | |
width | テクスチャの幅 |
height | テクスチャの高さ |
buf | テクスチャのピクセルが格納されたバッファ |
発生条件 | ビルド | 例外コード |
---|---|---|
wnd@makeDrawEditable以外で作成したドローコントロールに対して呼び出した | dbgのみ | 0xE917000A |
func filterMonotone(color: int, rate: float) | |
color | モノトーンの色(sRGB) |
rate | ブレンド率(0.0なら元の画像、1.0なら完全なモノトーン) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
func filterNone() |
func line(x1: float, y1: float, x2: float, y2: float, color: int) | |
x1 | 頂点1のX座標 |
y1 | 頂点1のY座標 |
x2 | 頂点2のX座標 |
y2 | 頂点2のY座標 |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
func makeBox(): draw@Obj | |
戻り値 | 立方体の3Dオブジェクトのインスタンス |
func makeFont(fontName: []char, size: int, bold: bool, italic: bool, proportional: bool, advance: float): draw@Font | |
fontName | フォント名。 nullを指定すると「Meiryo UI」となる |
size | フォントサイズ |
bold | 太字にする場合はtrue、しない場合はfalse |
italic | 斜体にする場合はtrue、しない場合はfalse |
proportional | プロポーショナルにする場合はtrue、等幅にする場合はfalse |
advance | 文字の間隔。 プロポーショナルの場合は0.0にすると自然な見た目になり、0.0から増減させることで間隔が調整できる。 等幅の場合は0.0にするとすべての文字が重なるため、文字幅の値を指定する必要がある |
戻り値 | フォントクラスのインスタンス |
発生条件 | ビルド | 例外コード |
---|---|---|
sizeが1未満 | dbgのみ | 0xE9170006 |
テクスチャの生成に失敗 | dbgおよびrls | 0xE9170009 |
func makeObj(path: []char): draw@Obj | |
path | 3Dオブジェクトファイルのパス(.knobj) |
戻り値 | 3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る |
発生条件 | ビルド | 例外コード |
---|---|---|
pathのファイルが開けない | dbgおよびrls | 0xE9170007 |
3Dオブジェクトファイルが読み込めない形式になっている | dbgおよびrls | 0xE9170008 |
func makeParticle(lifeSpan: int, color1: int, color2: int, friction: float, accelX: float, accelY: float, accelZ: float, sizeAccel: float, rotAccel: float): draw@Particle | |
lifeSpan | 寿命 |
color1 | 放出時の色(sRGB) |
color2 | 消失時の色(sRGB) |
friction | 摩擦 |
accelX | 加速度X |
accelY | 加速度Y |
accelZ | 加速度Z |
sizeAccel | サイズの加速度 |
rotAccel | 回転の加速度 |
戻り値 | パーティクルクラスのインスタンス。 生成に失敗したらnullが返る |
発生条件 | ビルド | 例外コード |
---|---|---|
lifeSpanが0以下 | dbgのみ | 0xE9170006 |
frictionが0より小さい | dbgのみ | 0xE9170006 |
func makePlane(): draw@Obj | |
戻り値 | 正方形の3Dオブジェクトのインスタンス |
func makeShadow(width: int, height: int): draw@Shadow | |
width | 影用のテクスチャの幅 |
height | 影用のテクスチャの高さ |
戻り値 | 影クラスのインスタンス |
発生条件 | ビルド | 例外コード |
---|---|---|
影の作成に失敗 | dbgおよびrls | 0xE9170009 |
func makeSphere(): draw@Obj | |
戻り値 | 球の3Dオブジェクトのインスタンス |
func makeTex(path: []char): draw@Tex | |
path | 画像のファイルパス(.png、.jpg、.dds) |
戻り値 | テクスチャクラスのインスタンス |
発生条件 | ビルド | 例外コード |
---|---|---|
ファイルの拡張子が「.png、.jpg、.dds」以外 | dbgのみ | 0xE9170006 |
pathのファイルが開けない | dbgおよびrls | 0xE9170007 |
画像ファイルが読み込めない形式になっている | dbgおよびrls | 0xE9170008 |
テクスチャの生成に失敗 | dbgおよびrls | 0xE9170009 |
func makeTexArgb(path: []char): draw@Tex | |
path | 画像のファイルパス(.png、.jpg、.dds) |
戻り値 | テクスチャクラスのインスタンス |
発生条件 | ビルド | 例外コード |
---|---|---|
ファイルの拡張子が「.png、.jpg、.dds」以外 | dbgのみ | 0xE9170006 |
pathのファイルが開けない | dbgおよびrls | 0xE9170007 |
画像ファイルが読み込めない形式になっている | dbgおよびrls | 0xE9170008 |
テクスチャの生成に失敗 | dbgおよびrls | 0xE9170009 |
func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex | |
a | アルファ |
r | 赤 |
g | 緑 |
b | 青 |
戻り値 | テクスチャクラスのインスタンス |
発生条件 | ビルド | 例外コード |
---|---|---|
テクスチャの生成に失敗 | dbgおよびrls | 0xE9170009 |
func makeTexEvenColor(color: int): draw@Tex | |
color | 色(sRGB) |
戻り値 | テクスチャクラスのインスタンス |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
テクスチャの生成に失敗 | dbgおよびrls | 0xE9170009 |
func proj(fovy: float, aspectX: float, aspectY: float, nearZ: float, farZ: float) | |
fovy | 縦の画角 |
aspectX | アスペクト比X |
aspectY | アスペクト比Y |
nearZ | カメラからニアクリップ面までの距離 |
farZ | カメラからファークリップ面までの距離 |
発生条件 | ビルド | 例外コード |
---|---|---|
fovyが0以下、もしくは以上 | dbgのみ | 0xE9170006 |
aspectXもしくはaspectYが0以下 | dbgのみ | 0xE9170006 |
nearZが0以下、もしくはnearZがfarZ以上 | dbgのみ | 0xE9170006 |
func rect(x: float, y: float, width: float, height: float, color: int) | |
x | 左端座標 |
y | 上端座標 |
width | 幅 |
height | 高さ |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
func rectLine(x: float, y: float, width: float, height: float, color: int) | |
x | 左端座標 |
y | 上端座標 |
width | 幅 |
height | 高さ |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
func render(fps: int) | |
fps | 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし |
発生条件 | ビルド | 例外コード |
---|---|---|
fpsの値が「0、30、60」以外の値 | dbgのみ | 0xE9170006 |
func sampler(kind: draw@Sampler) | |
kind | サンプラーの種類 |
発生条件 | ビルド | 例外コード |
---|---|---|
kindの値が有効範囲外 | dbgのみ | 0xE9170006 |
func screenHeight(): int | |
戻り値 | スクリーンの幅 |
func screenWidth(): int | |
戻り値 | スクリーンの高さ |
func target(drawCtrl: wnd@Draw) | |
drawCtrl | ドローコントロール。 nullを渡してはならない |
func tri(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, color: int) | |
x1 | 頂点1のX座標 |
y1 | 頂点1のY座標 |
x2 | 頂点2のX座標 |
y2 | 頂点2のY座標 |
x3 | 頂点3のX座標 |
y3 | 頂点3のY座標 |
color | 色(sRGB) |
発生条件 | ビルド | 例外コード |
---|---|---|
colorの値が有効範囲外 | dbgのみ | 0xE9170006 |
const white: int :: 0xFFFFFFFF |