/// <summary> /// オブジェクトを描画します。 /// </summary> public void Draw() { VERTEX3D[] vertexs = new VERTEX3D[this.Vertexs.Length]; for (int i = 0; i < this.Vertexs.Length; i++) { vertexs[i].pos = VTransform(this.Vertexs[i].pos, this.Matrix); vertexs[i].norm = VTransformSR(this.Vertexs[i].norm, this.Matrix); vertexs[i].dif = this.Vertexs[i].dif; vertexs[i].spc = this.Vertexs[i].spc; vertexs[i].u = this.Vertexs[i].u; vertexs[i].v = this.Vertexs[i].v; } DrawPolygonIndexed3D(vertexs, vertexs.Length, this.VertexIndex, this.VertexIndex.Length / 3, this.TextureHandle, this.TransFlag ? TRUE : FALSE); }
public static int DrawPrimitiveIndexed3D( out VERTEX3D Vertex, int VertexNum, out ushort Indices, int IndexNum, int PrimitiveType, int GrHandle, int TransFlag) { if( System.IntPtr.Size == 4 ) { return dx_DrawPrimitiveIndexed3D_x86( out Vertex , VertexNum , out Indices , IndexNum , PrimitiveType , GrHandle , TransFlag ); } else { return dx_DrawPrimitiveIndexed3D_x64( out Vertex , VertexNum , out Indices , IndexNum , PrimitiveType , GrHandle , TransFlag ); } }
extern static int dx_DrawPrimitiveIndexed3D_x64( out VERTEX3D Vertex, int VertexNum, out ushort Indices, int IndexNum, int PrimitiveType, int GrHandle, int TransFlag);
extern static int dx_DrawPrimitive3D_x64( out VERTEX3D Vertex, int VertexNum, int PrimitiveType, int GrHandle, int TransFlag);
extern static int dx_DrawPolygonIndexed3D_x64( out VERTEX3D Vertex, int VertexNum, out ushort Indices, int PolygonNum, int GrHandle, int TransFlag);
public static int DrawPolygon3D( out VERTEX3D Vertex, int PolygonNum, int GrHandle, int TransFlag) { if( System.IntPtr.Size == 4 ) { return dx_DrawPolygon3D_x86( out Vertex , PolygonNum , GrHandle , TransFlag ); } else { return dx_DrawPolygon3D_x64( out Vertex , PolygonNum , GrHandle , TransFlag ); } }
extern static int dx_DrawPolygon3D_x64( out VERTEX3D Vertex, int PolygonNum, int GrHandle, int TransFlag);
/// <summary> /// VERTEX3D構造体の色を設定します /// </summary> /// <param name="value">VERTEX3D構造体</param> /// <param name="color">色オブジェクト</param> internal static void SetColor(ref VERTEX3D value, Color color) => SetColor(ref value, color.R, color.G, color.B, color.A);
/// <summary> /// VERTEX3D構造体の色を設定します。 /// </summary> /// <param name="value">VERTEX3D構造体</param> /// <param name="r">赤</param> /// <param name="g">緑</param> /// <param name="b">青</param> /// <param name="a">アルファ</param> internal static void SetColor(ref VERTEX3D value, byte r, byte g, byte b, byte a) => value.dif = GetColorU8(r, g, b, a);
/// <summary> /// VERTEX3D構造体の法線を設定します /// </summary> /// <param name="value">VERTEX3D構造体</param> /// <param name="x">x</param> /// <param name="y">y</param> /// <param name="z">z</param> internal static void SetNormal(ref VERTEX3D value, float x, float y, float z) => value.norm = VGet(x, y, z);
/// <summary> /// VERTEX3D構造体の位置を設定します。 /// </summary> /// <param name="value">VERTEX3D構造体</param> /// <param name="x">x</param> /// <param name="y">y</param> /// <param name="z">z</param> internal static void SetPosition(ref VERTEX3D value, float x, float y, float z) => value.pos = VGet(x, y, z);
/// <summary> /// 頂点のテクスチャ座標 /// </summary> /// <param name="value">VERTEX3D構造体</param> /// <param name="x">テクスチャのX座標(0.0F~1.0F)</param> /// <param name="y">テクスチャのY座標(0.0F~1.0F)</param> internal static void SetTexturePosition(ref VERTEX3D value, float x, float y) { value.u = x; value.v = y; }
public static int DrawPolygonIndexed3D( out VERTEX3D Vertex, int VertexNum, out ushort Indices, int PolygonNum, int GrHandle, int TransFlag) { return dx_DrawPolygonIndexed3D( out Vertex , VertexNum , out Indices , PolygonNum , GrHandle , TransFlag ); }
public static int DrawPolygon3D( out VERTEX3D Vertex, int PolygonNum, int GrHandle, int TransFlag) { return dx_DrawPolygon3D( out Vertex , PolygonNum , GrHandle , TransFlag ); }
public static int DrawPrimitiveIndexed3D( out VERTEX3D Vertex, int VertexNum, out ushort Indices, int IndexNum, int PrimitiveType, int GrHandle, int TransFlag) { return dx_DrawPrimitiveIndexed3D( out Vertex , VertexNum , out Indices , IndexNum , PrimitiveType , GrHandle , TransFlag ); }
public static int DrawPrimitive3D( out VERTEX3D Vertex, int VertexNum, int PrimitiveType, int GrHandle, int TransFlag) { return dx_DrawPrimitive3D( out Vertex , VertexNum , PrimitiveType , GrHandle , TransFlag ); }