public static IEnumerable <D3DXCONSTANT_DESC> GetConstantDesc( this ID3DXConstantTable contantTable, IntPtr constantHandle) { VerifyNonNullArgument( contantTable, "contantTable"); uint count = 0; if (Succeeded( contantTable.GetConstantDesc( constantHandle, null, ref count))) { var array = new D3DXCONSTANT_DESC[count]; if (Succeeded( contantTable.GetConstantDesc( constantHandle, array, ref count))) { return(array.Take((int)count)); } } return(Enumerable.Empty <D3DXCONSTANT_DESC>()); }
public static D3DXCONSTANTTABLE_DESC?GetDesc( this ID3DXConstantTable contantTable) { VerifyNonNullArgument( contantTable, "contantTable"); var desc = default(D3DXCONSTANTTABLE_DESC); return(Succeeded(contantTable.GetDesc(out desc)) ? (D3DXCONSTANTTABLE_DESC?)desc : null); }
public static IEnumerable <IntPtr> GetTopLevelConstantHandles( this ID3DXConstantTable contantTable) { VerifyNonNullArgument( contantTable, "contantTable"); var desc_ = contantTable.GetDesc(); if (!desc_.HasValue) { return(Enumerable.Empty <IntPtr>()); } var desc = desc_.Value; return(Enumerable.Range( 0, (int)desc.Constants) .Select( index => contantTable.GetConstant( IntPtr.Zero, (uint)index))); }