Esempio n. 1
0
	RenderDataPtr HtmlOverlay::PrepareRenderData()
	{
		int x = 0;
		int y = 0;
		GetScreenCoord(x, y);
		m_pPageRenderer->SetScreenCoord(x, y);

		return RenderDataPtr();
	}
Esempio n. 2
0
	GLMesh::GLMesh()
	{
		mRenderData = RenderDataPtr(new RenderData);
		memset(mRenderData.get(), 0, sizeof(RenderData));
		memset(&mAttributes, 0, sizeof(Attributes));
	}
	GLTextureCube::GLTextureCube(uint16 width, uint16 height, PixelFormat format, uint8 mips)
	{
		mRenderData = RenderDataPtr(new RenderData);
		mRenderData->texHandle = 0;

		mTexData.width = width;
		mTexData.height = height;

		if (mips == 0)
		{
			uint32 m = 1;
			uint32 s = mTexData.width > mTexData.height ? mTexData.width : mTexData.height;
			while (s > 1)
			{
				s /= 2;
				m++;
			}
			mTexData.mipLevels = m;
		}
		else
		{
			mTexData.mipLevels = mips;
		}

		mTexData.pixelFormat = format;
		mIsLocked = false;

		ENQUEUE_RENDER_COMMAND_2PARAMS(GLTexture2D,
			RenderDataPtr, mRenderData, mRenderData,
			TexData, mTexData, mTexData,
			{
			if (!mRenderData->texHandle)
			{
				GLenum internalFormat;
				GLenum lockFormat;
				GLenum lockType;
				GLTexture::_pixelFormatParams(mTexData.pixelFormat, internalFormat, lockFormat, lockType);

				glGenTextures(1, &mRenderData->texHandle);
				Main::getRenderSystem()._rtBindTextureCube(mRenderData->texHandle, 0);
				
				for (int i = 0; i < 6; i++)
					glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, internalFormat, 
					mTexData.width, mTexData.height, 0, lockFormat, lockType, nullptr);

				glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_BASE_LEVEL, 0);
				glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAX_LEVEL, mTexData.mipLevels - 1);

				glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
				glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

				glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_REPEAT);
				glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_REPEAT);

				if (mTexData.mipLevels > 1)
				{
					glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
					glGenerateMipmap(GL_TEXTURE_CUBE_MAP);
				}
			}
		});