Add improvements for native interfaces usage
This commit is contained in:
@@ -309,14 +309,14 @@ ScriptingObject* ScriptingType::GetDefaultInstance() const
|
||||
return Script.DefaultInstance;
|
||||
}
|
||||
|
||||
const ScriptingType::InterfaceImplementation* ScriptingType::GetInterface(const ScriptingTypeInitializer* interfaceType) const
|
||||
const ScriptingType::InterfaceImplementation* ScriptingType::GetInterface(const ScriptingTypeHandle& interfaceType) const
|
||||
{
|
||||
const InterfaceImplementation* interfaces = Interfaces;
|
||||
if (interfaces)
|
||||
{
|
||||
while (interfaces->InterfaceType)
|
||||
{
|
||||
if (interfaces->InterfaceType == interfaceType)
|
||||
if (*interfaces->InterfaceType == interfaceType)
|
||||
return interfaces;
|
||||
interfaces++;
|
||||
}
|
||||
@@ -639,8 +639,6 @@ void ManagedBinaryModule::OnLoaded(MAssembly* assembly)
|
||||
for (int32 typeIndex = 0; typeIndex < Types.Count(); typeIndex++)
|
||||
{
|
||||
ScriptingType& type = Types[typeIndex];
|
||||
if (type.Type == ScriptingTypes::Interface)
|
||||
continue; // TODO: generate C# class for interfaces in API
|
||||
ASSERT(type.ManagedClass == nullptr);
|
||||
|
||||
// Cache class
|
||||
|
||||
@@ -121,7 +121,7 @@ struct FLAXENGINE_API ScriptingType
|
||||
struct InterfaceImplementation
|
||||
{
|
||||
// Pointer to the type of the implemented interface.
|
||||
const ScriptingTypeInitializer* InterfaceType;
|
||||
const ScriptingTypeHandle* InterfaceType;
|
||||
|
||||
// The offset (in bytes) from the object pointer to the interface implementation. Used for casting object to the interface.
|
||||
int16 VTableOffset;
|
||||
@@ -290,7 +290,7 @@ struct FLAXENGINE_API ScriptingType
|
||||
/// <summary>
|
||||
/// Gets the pointer to the implementation of the given interface type for this scripting type (including base types). Returns null if given interface is not implemented.
|
||||
/// </summary>
|
||||
const InterfaceImplementation* GetInterface(const ScriptingTypeInitializer* interfaceType) const;
|
||||
const InterfaceImplementation* GetInterface(const ScriptingTypeHandle& interfaceType) const;
|
||||
|
||||
String ToString() const;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user