本文整理汇总了C++中CAnimation::Create方法的典型用法代码示例。如果您正苦于以下问题:C++ CAnimation::Create方法的具体用法?C++ CAnimation::Create怎么用?C++ CAnimation::Create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CAnimation
的用法示例。
在下文中一共展示了CAnimation::Create方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetAnimations
bool CGUIControlFactory::GetAnimations(TiXmlNode *control, const CRect &rect, int context, vector<CAnimation> &animations)
{
TiXmlElement* node = control->FirstChildElement("animation");
bool ret = false;
if (node)
animations.clear();
while (node)
{
ret = true;
if (node->FirstChild())
{
CAnimation anim;
anim.Create(node, rect, context);
animations.push_back(anim);
if (strcmpi(node->FirstChild()->Value(), "VisibleChange") == 0)
{ // add the hidden one as well
TiXmlElement hidden(*node);
hidden.FirstChild()->SetValue("hidden");
const char *start = hidden.Attribute("start");
const char *end = hidden.Attribute("end");
if (start && end)
{
CStdString temp = end;
hidden.SetAttribute("end", start);
hidden.SetAttribute("start", temp.c_str());
}
else if (start)
hidden.SetAttribute("end", start);
else if (end)
hidden.SetAttribute("start", end);
CAnimation anim2;
anim2.Create(&hidden, rect, context);
animations.push_back(anim2);
}
}
node = node->NextSiblingElement("animation");
}
return ret;
}
示例2: Load
bool CGUIWindow::Load(TiXmlDocument &xmlDoc)
{
TiXmlElement* pRootElement = xmlDoc.RootElement();
if (strcmpi(pRootElement->Value(), "window"))
{
CLog::Log(LOGERROR, "file : XML file doesnt contain <window>");
return false;
}
// set the scaling resolution so that any control creation or initialisation can
// be done with respect to the correct aspect ratio
g_graphicsContext.SetScalingResolution(m_coordsRes, m_needsScaling);
// Resolve any includes that may be present
g_SkinInfo->ResolveIncludes(pRootElement);
// now load in the skin file
SetDefaults();
CGUIControlFactory::GetInfoColor(pRootElement, "backgroundcolor", m_clearBackground, GetID());
CGUIControlFactory::GetActions(pRootElement, "onload", m_loadActions);
CGUIControlFactory::GetActions(pRootElement, "onunload", m_unloadActions);
CGUIControlFactory::GetHitRect(pRootElement, m_hitRect);
TiXmlElement *pChild = pRootElement->FirstChildElement();
while (pChild)
{
CStdString strValue = pChild->Value();
if (strValue == "type" && pChild->FirstChild())
{
// if we have are a window type (ie not a dialog), and we have <type>dialog</type>
// then make this window act like a dialog
if (!IsDialog() && strcmpi(pChild->FirstChild()->Value(), "dialog") == 0)
m_isDialog = true;
}
else if (strValue == "previouswindow" && pChild->FirstChild())
{
m_previousWindow = CButtonTranslator::TranslateWindow(pChild->FirstChild()->Value());
}
else if (strValue == "defaultcontrol" && pChild->FirstChild())
{
const char *always = pChild->Attribute("always");
if (always && strcmpi(always, "true") == 0)
m_defaultAlways = true;
m_defaultControl = atoi(pChild->FirstChild()->Value());
}
else if (strValue == "visible" && pChild->FirstChild())
{
CStdString condition;
CGUIControlFactory::GetConditionalVisibility(pRootElement, condition);
m_visibleCondition = g_infoManager.Register(condition, GetID());
}
else if (strValue == "animation" && pChild->FirstChild())
{
CRect rect(0, 0, (float)m_coordsRes.iWidth, (float)m_coordsRes.iHeight);
CAnimation anim;
anim.Create(pChild, rect, GetID());
m_animations.push_back(anim);
}
else if (strValue == "zorder" && pChild->FirstChild())
{
m_renderOrder = atoi(pChild->FirstChild()->Value());
}
else if (strValue == "coordinates")
{
XMLUtils::GetFloat(pChild, "posx", m_posX);
XMLUtils::GetFloat(pChild, "posy", m_posY);
TiXmlElement *originElement = pChild->FirstChildElement("origin");
while (originElement)
{
COrigin origin;
originElement->QueryFloatAttribute("x", &origin.x);
originElement->QueryFloatAttribute("y", &origin.y);
if (originElement->FirstChild())
origin.condition = g_infoManager.Register(originElement->FirstChild()->Value(), GetID());
m_origins.push_back(origin);
originElement = originElement->NextSiblingElement("origin");
}
}
else if (strValue == "camera")
{ // z is fixed
pChild->QueryFloatAttribute("x", &m_camera.x);
pChild->QueryFloatAttribute("y", &m_camera.y);
m_hasCamera = true;
}
else if (strValue == "controls")
{
TiXmlElement *pControl = pChild->FirstChildElement();
while (pControl)
{
if (strcmpi(pControl->Value(), "control") == 0)
{
LoadControl(pControl, NULL);
}
pControl = pControl->NextSiblingElement();
}
}
else if (strValue == "allowoverlay")
{
bool overlay = false;
//.........这里部分代码省略.........
示例3: Load
bool CGUIWindow::Load(TiXmlElement *pRootElement)
{
if (!pRootElement)
return false;
// set the scaling resolution so that any control creation or initialisation can
// be done with respect to the correct aspect ratio
CServiceBroker::GetWinSystem()->GetGfxContext().SetScalingResolution(m_coordsRes, m_needsScaling);
// now load in the skin file
SetDefaults();
CGUIControlFactory::GetInfoColor(pRootElement, "backgroundcolor", m_clearBackground, GetID());
CGUIControlFactory::GetActions(pRootElement, "onload", m_loadActions);
CGUIControlFactory::GetActions(pRootElement, "onunload", m_unloadActions);
CRect parentRect(0, 0, static_cast<float>(m_coordsRes.iWidth), static_cast<float>(m_coordsRes.iHeight));
CGUIControlFactory::GetHitRect(pRootElement, m_hitRect, parentRect);
TiXmlElement *pChild = pRootElement->FirstChildElement();
while (pChild)
{
std::string strValue = pChild->Value();
if (strValue == "previouswindow" && pChild->FirstChild())
{
m_previousWindow = CWindowTranslator::TranslateWindow(pChild->FirstChild()->Value());
}
else if (strValue == "defaultcontrol" && pChild->FirstChild())
{
const char *always = pChild->Attribute("always");
if (always && StringUtils::EqualsNoCase(always, "true"))
m_defaultAlways = true;
m_defaultControl = atoi(pChild->FirstChild()->Value());
}
else if(strValue == "menucontrol" && pChild->FirstChild())
{
m_menuControlID = atoi(pChild->FirstChild()->Value());
}
else if (strValue == "visible" && pChild->FirstChild())
{
std::string condition;
CGUIControlFactory::GetConditionalVisibility(pRootElement, condition);
m_visibleCondition = CServiceBroker::GetGUI()->GetInfoManager().Register(condition, GetID());
}
else if (strValue == "animation" && pChild->FirstChild())
{
CRect rect(0, 0, static_cast<float>(m_coordsRes.iWidth), static_cast<float>(m_coordsRes.iHeight));
CAnimation anim;
anim.Create(pChild, rect, GetID());
m_animations.push_back(anim);
}
else if (strValue == "zorder" && pChild->FirstChild())
{
m_renderOrder = atoi(pChild->FirstChild()->Value());
}
else if (strValue == "coordinates")
{
XMLUtils::GetFloat(pChild, "posx", m_posX);
XMLUtils::GetFloat(pChild, "posy", m_posY);
XMLUtils::GetFloat(pChild, "left", m_posX);
XMLUtils::GetFloat(pChild, "top", m_posY);
TiXmlElement *originElement = pChild->FirstChildElement("origin");
while (originElement)
{
COrigin origin;
origin.x = CGUIControlFactory::ParsePosition(originElement->Attribute("x"), static_cast<float>(m_coordsRes.iWidth));
origin.y = CGUIControlFactory::ParsePosition(originElement->Attribute("y"), static_cast<float>(m_coordsRes.iHeight));
if (originElement->FirstChild())
origin.condition = CServiceBroker::GetGUI()->GetInfoManager().Register(originElement->FirstChild()->Value(), GetID());
m_origins.push_back(origin);
originElement = originElement->NextSiblingElement("origin");
}
}
else if (strValue == "camera")
{ // z is fixed
m_camera.x = CGUIControlFactory::ParsePosition(pChild->Attribute("x"), static_cast<float>(m_coordsRes.iWidth));
m_camera.y = CGUIControlFactory::ParsePosition(pChild->Attribute("y"), static_cast<float>(m_coordsRes.iHeight));
m_hasCamera = true;
}
else if (strValue == "depth" && pChild->FirstChild())
{
float stereo = static_cast<float>(atof(pChild->FirstChild()->Value()));
m_stereo = std::max(-1.f, std::min(1.f, stereo));
}
else if (strValue == "controls")
{
TiXmlElement *pControl = pChild->FirstChildElement();
while (pControl)
{
if (StringUtils::EqualsNoCase(pControl->Value(), "control"))
{
LoadControl(pControl, nullptr, CRect(0, 0, static_cast<float>(m_coordsRes.iWidth), static_cast<float>(m_coordsRes.iHeight)));
}
pControl = pControl->NextSiblingElement();
}
}
pChild = pChild->NextSiblingElement();
}
//.........这里部分代码省略.........
示例4: Load
bool CGUIWindow::Load(TiXmlElement* pRootElement)
{
if (!pRootElement)
return false;
if (strcmpi(pRootElement->Value(), "window"))
{
CLog::Log(LOGERROR, "file : XML file doesnt contain <window>");
return false;
}
// we must create copy of root element as we will manipulate it when resolving includes
// and we don't want original root element to change
pRootElement = (TiXmlElement*)pRootElement->Clone();
// set the scaling resolution so that any control creation or initialisation can
// be done with respect to the correct aspect ratio
g_graphicsContext.SetScalingResolution(m_coordsRes, m_needsScaling);
// Resolve any includes that may be present and save conditions used to do it
g_SkinInfo->ResolveIncludes(pRootElement, &m_xmlIncludeConditions);
// now load in the skin file
SetDefaults();
CGUIControlFactory::GetInfoColor(pRootElement, "backgroundcolor", m_clearBackground, GetID());
CGUIControlFactory::GetActions(pRootElement, "onload", m_loadActions);
CGUIControlFactory::GetActions(pRootElement, "onunload", m_unloadActions);
CGUIControlFactory::GetHitRect(pRootElement, m_hitRect);
TiXmlElement *pChild = pRootElement->FirstChildElement();
while (pChild)
{
std::string strValue = pChild->Value();
if (strValue == "type" && pChild->FirstChild())
{
// if we have are a window type (ie not a dialog), and we have <type>dialog</type>
// then make this window act like a dialog
if (!IsDialog() && strcmpi(pChild->FirstChild()->Value(), "dialog") == 0)
m_isDialog = true;
}
else if (strValue == "previouswindow" && pChild->FirstChild())
{
m_previousWindow = CButtonTranslator::TranslateWindow(pChild->FirstChild()->Value());
}
else if (strValue == "defaultcontrol" && pChild->FirstChild())
{
const char *always = pChild->Attribute("always");
if (always && strcmpi(always, "true") == 0)
m_defaultAlways = true;
m_defaultControl = atoi(pChild->FirstChild()->Value());
}
else if(strValue == "menucontrol" && pChild->FirstChild())
{
m_menuControlID = atoi(pChild->FirstChild()->Value());
}
else if (strValue == "visible" && pChild->FirstChild())
{
std::string condition;
CGUIControlFactory::GetConditionalVisibility(pRootElement, condition);
m_visibleCondition = g_infoManager.Register(condition, GetID());
}
else if (strValue == "animation" && pChild->FirstChild())
{
CRect rect(0, 0, (float)m_coordsRes.iWidth, (float)m_coordsRes.iHeight);
CAnimation anim;
anim.Create(pChild, rect, GetID());
m_animations.push_back(anim);
}
else if (strValue == "zorder" && pChild->FirstChild())
{
m_renderOrder = atoi(pChild->FirstChild()->Value());
}
else if (strValue == "coordinates")
{
XMLUtils::GetFloat(pChild, "posx", m_posX);
XMLUtils::GetFloat(pChild, "posy", m_posY);
XMLUtils::GetFloat(pChild, "left", m_posX);
XMLUtils::GetFloat(pChild, "top", m_posY);
TiXmlElement *originElement = pChild->FirstChildElement("origin");
while (originElement)
{
COrigin origin;
originElement->QueryFloatAttribute("x", &origin.x);
originElement->QueryFloatAttribute("y", &origin.y);
if (originElement->FirstChild())
origin.condition = g_infoManager.Register(originElement->FirstChild()->Value(), GetID());
m_origins.push_back(origin);
originElement = originElement->NextSiblingElement("origin");
}
}
else if (strValue == "camera")
{ // z is fixed
pChild->QueryFloatAttribute("x", &m_camera.x);
pChild->QueryFloatAttribute("y", &m_camera.y);
m_hasCamera = true;
}
else if (strValue == "depth" && pChild->FirstChild())
{
float stereo = (float)atof(pChild->FirstChild()->Value());;
//.........这里部分代码省略.........