//----------------------------------------------------------------------- MeshPtr MeshManager::createPlane( const String& name, const String& groupName, const Plane& plane, Real width, Real height, int xsegments, int ysegments, bool normals, unsigned short numTexCoordSets, Real xTile, Real yTile, const Vector3& upVector, HardwareBuffer::Usage vertexBufferUsage, HardwareBuffer::Usage indexBufferUsage, bool vertexShadowBuffer, bool indexShadowBuffer) { // Create manual mesh which calls back self to load MeshPtr pMesh = createManual(name, groupName, this); // Planes can never be manifold pMesh->setAutoBuildEdgeLists(false); // store parameters MeshBuildParams params; params.type = MBT_PLANE; params.plane = plane; params.width = width; params.height = height; params.xsegments = xsegments; params.ysegments = ysegments; params.normals = normals; params.numTexCoordSets = numTexCoordSets; params.xTile = xTile; params.yTile = yTile; params.upVector = upVector; params.vertexBufferUsage = vertexBufferUsage; params.indexBufferUsage = indexBufferUsage; params.vertexShadowBuffer = vertexShadowBuffer; params.indexShadowBuffer = indexShadowBuffer; mMeshBuildParams[pMesh.getPointer()] = params; // to preserve previous behaviour, load immediately pMesh->load(); return pMesh; }
void MyTexture::loadFromFile(const std::string& _filename) { destroy(); std::string path = _filename; replace(path, ".png", ".pvr.ccz"); XE::CImage image; if (image.Load(path.c_str())) { PixelFormat format = PixelFormat::R8G8B8A8; int width = image.GetWidth(); int height = image.GetHeight(); void* data = image.GetBits(); if (data) { createManual(width, height, TextureUsage::Static | TextureUsage::Write, format, data); } } }
void OpenGLTexture::loadFromFile(const std::string& _filename) { destroy(); if (mImageLoader) { int width = 0; int height = 0; PixelFormat format = PixelFormat::Unknow; void* data = mImageLoader->loadImage(width, height, format, _filename); if (data) { createManual(width, height, TextureUsage::Static | TextureUsage::Write, format, data); delete data; } } }
void OpenGLTexture::createManual(int _width, int _height, TextureUsage _usage, PixelFormat _format) { createManual(_width, _height, _usage, _format, 0); }