Home English

Kuina-chan

くいなちゃんOct 17, 2017


プログラミング言語Kuin」の「drawライブラリ」についてです。

drawライブラリ

グラフィックスを描画するライブラリ「draw.kn」を解説します。
drawライブラリは、コンパイルオプションの実行環境が「wnd(ウインドウアプリ)」のときのみ使用可能です。
色をintで扱っている箇所ではsRGB空間になっており、floatで扱っている箇所ではリニア空間になっています。 通常はsRGB空間のintで指定し、色以外の情報を色として扱う場合にはリニア空間のfloatで指定してください。
int(sRGB)で色を指定する場合、例えば「16#FF123456」と指定すると、アルファ=FF、赤=12、緑=34、青=56となります。
drawライブラリに用意されているものはdrawライブラリの通りです。
drawライブラリ
名前 説明
draw@ambLight 環境光を設定する関数
draw@black 黒色(#000000)を表す定数
draw@blend ブレンドを設定する関数
draw@camera カメラを設定する関数
draw@circle 円を描画する関数
draw@clearColor 画面クリアの色を設定する関数
draw@cnt フレームの回数を取得する関数
draw@depth デプスバッファを設定する関数
draw@dirLight 平行光を設定する関数
draw@line 線分を描画する関数
draw@makeFont フォントクラスのインスタンスを生成する関数
draw@makeObj 3Dオブジェクトをファイルから作成する関数
draw@makeTex テクスチャを画像ファイルから作成する関数
draw@makeTexEvenColor 均一な色のテクスチャをsRGBカラーから作成する関数
draw@makeTexEvenRgba 均一な色のテクスチャをリニアカラーから作成する関数
draw@proj プロジェクションを設定する関数
draw@rect 四角形を描画する関数
draw@rectLine 四角形の枠線を描画する関数
draw@render バックバッファをフロントバッファへ転送する関数
draw@resetViewport ビューポートをリセットする関数
draw@sampler サンプラーを設定する関数
draw@target 描画ターゲットとするドローコントロールを指定する関数
draw@tri 三角形を描画する関数
draw@viewport ビューポートを設定する関数
draw@white 白色(#FFFFFF)を表す定数
draw@Blend ブレンドを表す列挙型
draw@Font フォントクラス
draw@Obj 3Dオブジェクトクラス
draw@Sampler サンプラーを表す列挙型
draw@Tex テクスチャクラス

draw@ambLight

「draw@ambLight」は環境光を設定する関数です(draw@ambLight関数の定義)。
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@black

「draw@black」は黒色(#000000)を表す定数です(draw@black定数の定義)。
draw@black定数の定義

 const black: int :: 16#FF000000

draw@blend

「draw@blend」は描画時のブレンドを設定する関数です(draw@blend関数の定義)。
draw@blend関数の定義

 func blend(kind: draw@Blend)

kind ブレンドの種類
アプリ起動時には%alphaに設定されています。
この関数は一度設定すると効果が持続します。
「draw@blend」が生成する例外はdraw@blend関数の例外の通りです。
draw@blend関数の例外
発生条件 ビルド 例外コード
(16進数)
kindの値が有効範囲外 dbgのみ E9170006

draw@camera

「draw@camera」はカメラを設定する関数です(draw@camera関数の定義)。
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@circle

「draw@circle」は塗りつぶされた円を描画する関数です(draw@circle関数の定義)。
draw@circle関数の定義

 func circle(x: float, y: float, radiusX: float, radiusY: float, color: int)

x 中心のX座標
y 中心のY座標
radiusX 半径X
radiusY 半径Y
color 色(sRGB)
「draw@circle」が生成する例外はdraw@circle関数の例外の通りです。
draw@circle関数の例外
発生条件 ビルド 例外コード
(16進数)
colorの値が有効範囲外 dbgのみ E9170006

draw@clearColor

「draw@clearColor」は画面クリアの色を設定する関数です(draw@clearColor関数の定義)。
draw@clearColor関数の定義

 func clearColor(color: int)

color 色(sRGB)
画面クリアは、バックバッファをフロントバッファに転送するたびに、自動でバックバッファに対して行われます。
「draw@clearColor」が生成する例外はdraw@clearColor関数の例外の通りです。
draw@clearColor関数の例外
発生条件 ビルド 例外コード
(16進数)
colorの値が有効範囲外 dbgのみ E9170006

draw@cnt

「draw@cnt」はフレームの回数を取得する関数です(draw@cnt関数の定義)。
draw@cnt関数の定義

 func cnt(): int

戻り値 フレームの回数
フレームの回数とは、draw@render関数を引数が0以外で呼び出した回数のことです。 この値は1フレームごとに1ずつ増えますので、アニメーションなどの表現に利用できます。

draw@depth

「draw@depth」はデプスバッファを設定する関数です(draw@depth関数の定義)。
draw@depth関数の定義

 func depth(test: bool, write: bool)

text デプステストを有効にするには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

「draw@dirLight」は平行光を設定する関数です(draw@dirLight関数の定義)。
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@line

「draw@line」は線分を描画する関数です(draw@line関数の定義)。
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)
「draw@line」が生成する例外はdraw@line関数の例外の通りです。
draw@line関数の例外
発生条件 ビルド 例外コード
(16進数)
colorの値が有効範囲外 dbgのみ E9170006

draw@makeFont

「draw@makeFont」はフォントクラスのインスタンスを生成する関数です(draw@makeFont関数の定義)。
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にするとすべての文字が重なるため、文字幅の値を指定する必要がある
戻り値 フォントクラスのインスタンス
「draw@makeFont」が生成する例外はdraw@makeFont関数の例外の通りです。
draw@makeFont関数の例外
発生条件 ビルド 例外コード
(16進数)
sizeが1未満 dbgのみ E9170006
テクスチャの生成に失敗 dbg、rls E9170009
指定したフォントが存在しなかった場合は、OSによって適当なフォントが自動的に選ばれます。

draw@makeObj

「draw@makeObj」は3Dオブジェクトクラスのインスタンスをファイルから生成する関数です(draw@makeObj関数の定義)。
draw@makeObj関数の定義

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

path 3Dオブジェクトファイルのパス(.knobj)
戻り値 3Dオブジェクトクラスのインスタンス
「.knobj」ファイルは、処理速度を最適化したKuinの独自形式です。 knobjファイルの作成方法は「knobjファイルの作成方法」を参照してください。
「draw@makeObj」が生成する例外はdraw@makeObj関数の例外の通りです。
draw@makeObj関数の例外
発生条件 ビルド 例外コード
(16進数)
ファイルが存在しない dbg、rls E9170007
3Dオブジェクトファイルが読み込めない形式になっている dbg、rls E9170008
テクスチャの生成に失敗 dbg、rls E9170009

draw@makeTex

「draw@makeTex」はテクスチャクラスのインスタンスを画像ファイルから生成する関数です(draw@makeTex関数の定義)。
draw@makeTex関数の定義

 func makeTex(path: []char): draw@Tex

path 画像のファイルパス(.png、.jpg、.dds)
戻り値 テクスチャクラスのインスタンス
「.dds」ファイルの場合は、画像サイズの縦および横がそれぞれ2の累乗になっていなければなりません。 「.png」「.jpg」ファイルは、自動的に2の累乗に調整されます。
「.png」や「.jpg」ファイルの場合、特殊な情報が埋め込まれているときには読み込めないことがあります。 読み込みに失敗したときは、ペイントソフトでキャンバスを新規作成し、画像をコピー&ペーストして保存すると、基本的な形式になって読み込めるようになります。
「draw@makeTex」が生成する例外はdraw@makeTex関数の例外の通りです。
draw@makeTex関数の例外
発生条件 ビルド 例外コード
(16進数)
ファイルの拡張子が「.png、.jpg、.dds」以外 dbgのみ E9170006
ファイルが存在しない dbg、rls E9170007
画像ファイルが読み込めない形式になっている dbg、rls E9170008
テクスチャの生成に失敗 dbg、rls E9170009

draw@makeTexEvenColor

「draw@makeTexEvenColor」は均一な色のテクスチャをsRGBカラーから生成する関数です(draw@makeTexEvenColor関数の定義)。
draw@makeTexEvenColor関数の定義

 func draw@makeTexEvenColor(color: int): draw@Tex

color 色(sRGB)
戻り値 テクスチャクラスのインスタンス
「draw@makeTexEvenColor」が生成する例外はdraw@makeTexEvenColor関数の例外の通りです。
draw@makeTexEvenColor関数の例外
発生条件 ビルド 例外コード
(16進数)
colorの値が有効範囲外 dbgのみ E9170006
テクスチャの生成に失敗 dbg、rls E9170009

draw@makeTexEvenRgba

「draw@makeTexEvenRgba」は均一な色のテクスチャをリニアカラーから生成する関数です(draw@makeTexEvenRgba関数の定義)。
draw@makeTexEvenRgba関数の定義

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

a アルファ
r
g
b
戻り値 テクスチャクラスのインスタンス
「draw@makeTexEvenRgba」が生成する例外はdraw@makeTexEvenRgba関数の例外の通りです。
draw@makeTexEvenRgba関数の例外
発生条件 ビルド 例外コード
(16進数)
テクスチャの生成に失敗 dbg、rls E9170009

draw@proj

「draw@proj」はプロジェクションを設定する関数です(draw@proj関数の定義)。
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に設定されています。
この関数は一度設定すると効果が持続します。
「draw@proj」が生成する例外はdraw@proj関数の例外の通りです。
draw@proj関数の例外
発生条件 ビルド 例外コード
(16進数)
fovyが0以下、もしくはpi,slash,2以上 dbgのみ E9170006
aspectXもしくはaspectYが0以下 dbgのみ E9170006
nearZが0以下、もしくはnearZがfarZ以上 dbgのみ E9170006

draw@rect

「draw@rect」は塗りつぶされた四角形を描画する関数です(draw@rect関数の定義)。
draw@rect関数の定義

 func rect(x: float, y: float, w: float, h: float, color: int)

x 左端座標
y 上端座標
w
h 高さ
color 色(sRGB)
「draw@rect」が生成する例外はdraw@rect関数の例外の通りです。
draw@rect関数の例外
発生条件 ビルド 例外コード
(16進数)
colorの値が有効範囲外 dbgのみ E9170006

draw@rectLine

「draw@rectLine」は四角形の枠線を描画する関数です(draw@rectLine関数の定義)。
draw@rectLine関数の定義

 func rectLine(x: float, y: float, w: float, h: float, color: int)

x 左端座標
y 上端座標
w
h 高さ
color 色(sRGB)
「draw@rectLine」が生成する例外はdraw@rectLine関数の例外の通りです。
draw@rectLine関数の例外
発生条件 ビルド 例外コード
(16進数)
colorの値が有効範囲外 dbgのみ E9170006

draw@render

「draw@render」はバックバッファの内容をフロントバッファに転送する関数です(draw@render関数の定義)。
draw@render関数の定義

 func render(fps: int)

fps 指定したFPSになるように自動でウエイトを行う。 0を指定するとウエイトなし
drawライブラリでは描画したものはバックバッファに描かれるため、画面上で見えるようにするために最後にフロントバッファへ転送する必要があります。 このような仕組みにすることで、描画途中の状態が画面上に現れず、画面のちらつきが防げます。
例えば60FPSのゲームを作る場合、引数に60を渡すと、処理落ちも考慮して60FPSになるように関数内で自動で待ちます。 転送だけ行って直ちに関数を抜けたい場合には0を指定してください。
「draw@render」が生成する例外はdraw@render関数の例外の通りです。
draw@render関数の例外
発生条件 ビルド 例外コード
(16進数)
fpsの値が「0、30、60」以外の値 dbgのみ E9170006

draw@resetViewport

draw@sampler

「draw@sampler」は描画時のサンプラーを設定する関数です(draw@sampler関数の定義)。
draw@sampler関数の定義

 func sampler(kind: draw@Sampler)

sampler サンプラーの種類
アプリ起動時には%linearに設定されています。
この関数は一度設定すると効果が持続します。
「draw@sampler」が生成する例外はdraw@sampler関数の例外の通りです。
draw@sampler関数の例外
発生条件 ビルド 例外コード
(16進数)
kindの値が有効範囲外 dbgのみ E9170006

draw@target

「draw@target」は描画ターゲットとするドローコントロールを設定する関数です(draw@target関数の定義)。
draw@target関数の定義

 func target(drawCtrl: wnd@Draw)

drawCtrl ドローコントロール
drawライブラリで描画したものは最終的にドローコントロール上に表示されますが、この関数によって描画先のドローコントロールを切り替えることができます。
この関数で設定する以外にも、描画ターゲットが切り替わるタイミングのタイミングで、描画ターゲットは自動的に切り替わります。
  • draw@target関数により明示的に設定したとき
  • wnd@makeDraw関数により、ドローコントロールを作成したとき(作成したコントロールは自動的に描画ターゲットに設定される)
  • wnd@Draw.onPaintイベントが呼ばれるとき(onPaintイベントを設定したコントロールは描画時に自動でターゲットに設定される)
描画ターゲットが切り替わるタイミング
バックバッファはドローコントロールごとに持っているため、バックバッファへの描画とフロントバッファへの転送の両方で適切な描画ターゲットが設定されている必要があります。

draw@tri

「draw@tri」は塗りつぶされた三角形を描画する関数です(draw@tri関数の定義)。
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)
「draw@tri」が生成する例外はdraw@tri関数の例外の通りです。
draw@tri関数の例外
発生条件 ビルド 例外コード
(16進数)
colorの値が有効範囲外 dbgのみ E9170006

draw@viewport

draw@white

「draw@white」は白色(#FFFFFF)を表す定数です(draw@white定数の定義)。
draw@white定数の定義

 const white: int :: 16#FFFFFFFF

draw@Blend

「draw@Blend」はブレンドの種類を表す列挙型で、定義はdraw@Blend列挙型の定義の通りです。
draw@Blend列挙型の定義
名前 説明
%add 加算合成。 描画先の色に描画元の色を足し合わせて明るくなる
%alpha アルファ合成。 描画元のアルファ値により半透明描画が可能
%mul 乗算合成。 描画先の色に描画元の色を掛けて暗くなる
%none ブレンドなし。 描画元がそのまま不透明で表示され、高速に動作する
%sub 減算合成。 描画先の色から描画元の色を引く

draw@Font

「draw@Font」はフォントと文字を扱うクラスで、定義はdraw@Fontクラスの定義の通りです。
draw@Fontクラスの定義
名前 説明
draw@Font.draw フォントを使って文字列を描画するメソッド

draw@Font.draw

「draw@Font.draw」はフォントを使って文字列を描画するメソッドです(draw@Font.drawメソッドの定義)。
draw@Font.drawメソッドの定義

 func draw(dstX: float, dstY: float, text: []char, color: int)

dstX 描画先の左端座標
dstY 描画先の上端座標
text 描画する文字列(nullは指定できない)
color 色(sRGB)
「draw@Font.draw」が生成する例外はdraw@Font.drawメソッドの例外の通りです。
draw@Font.drawメソッドの例外
例外コード
(16進数)
ビルド 発生条件
colorの値が有効範囲外 dbgのみ E9170006

draw@Obj

「draw@Obj」は3Dオブジェクトを扱うクラスで、定義はdraw@Objクラスの定義の通りです。
draw@Objクラスの定義
名前 説明
draw@Obj.draw 3Dオブジェクトを描画するメソッド
draw@Obj.look 3Dオブジェクトを指定した位置から注視点を向くように設定するメソッド
draw@Obj.lookCamera 3Dオブジェクトをカメラの方向へ向くように設定するメソッド
draw@Obj.mtx 3Dオブジェクトへの変換行列を設定するメソッド
draw@Obj.pos 3Dオブジェクトの拡大・縮小、回転、位置を設定するメソッド

draw@Obj.draw

「draw@Obj.draw」は3Dオブジェクトを描画するメソッドです(draw@Obj.drawメソッドの定義)。
draw@Obj.drawメソッドの定義

 func draw(diffuse: @Tex, specular: @Tex, normal: @Tex, element: int, frame: float)

diffuse ディフューズマップのテクスチャ。 デフォルト値を使う場合はnull
specular スペキュラマップのテクスチャ。 デフォルト値を使う場合はnull
normal 法線マップのテクスチャ。 デフォルト値を使う場合はnull
element 複数のオブジェクトが含まれている場合の要素番号
frame アニメーションフレーム
ディフューズマップとは、物体に光が当たったときに一部を吸収して色となって見えるときの、物体の色情報を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となります。
「draw@Obj.draw」が生成する例外はdraw@Obj.drawメソッドの例外の通りです。
draw@Obj.drawメソッドの例外
例外コード
(16進数)
ビルド 発生条件
elementの値が0未満、もしくは存在しているオブジェクト数以上 dbgのみ E9170006

draw@Obj.look

draw@Obj.lookCamera

draw@Obj.mtx

draw@Obj.pos

「draw@Obj.pos」は3Dオブジェクトの拡大・縮小、回転、位置を設定するメソッドです(draw@Obj.posメソッドの定義)。
draw@Obj.posメソッドの定義

 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@Sampler

「draw@Sampler」はサンプラーの種類を表す列挙型で、定義はdraw@Sampler列挙型の定義の通りです。
draw@Sampler列挙型の定義
名前 説明
%linear 拡大縮小や回転時にバイリニアで補間する。 ピクセルとピクセルの間がグラデーションで補間され、なめらかな見た目になる
%point 拡大縮小や回転時にニアレストネイバーで補間する。 最も近いピクセルの色で補間され、ドット感がはっきりした見た目になる

draw@Tex

「draw@Tex」はテクスチャを扱うクラスで、定義はdraw@Texクラスの定義の通りです。
draw@Texクラスの定義
名前 説明
draw@Tex.draw テクスチャを描画するメソッド
draw@Tex.drawRot テクスチャを拡大・縮小および回転描画するメソッド
draw@Tex.drawScale テクスチャを拡大・縮小描画するメソッド

draw@Tex.draw

「draw@Tex.draw」はテクスチャを描画するメソッドです(draw@Tex.drawメソッドの定義)。
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)
「draw@Tex.draw」が生成する例外はdraw@Tex.drawメソッドの例外の通りです。
draw@Tex.drawメソッドの例外
例外コード
(16進数)
ビルド 発生条件
colorの値が有効範囲外 dbgのみ E9170006

draw@Tex.drawRot

「draw@Tex.drawRot」はテクスチャを拡大・縮小および回転描画するメソッドです(draw@Tex.drawRotメソッドの定義)。
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)
「draw@Tex.drawRot」が生成する例外はdraw@Tex.drawRotメソッドの例外の通りです。
draw@Tex.drawRotメソッドの例外
例外コード
(16進数)
ビルド 発生条件
colorの値が有効範囲外 dbgのみ E9170006

draw@Tex.drawScale

「draw@Tex.drawScale」はテクスチャを拡大・縮小描画するメソッドです(draw@Tex.drawScaleメソッドの定義)。
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)
「draw@Tex.drawScale」が生成する例外はdraw@Tex.drawScaleメソッドの例外の通りです。
draw@Tex.drawScaleメソッドの例外
例外コード
(16進数)
ビルド 発生条件
colorの値が有効範囲外 dbgのみ E9170006
1508205925ja