リファレンス URL:draw_primitive_begin_texture(kind, tex);
戻り値無し (Returns: N/A) 指定された形状の 2D プリミティヴ作成開始を宣言する関数。基本機能は draw_primitive_begin と同じだが 2D プリミティヴにテクスチャを貼りたい場合はこちらの関数を利用する。
draw_primitive_begin_texture(kind, tex);
- pr_pointlist
- pr_linelist
- pr_linestrip
- pr_trianglelist
- pr_trianglestrip
- pr_trianglefan(※ HTML5では利用できない定数)
sprite_get_texture()
各上記関数から選んで用いる。 テクスチャデータを指定しない場合、第二引数には
-1
を入れれば良い。
テクスチャのサイズは power of two(二の累乗数)を意識する必要がある。必ずしも正方形である必要はありません。長方形でも良い。
例えば 32x32/128x128 などだが、正方形である必要はないため、表現の都合上必要ならば 32x128 でも別に構わない。ただし 32x128 が内部的には 128x128 として扱われた場合には、12,288 bytes が無駄な浪費という計算になります。
メモリ管理の都合で言えば正方形が望ましいというだけで、実用的には 2 よりも 4 や 8 など、あるいは解像度に対して最大公約数を求めてテクスチャサイズを決定します。
texture_set_repeat を利用する場合は、もう少し厳密なテクスチャサイズ設定が必要に成ります。
参考:Why are textures always square powers of two?
スクリプト・サンプル
draw_set_colour(c_white); var tex = background_get_texture(sheltering_sky); //show_message(string(tex));/* ポインタを文字列化して表示 */ draw_primitive_begin_texture(pr_trianglefan, tex); var a,b; a = room_width; b = room_height; draw_vertex_texture(0, 0, 0, 0); draw_vertex_texture(a, 0, 1, 0); draw_vertex_texture(a, b, 1, 1); draw_vertex_texture(0, b, 0, 1); draw_primitive_end();
Functions/draw_primitive_begin_texture