/// <summary> /// Gets the type memory requirements. /// </summary> /// <param name="typeLayout">The type layouts.</param> /// <param name="type">The signature type.</param> /// <param name="size">Receives the memory size of the type.</param> /// <param name="alignment">Receives alignment requirements of the type.</param> public override void GetTypeRequirements(MosaTypeLayout typeLayout, MosaType type, out int size, out int alignment) { if (type.IsUI8 || type.IsR8 || !type.IsValueType || type.IsPointer) { size = 8; alignment = 8; } else if (typeLayout.IsCompoundType(type)) { size = typeLayout.GetTypeSize(type); alignment = 8; } else { size = 4; alignment = 4; } }