| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
- //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
- #include "Wrappers/BsScriptSpriteTexture.h"
- #include "BsScriptResourceManager.h"
- #include "BsScriptMeta.h"
- #include "BsMonoField.h"
- #include "BsMonoClass.h"
- #include "BsMonoManager.h"
- #include "2D/BsSpriteTexture.h"
- #include "BsScriptTexture.generated.h"
- namespace bs
- {
- ScriptSpriteTexture::ScriptSpriteTexture(MonoObject* instance,const HSpriteTexture& texture)
- :TScriptResource(instance, texture)
- {
- }
- void ScriptSpriteTexture::initRuntimeData()
- {
- metaData.scriptClass->addInternalCall("Internal_CreateInstance", (void*)&ScriptSpriteTexture::internal_createInstance);
- metaData.scriptClass->addInternalCall("Internal_GetTexture", (void*)&ScriptSpriteTexture::internal_GetTexture);
- metaData.scriptClass->addInternalCall("Internal_SetTexture", (void*)&ScriptSpriteTexture::internal_SetTexture);
- metaData.scriptClass->addInternalCall("Internal_GetOffset", (void*)&ScriptSpriteTexture::internal_GetOffset);
- metaData.scriptClass->addInternalCall("Internal_SetOffset", (void*)&ScriptSpriteTexture::internal_SetOffset);
- metaData.scriptClass->addInternalCall("Internal_GetScale", (void*)&ScriptSpriteTexture::internal_GetScale);
- metaData.scriptClass->addInternalCall("Internal_SetScale", (void*)&ScriptSpriteTexture::internal_SetScale);
- metaData.scriptClass->addInternalCall("Internal_GetWidth", (void*)&ScriptSpriteTexture::internal_GetWidth);
- metaData.scriptClass->addInternalCall("Internal_GetHeight", (void*)&ScriptSpriteTexture::internal_GetHeight);
- }
- MonoObject* ScriptSpriteTexture::toManaged(const HSpriteTexture& texture)
- {
- if (texture == nullptr)
- return nullptr;
- ScriptResourceBase* scriptSpriteTex = ScriptResourceManager::instance().getScriptResource(texture, true);
- return scriptSpriteTex->getManagedInstance();
- }
- void ScriptSpriteTexture::internal_createInstance(MonoObject* instance, MonoObject* texture, Vector2* offset, Vector2* scale)
- {
- ScriptTexture* scriptTexture = ScriptTexture::toNative(texture);
- if (scriptTexture == nullptr)
- ScriptResourceManager::instance().createBuiltinScriptResource(SpriteTexture::dummy(), instance);
- else
- {
- HSpriteTexture spriteTexture = SpriteTexture::create(*offset, *scale, scriptTexture->getHandle());
- ScriptResourceManager::instance().createBuiltinScriptResource(spriteTexture, instance);
- }
- }
- MonoObject* ScriptSpriteTexture::internal_GetTexture(ScriptSpriteTexture* thisPtr)
- {
- HSpriteTexture spriteTexture = thisPtr->getHandle();
- if (!spriteTexture.isLoaded())
- return nullptr;
- HTexture texture = spriteTexture->getTexture();
- if (!texture.isLoaded())
- return nullptr;
- ScriptResourceBase* scriptTexture = ScriptResourceManager::instance().getScriptResource(texture, true);
- return scriptTexture->getManagedInstance();
- }
- void ScriptSpriteTexture::internal_SetTexture(ScriptSpriteTexture* thisPtr, ScriptTexture* value)
- {
- HSpriteTexture spriteTexture = thisPtr->getHandle();
- if (!spriteTexture.isLoaded())
- return;
- HTexture texture;
- if (value != nullptr)
- texture = value->getHandle();
- spriteTexture->setTexture(texture);
- }
- void ScriptSpriteTexture::internal_GetOffset(ScriptSpriteTexture* thisPtr, Vector2* value)
- {
- HSpriteTexture spriteTexture = thisPtr->getHandle();
- if (!spriteTexture.isLoaded())
- {
- *value = Vector2::ZERO;
- return;
- }
-
- *value = spriteTexture->getOffset();
- }
- void ScriptSpriteTexture::internal_SetOffset(ScriptSpriteTexture* thisPtr, Vector2* value)
- {
- HSpriteTexture spriteTexture = thisPtr->getHandle();
- if (!spriteTexture.isLoaded())
- return;
- spriteTexture->setOffset(*value);
- }
- void ScriptSpriteTexture::internal_GetScale(ScriptSpriteTexture* thisPtr, Vector2* value)
- {
- HSpriteTexture spriteTexture = thisPtr->getHandle();
- if (!spriteTexture.isLoaded())
- {
- *value = Vector2::ZERO;
- return;
- }
- *value = spriteTexture->getScale();
- }
- void ScriptSpriteTexture::internal_SetScale(ScriptSpriteTexture* thisPtr, Vector2* value)
- {
- HSpriteTexture spriteTexture = thisPtr->getHandle();
- if (!spriteTexture.isLoaded())
- return;
- spriteTexture->setScale(*value);
- }
- UINT32 ScriptSpriteTexture::internal_GetWidth(ScriptSpriteTexture* thisPtr)
- {
- HSpriteTexture spriteTexture = thisPtr->getHandle();
- if (!spriteTexture.isLoaded())
- return 0;
- return spriteTexture->getWidth();
- }
- UINT32 ScriptSpriteTexture::internal_GetHeight(ScriptSpriteTexture* thisPtr)
- {
- HSpriteTexture spriteTexture = thisPtr->getHandle();
- if (!spriteTexture.isLoaded())
- return 0;
- return spriteTexture->getHeight();
- }
- MonoObject* ScriptSpriteTexture::createInstance()
- {
- return metaData.scriptClass->createInstance();
- }
- }
|