DrawUserPrimitives

とりあえず表示できたのでメモ。

w := 256; // テクスチャの幅

h := 256; // テクスチャの高さ

// 頂点設定

// dx, dy: 表示先の座標

// zは適当に0.99

// rhwも適当に0.2

// sx1, sy1: 転送元テクスチャの左上座標

// sx2, sy2: 転送元テクスチャの右下座標

// col: 色

vt[0] := CustomVertex.TransformedColoredTextured.Create(dx, dy, 0.99, 0.2, col, sx1 / w, sy1 / h);

vt[1] := CustomVertex.TransformedColoredTextured.Create(dx1 + (sx2 – sx1), dy1, 0.99, 0.2, col, sx2 / w, sy1 / h);

vt[2] := CustomVertex.TransformedColoredTextured.Create(dx1 + (sx2 – sx1), dy1 + (sy2 – sy1), 0.99, 0.2, col, sx2 / w, sy2 / h);

vt[3] := CustomVertex.TransformedColoredTextured.Create(dx1, dy1 + (sy2 – sy1), 0.99, 0.2, col, sx1 / w, sy2 / h);

// オペレーション設定

FDevice.RenderState.SourceBlend := SrcBlend;

FDevice.RenderState.DestinationBlend := DestBlend;

FDevice.TextureState[0].ColorOperation := TexOP;

FDevice.VertexFormat := CustomVertex.TransformedColoredTextured.Format;

FDevice.DrawUserPrimitives(PrimitiveType.TriangleFan, 2, vt);

CustomVertexに頂点の構造体が定義されている。テクスチャを使用する場合は尾にTexturedがついているものを使用する。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です