示例#1
0
Graphic::GL::Texture    *Plugin::ReadImage(domImageRef lib)
{
    if (lib==NULL || lib->getId()==NULL)
        return NULL;

    MapTexture::iterator it = _mapTexture.find(lib->getID());
    if (it != _mapTexture.end()) // if already exist
        return &it->second;

    LOG_DEBUG << "Create new image " << lib->getId() << std::endl;
    domImage *imageElement = (domImage*)(domElement*)lib;
    if (imageElement)
    {
        GL::Texture *texture = &_mapTexture[imageElement->getId()];
        texture->LoadFromFile(cdom::uriToNativePath(imageElement->getInit_from()->getValue().str()));
        return texture;
    }
    return NULL;
}
示例#2
0
Graphic::GL::Texture    *Plugin::ReadNormalMap(domImageRef lib)
{
    if (lib==NULL || lib->getId()==NULL)
        return NULL;

    MapTexture::iterator it = _mapNormalMap.find(lib->getID());
    if (it != _mapNormalMap.end()) // if already exist
        return &it->second;

    domImage *imageElement = (domImage*)(domElement*)lib;
    if (imageElement)
    {
        Utils::FileName f = cdom::uriToNativePath(imageElement->getInit_from()->getValue().str());
        f.SetShortFilename(f.ShortFilename() + "Normal");
        if (!f.IsReadable())
            return NULL;
        LOG_DEBUG << "Create new NormalMap " << f << std::endl;
        GL::Texture *texture = &_mapNormalMap[imageElement->getId()];
        texture->LoadFromFile(f);
        return texture;
    }
    return NULL;
}