void ScriptRenderTexture2D::internal_getColorSurfaces(ScriptRenderTexture2D* thisPtr, MonoArray** value) { if (thisPtr->mIsMulti) { SPtr<MultiRenderTexture> tex = thisPtr->getMultiRenderTexture(); UINT32 numColorSurfaces = tex->getColorSurfaceCount(); ScriptArray outArray = ScriptArray::create<ScriptTexture2D>(numColorSurfaces); for (UINT32 i = 0; i < numColorSurfaces; i++) { HTexture colorTex = tex->getBindableColorTexture(i); ScriptTexture2D* scriptSurface; ScriptResourceManager::instance().getScriptResource(colorTex, &scriptSurface, true); outArray.set(i, scriptSurface->getManagedInstance()); *value = outArray.getInternal(); } } else { SPtr<RenderTexture> tex = thisPtr->getRenderTexture(); ScriptArray outArray = ScriptArray::create<ScriptTexture2D>(1); HTexture colorTex = tex->getBindableColorTexture(); ScriptTexture2D* scriptSurface; ScriptResourceManager::instance().getScriptResource(colorTex, &scriptSurface, true); outArray.set(0, scriptSurface->getManagedInstance()); *value = outArray.getInternal(); } }
void ScriptRenderTexture2D::internal_getDepthStencilSurface(ScriptRenderTexture2D* thisPtr, MonoObject** value) { SPtr<RenderTexture> tex = thisPtr->getRenderTexture(); HTexture depthTex = tex->getDepthStencilTexture(); ScriptTexture2D* scriptSurface; ScriptResourceManager::instance().getScriptResource(depthTex, &scriptSurface, true); *value = scriptSurface->getManagedInstance(); }
MonoObject* ScriptSpriteTexture::internal_GetTexture(ScriptSpriteTexture* thisPtr) { HSpriteTexture spriteTexture = thisPtr->getHandle(); if (!spriteTexture.isLoaded()) return nullptr; HTexture texture = spriteTexture->getTexture(); if (!texture.isLoaded()) return nullptr; ScriptTexture2D* scriptTexture = nullptr; ScriptResourceManager::instance().getScriptResource(texture, &scriptTexture, true); return scriptTexture->getManagedInstance(); }
void ScriptRenderTexture2D::internal_getDepthStencilSurface(ScriptRenderTexture2D* thisPtr, MonoObject** value) { HTexture colorTex; if (thisPtr->mIsMulti) { SPtr<MultiRenderTexture> tex = thisPtr->getMultiRenderTexture(); colorTex = tex->getBindableDepthStencilTexture(); } else { SPtr<RenderTexture> tex = thisPtr->getRenderTexture(); colorTex = tex->getBindableDepthStencilTexture(); } ScriptTexture2D* scriptSurface; ScriptResourceManager::instance().getScriptResource(colorTex, &scriptSurface, true); *value = scriptSurface->getManagedInstance(); }
void ScriptRenderTexture2D::internal_getColorSurfaces(ScriptRenderTexture2D* thisPtr, MonoArray** value) { SPtr<RenderTexture> tex = thisPtr->getRenderTexture(); UINT32 numColorSurfaces = BS_MAX_MULTIPLE_RENDER_TARGETS; ScriptArray outArray = ScriptArray::create<ScriptTexture2D>(numColorSurfaces); for (UINT32 i = 0; i < numColorSurfaces; i++) { HTexture colorTex = tex->getColorTexture(i); if (colorTex != nullptr) { ScriptTexture2D* scriptSurface; ScriptResourceManager::instance().getScriptResource(colorTex, &scriptSurface, true); outArray.set<MonoObject*>(i, scriptSurface->getManagedInstance()); } else outArray.set<MonoObject*>(i, nullptr); } *value = outArray.getInternal(); }