2021年11月28日くいなちゃん


プログラミング言語Kuin」の実行環境がexe用のAPIリファレンスページです。
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)

height1行の高さ
初期値ではフォントの情報をもとに自然な高さに設定されています。

 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およびrls0xE9170008

 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およびrls0xE9170008

 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およびrls0xE9170008
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およびrls0xE9170008

 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およびrls0xE9170008

 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およびrls0xE9170008

 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なら等倍
rotXX軸を中心とする回転角度[rad]
rotYY軸を中心とする回転角度[rad]
rotZZ軸を中心とする回転角度[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およびrls0xE9170008

 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)

enableddraw@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青を格納する変数
colorsRGB空間の色
発生条件ビルド例外コード
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およびrls0xE9170009

 draw@makeObj

3Dオブジェクトをファイルから作成する関数です。

func makeObj(path: []char): draw@Obj

path3Dオブジェクトファイルのパス(.knobj)
戻り値3Dオブジェクトクラスのインスタンス。 ファイルが開けない場合nullが返る
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。
発生条件ビルド例外コード
pathのファイルが開けないdbgおよびrls0xE9170007
3Dオブジェクトファイルが読み込めない形式になっているdbgおよびrls0xE9170008

 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およびrls0xE9170009

 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およびrls0xE9170007
画像ファイルが読み込めない形式になっているdbgおよびrls0xE9170008
テクスチャの生成に失敗dbgおよびrls0xE9170009

 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およびrls0xE9170007
画像ファイルが読み込めない形式になっているdbgおよびrls0xE9170008
テクスチャの生成に失敗dbgおよびrls0xE9170009

 draw@makeTexEvenArgb

均一な色のテクスチャをリニアカラーで作成する関数です。

func makeTexEvenArgb(a: float, r: float, g: float, b: float): draw@Tex

aアルファ
r
g
b
戻り値テクスチャクラスのインスタンス
発生条件ビルド例外コード
テクスチャの生成に失敗dbgおよびrls0xE9170009

 draw@makeTexEvenColor

均一な色のテクスチャを作成する関数です。

func makeTexEvenColor(color: int): draw@Tex

color色(sRGB)
戻り値テクスチャクラスのインスタンス
発生条件ビルド例外コード
colorの値が有効範囲外dbgのみ0xE9170006
テクスチャの生成に失敗dbgおよびrls0xE9170009

 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

1638067748jaf