SlimDXについて語ろうぜ
■ このスレッドは過去ログ倉庫に格納されています
0080名前は開発中のものです。
2010/12/21(火) 14:33:36ID:IUyb5141VertexDeclarationの自動化を解決させちまおうぜ
C++の静的じゃなくて、AttributeとReflectorを使った動的メタプログラミング
定義部
struct HOGEVertex
{
[VertexElement(type = DeclarationType.D3DDECLTYPE_FLOAT3 ,usage = Decl
arationUsage.D3DDECLUSAGE_POSITION)]
Vector3 Position;
[VertexElement(type = DeclarationType.D3DDECLTYPE_FLOAT2 ,usage = Decl
arationUsage.D3DDECLUSAGE_TEXCOORD)] Vector2 UV;
...
読み込み部
VertexElement[] ReadFVFAttribute<T>() where T : struct
{
var vertexElements = new List<VertexElement>();
foreach(var fi in typeof(T).GetFields())
{
foreach(var attr in fi.GetType().GetCustomAttributes(false))
{
if (attr.GetType() == typeof(VertexElementAttribute) )
vertexElements.add(new 略);
...
result = vertexElements.ToArray();
}
■ このスレッドは過去ログ倉庫に格納されています