本文整理汇总了C++中XMLElement::GetAttribute方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLElement::GetAttribute方法的具体用法?C++ XMLElement::GetAttribute怎么用?C++ XMLElement::GetAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLElement
的用法示例。
在下文中一共展示了XMLElement::GetAttribute方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Load
void RenderTargetInfo::Load(const XMLElement& element)
{
name_ = element.GetAttribute("name");
tag_ = element.GetAttribute("tag");
if (element.HasAttribute("enabled"))
enabled_ = element.GetBool("enabled");
String formatName = element.GetAttribute("format");
format_ = Graphics::GetFormat(formatName);
if (element.HasAttribute("filter"))
filtered_ = element.GetBool("filter");
if (element.HasAttribute("srgb"))
sRGB_ = element.GetBool("srgb");
if (element.HasAttribute("size"))
size_ = element.GetIntVector2("size");
if (element.HasAttribute("sizedivisor"))
{
size_ = element.GetIntVector2("sizedivisor");
sizeMode_ = SIZE_VIEWPORTDIVISOR;
}
if (element.HasAttribute("rtsizedivisor"))
{
size_ = element.GetIntVector2("rtsizedivisor");
sizeMode_ = SIZE_RENDERTARGETDIVISOR;
}
if (element.HasAttribute("width"))
size_.x_ = element.GetInt("width");
if (element.HasAttribute("height"))
size_.y_ = element.GetInt("height");
}
示例2: LoadXML
bool ObjectAnimation::LoadXML(const XMLElement& source)
{
attributeAnimationInfos_.Clear();
XMLElement animElem;
animElem = source.GetChild("attributeanimation");
while (animElem)
{
String name = animElem.GetAttribute("name");
SharedPtr<ValueAnimation> animation(new ValueAnimation(context_));
if (!animation->LoadXML(animElem))
return false;
String wrapModeString = animElem.GetAttribute("wrapmode");
WrapMode wrapMode = WM_LOOP;
for (int i = 0; i <= WM_CLAMP; ++i)
{
if (wrapModeString == wrapModeNames[i])
{
wrapMode = (WrapMode)i;
break;
}
}
float speed = animElem.GetFloat("speed");
AddAttributeAnimation(name, animation, wrapMode, speed);
animElem = animElem.GetNext("attributeanimation");
}
return true;
}
示例3: LoadInputMapping
// ----------------------------------------------------------------------------
bool InputMapping::LoadInputMapping(XMLFile* config)
{
XMLElement contextElement = config->GetRoot().GetChild("context");
if(!contextElement)
return false;
while(contextElement)
{
String contextName = contextElement.GetAttribute("name");
if(contextName == "3rd person controls")
{
XMLElement mappingElement = contextElement.GetChild("mapping");
while(mappingElement)
{
String action = mappingElement.GetAttribute("action");
String device = mappingElement.GetAttribute("device");
int value = mappingElement.GetInt("value");
SetMapping(contextName, device, action, value);
mappingElement = mappingElement.GetNext("mapping");
}
}
contextElement = contextElement.GetNext("context");
}
return true;
}
示例4: source
ShaderPrecache::ShaderPrecache(Context* context, const String& fileName) :
Object(context),
fileName_(fileName),
xmlFile_(context)
{
if (GetSubsystem<FileSystem>()->FileExists(fileName))
{
// If file exists, read the already listed combinations
File source(context_, fileName);
xmlFile_.Load(source);
XMLElement shader = xmlFile_.GetRoot().GetChild("shader");
while (shader)
{
String oldCombination = shader.GetAttribute("vs") + " " + shader.GetAttribute("vsdefines") + " " +
shader.GetAttribute("ps") + " " + shader.GetAttribute("psdefines");
usedCombinations_.Insert(oldCombination);
shader = shader.GetNext("shader");
}
}
// If no file yet or loading failed, create the root element now
if (!xmlFile_.GetRoot())
xmlFile_.CreateRoot("shaders");
LOGINFO("Begin dumping shaders to " + fileName_);
}
示例5: LoadXML
bool UnknownComponent::LoadXML(const XMLElement& source, bool setInstanceDefault)
{
useXML_ = true;
xmlAttributes_.Clear();
xmlAttributeInfos_.Clear();
binaryAttributes_.Clear();
XMLElement attrElem = source.GetChild("attribute");
while (attrElem)
{
AttributeInfo attr;
attr.mode_ = AM_FILE;
attr.name_ = attrElem.GetAttribute("name");
attr.type_ = VAR_STRING;
if (!attr.name_.Empty())
{
String attrValue = attrElem.GetAttribute("value");
attr.defaultValue_ = String::EMPTY;
xmlAttributeInfos_.Push(attr);
xmlAttributes_.Push(attrValue);
}
attrElem = attrElem.GetNext("attribute");
}
// Fix up pointers to the attributes after all have been read
for (unsigned i = 0; i < xmlAttributeInfos_.Size(); ++i)
xmlAttributeInfos_[i].ptr_ = &xmlAttributes_[i];
return true;
}
示例6: BeginLoad
bool Material::BeginLoad(Deserializer& source)
{
// In headless mode, do not actually load the material, just return success
Graphics* graphics = GetSubsystem<Graphics>();
if (!graphics)
return true;
loadXMLFile_ = new XMLFile(context_);
if (loadXMLFile_->Load(source))
{
// If async loading, scan the XML content beforehand for technique & texture resources
// and request them to also be loaded. Can not do anything else at this point
if (GetAsyncLoadState() == ASYNC_LOADING)
{
ResourceCache* cache = GetSubsystem<ResourceCache>();
XMLElement rootElem = loadXMLFile_->GetRoot();
XMLElement techniqueElem = rootElem.GetChild("technique");
while (techniqueElem)
{
cache->BackgroundLoadResource<Technique>(techniqueElem.GetAttribute("name"), true, this);
techniqueElem = techniqueElem.GetNext("technique");
}
XMLElement textureElem = rootElem.GetChild("texture");
while (textureElem)
{
String name = textureElem.GetAttribute("name");
// Detect cube maps by file extension: they are defined by an XML file
/// \todo Differentiate with 3D textures by actually reading the XML content
if (GetExtension(name) == ".xml")
{
#ifdef DESKTOP_GRAPHICS
TextureUnit unit = TU_DIFFUSE;
if (textureElem.HasAttribute("unit"))
unit = ParseTextureUnitName(textureElem.GetAttribute("unit"));
if (unit == TU_VOLUMEMAP)
cache->BackgroundLoadResource<Texture3D>(name, true, this);
else
#endif
cache->BackgroundLoadResource<TextureCube>(name, true, this);
}
else
cache->BackgroundLoadResource<Texture2D>(name, true, this);
textureElem = textureElem.GetNext("texture");
}
}
return true;
}
else
{
ResetToDefaults();
loadXMLFile_.Reset();
return false;
}
}
示例7: FilterPopupImplicitAttributes
bool DropDownList::FilterPopupImplicitAttributes(XMLElement& dest) const
{
if (!Menu::FilterPopupImplicitAttributes(dest))
return false;
// Window popup
if (dest.GetAttribute("style").empty() && !dest.SetAttribute("style", "none"))
return false;
if (!RemoveChildXML(dest, "Layout Mode", "Vertical"))
return false;
if (!RemoveChildXML(dest, "Size"))
return false;
// ListView
XMLElement childElem = dest.GetChild("element");
if (!childElem)
return false;
if (!listView_->FilterAttributes(childElem))
return false;
if (childElem.GetAttribute("style").empty() && !childElem.SetAttribute("style", "none"))
return false;
if (!RemoveChildXML(childElem, "Focus Mode", "NotFocusable"))
return false;
if (!RemoveChildXML(childElem, "Auto Show/Hide Scrollbars", "false"))
return false;
// Horizontal scroll bar
XMLElement hScrollElem = childElem.GetChild("element");
// Vertical scroll bar
XMLElement vScrollElem = hScrollElem.GetNext("element");
// Scroll panel
XMLElement panelElem = vScrollElem.GetNext("element");
if (hScrollElem && !hScrollElem.GetParent().RemoveChild(hScrollElem))
return false;
if (vScrollElem && !vScrollElem.GetParent().RemoveChild(vScrollElem))
return false;
if (panelElem)
{
if (panelElem.GetAttribute("style").empty() && !panelElem.SetAttribute("style", "none"))
return false;
// Item container
XMLElement containerElem = panelElem.GetChild("element");
if (containerElem)
{
if (containerElem.GetAttribute("style").empty() && !containerElem.SetAttribute("style", "none"))
return false;
}
}
return true;
}
示例8: Load
void RenderTargetInfo::Load(const XMLElement& element)
{
name_ = element.GetAttribute("name");
tag_ = element.GetAttribute("tag");
if (element.HasAttribute("enabled"))
enabled_ = element.GetBool("enabled");
if (element.HasAttribute("cubemap"))
cubemap_ = element.GetBool("cubemap");
String formatName = element.GetAttribute("format");
format_ = Graphics::GetFormat(formatName);
if (element.HasAttribute("filter"))
filtered_ = element.GetBool("filter");
if (element.HasAttribute("srgb"))
sRGB_ = element.GetBool("srgb");
if (element.HasAttribute("persistent"))
persistent_ = element.GetBool("persistent");
if (element.HasAttribute("size"))
size_ = element.GetVector2("size");
if (element.HasAttribute("sizedivisor"))
{
size_ = element.GetVector2("sizedivisor");
sizeMode_ = SIZE_VIEWPORTDIVISOR;
}
else if (element.HasAttribute("rtsizedivisor"))
{
// Deprecated rtsizedivisor mode, acts the same as sizedivisor mode now
URHO3D_LOGWARNING("Deprecated rtsizedivisor mode used in rendertarget definition");
size_ = element.GetVector2("rtsizedivisor");
sizeMode_ = SIZE_VIEWPORTDIVISOR;
}
else if (element.HasAttribute("sizemultiplier"))
{
size_ = element.GetVector2("sizemultiplier");
sizeMode_ = SIZE_VIEWPORTMULTIPLIER;
}
if (element.HasAttribute("width"))
size_.x_ = element.GetFloat("width");
if (element.HasAttribute("height"))
size_.y_ = element.GetFloat("height");
if (element.HasAttribute("multisample"))
multiSample_ = Clamp(element.GetInt("multisample"), 1, 16);
if (element.HasAttribute("autoresolve"))
autoResolve_ = element.GetBool("autoresolve");
}
示例9: LoadXML
bool ValueAnimation::LoadXML(const XMLElement& source)
{
valueType_ = VAR_NONE;
eventFrames_.Clear();
String interpMethodString = source.GetAttribute("interpolationmethod");
InterpMethod method = (InterpMethod)GetStringListIndex(interpMethodString.CString(), interpMethodNames, IM_LINEAR);
SetInterpolationMethod(method);
if (interpolationMethod_ == IM_SPLINE)
splineTension_ = source.GetFloat("splinetension");
XMLElement keyFrameElem = source.GetChild("keyframe");
while (keyFrameElem)
{
float time = keyFrameElem.GetFloat("time");
Variant value = keyFrameElem.GetVariant();
SetKeyFrame(time, value);
keyFrameElem = keyFrameElem.GetNext("keyframe");
}
XMLElement eventFrameElem = source.GetChild("eventframe");
while (eventFrameElem)
{
float time = eventFrameElem.GetFloat("time");
unsigned eventType = eventFrameElem.GetUInt("eventtype");
VariantMap eventData = eventFrameElem.GetChild("eventdata").GetVariantMap();
SetEventFrame(time, StringHash(eventType), eventData);
eventFrameElem = eventFrameElem.GetNext("eventframe");
}
return true;
}
示例10: XMLFile
bool SpriteSheet2D::BeginLoadFromXMLFile(Deserializer& source)
{
loadXMLFile_ = new XMLFile(context_);
if (!loadXMLFile_->Load(source))
{
URHO3D_LOGERROR("Could not load sprite sheet");
loadXMLFile_.Reset();
return false;
}
SetMemoryUse(source.GetSize());
XMLElement rootElem = loadXMLFile_->GetRoot("TextureAtlas");
if (!rootElem)
{
URHO3D_LOGERROR("Invalid sprite sheet");
loadXMLFile_.Reset();
return false;
}
// If we're async loading, request the texture now. Finish during EndLoad().
loadTextureName_ = GetParentPath(GetName()) + rootElem.GetAttribute("imagePath");
if (GetAsyncLoadState() == ASYNC_LOADING)
GetSubsystem<ResourceCache>()->BackgroundLoadResource<Texture2D>(loadTextureName_, true, this);
return true;
}
示例11: LoadInfo
bool TmxImageLayer2D::Load(const XMLElement& element, const TileMapInfo2D& info)
{
LoadInfo(element);
XMLElement imageElem = element.GetChild("image");
if (!imageElem)
return false;
position_ = Vector2(0.0f, info.GetMapHeight());
source_ = imageElem.GetAttribute("source");
String textureFilePath = GetParentPath(tmxFile_->GetName()) + source_;
ResourceCache* cache = tmxFile_->GetSubsystem<ResourceCache>();
SharedPtr<Texture2D> texture(cache->GetResource<Texture2D>(textureFilePath));
if (!texture)
{
URHO3D_LOGERROR("Could not load texture " + textureFilePath);
return false;
}
sprite_ = new Sprite2D(tmxFile_->GetContext());
sprite_->SetTexture(texture);
sprite_->SetRectangle(IntRect(0, 0, texture->GetWidth(), texture->GetHeight()));
// Set image hot spot at left top
sprite_->SetHotSpot(Vector2(0.0f, 1.0f));
if (element.HasChild("properties"))
LoadPropertySet(element.GetChild("properties"));
return true;
}
示例12: SplitPath
bool Texture2DArray::BeginLoad(Deserializer& source)
{
ResourceCache* cache = context_->resourceCache();
// In headless mode, do not actually load the texture, just return success
if (!graphics_)
return true;
// If device is lost, retry later
if (graphics_->IsDeviceLost())
{
URHO3D_LOGWARNING("Texture load while device is lost");
dataPending_ = true;
return true;
}
cache->ResetDependencies(this);
QString texPath, texName, texExt;
SplitPath(GetName(), texPath, texName, texExt);
loadParameters_ = (new XMLFile(context_));
if (!loadParameters_->Load(source))
{
loadParameters_.Reset();
return false;
}
loadImages_.clear();
XMLElement textureElem = loadParameters_->GetRoot();
XMLElement layerElem = textureElem.GetChild("layer");
while (layerElem)
{
QString name = layerElem.GetAttribute("name");
// If path is empty, add the XML file path
if (GetPath(name).isEmpty())
name = texPath + name;
loadImages_.push_back(cache->GetTempResource<Image>(name));
cache->StoreResourceDependency(this, name);
layerElem = layerElem.GetNext("layer");
}
// Precalculate mip levels if async loading
if (GetAsyncLoadState() == ASYNC_LOADING)
{
for (unsigned i = 0; i < loadImages_.size(); ++i)
{
if (loadImages_[i])
loadImages_[i]->PrecalculateLevels();
}
}
return true;
}
示例13: LoadXML
bool Animatable::LoadXML(const XMLElement& source, bool setInstanceDefault)
{
if (!Serializable::LoadXML(source, setInstanceDefault))
return false;
SetObjectAnimation(0);
attributeAnimationInfos_.Clear();
XMLElement elem = source.GetChild("objectanimation");
if (elem)
{
SharedPtr<ObjectAnimation> objectAnimation(new ObjectAnimation(context_));
if (!objectAnimation->LoadXML(elem))
return false;
SetObjectAnimation(objectAnimation);
}
elem = source.GetChild("attributeanimation");
while (elem)
{
String name = elem.GetAttribute("name");
SharedPtr<ValueAnimation> attributeAnimation(new ValueAnimation(context_));
if (!attributeAnimation->LoadXML(elem))
return false;
String wrapModeString = source.GetAttribute("wrapmode");
WrapMode wrapMode = WM_LOOP;
for (int i = 0; i <= WM_CLAMP; ++i)
{
if (wrapModeString == wrapModeNames[i])
{
wrapMode = (WrapMode)i;
break;
}
}
float speed = elem.GetFloat("speed");
SetAttributeAnimation(name, attributeAnimation, wrapMode, speed);
elem = elem.GetNext("attributeanimation");
}
return true;
}
示例14: SetName
bool TmxFile2D::BeginLoad(Deserializer& source)
{
if (GetName().Empty())
SetName(source.GetName());
loadXMLFile_ = new XMLFile(context_);
if (!loadXMLFile_->Load(source))
{
URHO3D_LOGERROR("Load XML failed " + source.GetName());
loadXMLFile_.Reset();
return false;
}
XMLElement rootElem = loadXMLFile_->GetRoot("map");
if (!rootElem)
{
URHO3D_LOGERROR("Invalid tmx file " + source.GetName());
loadXMLFile_.Reset();
return false;
}
// If we're async loading, request the texture now. Finish during EndLoad().
if (GetAsyncLoadState() == ASYNC_LOADING)
{
for (XMLElement tileSetElem = rootElem.GetChild("tileset"); tileSetElem; tileSetElem = tileSetElem.GetNext("tileset"))
{
// Tile set defined in TSX file
if (tileSetElem.HasAttribute("source"))
{
String source = tileSetElem.GetAttribute("source");
SharedPtr<XMLFile> tsxXMLFile = LoadTSXFile(source);
if (!tsxXMLFile)
return false;
tsxXMLFiles_[source] = tsxXMLFile;
String textureFilePath =
GetParentPath(GetName()) + tsxXMLFile->GetRoot("tileset").GetChild("image").GetAttribute("source");
GetSubsystem<ResourceCache>()->BackgroundLoadResource<Texture2D>(textureFilePath, true, this);
}
else
{
String textureFilePath = GetParentPath(GetName()) + tileSetElem.GetChild("image").GetAttribute("source");
GetSubsystem<ResourceCache>()->BackgroundLoadResource<Texture2D>(textureFilePath, true, this);
}
}
for (XMLElement imageLayerElem = rootElem.GetChild("imagelayer"); imageLayerElem;
imageLayerElem = imageLayerElem.GetNext("imagelayer"))
{
String textureFilePath = GetParentPath(GetName()) + imageLayerElem.GetChild("image").GetAttribute("source");
GetSubsystem<ResourceCache>()->BackgroundLoadResource<Texture2D>(textureFilePath, true, this);
}
}
return true;
}
示例15:
void TmxLayer2D::LoadInfo(const XMLElement& element)
{
name_ = element.GetAttribute("name");
width_ = element.GetInt("width");
height_ = element.GetInt("height");
if (element.HasAttribute("visible"))
visible_ = element.GetInt("visible") != 0;
else
visible_ = true;
}