@ -34,12 +34,12 @@ public partial class RenderModule: CallbackHandler<RenderModule>
[UnmanagedFunctionPointer(CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
[UnmanagedFunctionPointer(CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
private delegate int UploadAliasModelCallback ( IntPtr target , [ MarshalAs ( UnmanagedType . LPStr ) ] string name ,
private delegate int UploadAliasModelCallback ( IntPtr target , [ MarshalAs ( UnmanagedType . LPStr ) ] string name ,
QAliasHeader header , IntPtr frames , [ MarshalAs ( UnmanagedType . LPArray , SizeConst = MaxAliasFrames ) ]
IntPtr [ ] poseVerts , IntPtr triangles , IntPtr stVerts ) ;
QAliasHeader header , QAliasFrameType frameType , IntPtr frames ,
[MarshalAs(UnmanagedType.LPArray, SizeConst = MaxAliasFrames)] IntPtr [ ] poseVerts , IntPtr triangles , IntPtr stVerts ) ;
[MonoPInvokeCallback(typeof(UploadAliasModelCallback))]
[MonoPInvokeCallback(typeof(UploadAliasModelCallback))]
private static int Callback_UploadAliasModel ( IntPtr target ,
private static int Callback_UploadAliasModel ( IntPtr target ,
string name , QAliasHeader header , IntPtr frames ,
string name , QAliasHeader header , QAliasFrameType frameType , IntPtr frames ,
IntPtr [ ] poseVerts , IntPtr triangles , IntPtr stVerts )
IntPtr [ ] poseVerts , IntPtr triangles , IntPtr stVerts )
{
{
if ( header = = null )
if ( header = = null )
@ -54,14 +54,20 @@ public partial class RenderModule: CallbackHandler<RenderModule>
if ( frames ! = IntPtr . Zero )
if ( frames ! = IntPtr . Zero )
header . frames = frames . ToStructArray < QAliasFrameDesc > ( header . numFrames ) ;
header . frames = frames . ToStructArray < QAliasFrameDesc > ( header . numFrames ) ;
var poseVertices = new QTriVertex [ header . numFrames ] [ ] ;
header . numPoses = 0 ;
for ( int i = 0 ; i < header . numFrames ; + + i )
for ( int i = 0 ; i < header . numFrames ; + + i )
{
header . numPoses + = header . frames [ i ] . numPoses ;
}
var poseVertices = new QTriVertex [ header . numPoses ] [ ] ;
for ( int i = 0 ; i < header . numPoses ; + + i )
{
{
poseVertices [ i ] = poseVerts [ i ] . ToStructArray < QTriVertex > ( header . numVerts ) ;
poseVertices [ i ] = poseVerts [ i ] . ToStructArray < QTriVertex > ( header . numVerts ) ;
}
}
return GetSelf ( target ) . UploadAliasModel (
return GetSelf ( target ) . UploadAliasModel (
name , header , poseVertices ,
name , header , frameType , poseVertices ,
triangles . ToStructArray < QTriangle > ( header . numTriangles ) ,
triangles . ToStructArray < QTriangle > ( header . numTriangles ) ,
stVerts . ToStructArray < QSTVert > ( header . numVerts ) ) ;
stVerts . ToStructArray < QSTVert > ( header . numVerts ) ) ;
}
}