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();
		}
	}
Exemplo n.º 2
0
	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();
	}
Exemplo n.º 5
0
	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();
	}