fna-workbench

fna-workbench Commit Details


Date:2016-02-08 22:39:09 (9 years 1 month ago)
Author:Ethan Lee
Branch:master
Commit:d4341206a8bc290dd8a8798654e2afcfa523f14e
Parents: 494bfbb7312583688a8d809570008c5fa9971ee8
Message:Fix StructureMembers enumeration

Changes:

File differences

src/Graphics/Effect/Effect.cs
10661066
10671067
10681068
1069
1069
10701070
10711071
10721072
1073
10741073
1075
1074
10761075
1077
1078
1079
1076
1077
1078
10801079
10811080
10821081
10831082
10841083
10851084
1086
1087
1085
1086
10881087
1089
1088
10901089
10911090
10921091
List<EffectParameter> memList = new List<EffectParameter>();
unsafe
{
MojoShader.MOJOSHADER_symbolStructMember* mem;
MojoShader.MOJOSHADER_symbolStructMember* mem = (MojoShader.MOJOSHADER_symbolStructMember*) param.value.type.members;
IntPtr curOffset = IntPtr.Zero;
for (int j = 0; j < param.value.type.member_count; j += 1)
{
mem = (MojoShader.MOJOSHADER_symbolStructMember*) param.value.type.members;
memList.Add(new EffectParameter(
Marshal.PtrToStringAnsi(mem->name),
Marshal.PtrToStringAnsi(mem[j].name),
null,
(int) mem->info.rows,
(int) mem->info.columns,
(int) mem->info.elements,
(int) mem[j].info.rows,
(int) mem[j].info.columns,
(int) mem[j].info.elements,
XNAClass[(int) param.value.type.parameter_class],
XNAType[(int) param.value.type.parameter_type],
null, // FIXME: Nested structs! -flibit
null,
curOffset
));
uint memSize = mem->info.rows + mem->info.columns;
if (mem->info.elements > 0)
uint memSize = mem[j].info.rows + mem[j].info.columns;
if (mem[j].info.elements > 0)
{
memSize *= mem->info.elements;
memSize *= mem[j].info.elements;
}
curOffset += (int) memSize * 4;
}
src/Graphics/Effect/EffectParameter.cs
107107
108108
109109
110
110111
111112
112113
......
114115
115116
116117
117
118118
119119
120120
......
132132
133133
134134
135
135
136136
137137
138138
139139
140140
141141
142
142
143143
144144
145145
ColumnCount = columnCount;
if (elementCount > 0)
{
int curOffset = 0;
List<EffectParameter> elements = new List<EffectParameter>(elementCount);
for (int i = 0; i < elementCount; i += 1)
{
if (structureMembers != null)
{
List<EffectParameter> memList = new List<EffectParameter>();
int curOffset = 0;
for (int j = 0; j < structureMembers.Count; j += 1)
{
int memElems = 0;
structureMembers[j].ParameterType,
null, // FIXME: Nested structs! -flibit
structureMembers[j].Annotations,
new IntPtr(data.ToInt64() + (j * 4 * curOffset))
new IntPtr(data.ToInt64() + curOffset)
));
int memSize = structureMembers[j].RowCount * structureMembers[j].ColumnCount;
if (memElems > 0)
{
memSize *= memElems;
}
curOffset += memSize;
curOffset += memSize * 4;
}
elementMembers = new EffectParameterCollection(memList);
}

Archive Download the corresponding diff file

Branches

Number of commits:
Page rendered in 0.09499s using 13 queries.