Beispiel #1
0
void RResource::setProperties(RPropertyMap const & attr, std::string const & name)
{
    if (name.compare("resource") == 0) {
    } else if (name.compare("shape") == 0) {
        if (attr.has("id")) {
            int id = attr.getInt("id");
            RShape * s = RShapeItem::fromProperty(attr);
            if (s) {
                if (attr.getInt("buffer")) {
                    s->createBuffer();
                }
                if (!mShapes.insert(std::make_pair(id, s)).second) {
                    rLogW() << "insertion of " << name << "(" << id << ") failed" << std::endl;
                }
            }
        }
    } else if(name.compare("texture") == 0) {
        if (attr.has("id")) {
            int id = attr.getInt("id");
            RTexture t = RTextureItem::fromProperty(attr);
            if (!mTextures.insert(std::make_pair(id, t)).second) {
                rLogW() << "insertion of " << name << "(" << id << ") failed" << std::endl;
            }
        }
    } else {
        RResourceItem * item =  getItem(name);
        if (item) {
            item->setProperties(attr, name);
        } else {
            rLogW() << "Resource " << name << " not found" << std::endl;
        }
    }
}