RenderDataPtr HtmlOverlay::PrepareRenderData() { int x = 0; int y = 0; GetScreenCoord(x, y); m_pPageRenderer->SetScreenCoord(x, y); return RenderDataPtr(); }
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); } } });