本文整理汇总了C++中Theme::addRef方法的典型用法代码示例。如果您正苦于以下问题:C++ Theme::addRef方法的具体用法?C++ Theme::addRef怎么用?C++ Theme::addRef使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Theme
的用法示例。
在下文中一共展示了Theme::addRef方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: lua_Theme_addRef
static int lua_Theme_addRef(lua_State* state)
{
// Get the number of parameters.
int paramCount = lua_gettop(state);
// Attempt to match the parameters to a valid binding.
switch (paramCount)
{
case 1:
{
if ((lua_type(state, 1) == LUA_TUSERDATA))
{
Theme* instance = getInstance(state);
instance->addRef();
return 0;
}
lua_pushstring(state, "lua_Theme_addRef - Failed to match the given parameters to a valid function signature.");
lua_error(state);
break;
}
default:
{
lua_pushstring(state, "Invalid number of parameters (expected 1).");
lua_error(state);
break;
}
}
return 0;
}
示例2: create
Theme* Theme::create(const char* url)
{
GP_ASSERT(url);
// Search theme cache first.
for (size_t i = 0, count = __themeCache.size(); i < count; ++i)
{
Theme* t = __themeCache[i];
if (t->_url == url)
{
// Found a match.
t->addRef();
return t;
}
}
// Load theme properties from file path.
Properties* properties = Properties::create(url);
GP_ASSERT(properties);
if (properties == NULL)
{
return NULL;
}
// Check if the Properties is valid and has a valid namespace.
Properties* themeProperties = (strlen(properties->getNamespace()) > 0) ? properties : properties->getNextNamespace();
GP_ASSERT(themeProperties);
if (!themeProperties || !(strcmp(themeProperties->getNamespace(), "theme") == 0))
{
SAFE_DELETE(properties);
return NULL;
}
// Create a new theme.
Theme* theme = new Theme();
theme->_url = url;
// Parse the Properties object and set up the theme.
const char* textureFile = themeProperties->getString("texture");
theme->_texture = Texture::create(textureFile, false);
GP_ASSERT(theme->_texture);
theme->_spriteBatch = SpriteBatch::create(theme->_texture);
GP_ASSERT(theme->_spriteBatch);
theme->_spriteBatch->getSampler()->setFilterMode(Texture::NEAREST, Texture::NEAREST);
float tw = 1.0f / theme->_texture->getWidth();
float th = 1.0f / theme->_texture->getHeight();
Properties* space = themeProperties->getNextNamespace();
while (space != NULL)
{
// First load all cursors, checkboxes etc. that can be referred to by styles.
const char* spacename = space->getNamespace();
if (strcmp(spacename, "image") == 0)
{
theme->_images.push_back(ThemeImage::create(tw, th, space, Vector4::one()));
}
else if (strcmp(spacename, "imageList") == 0)
{
theme->_imageLists.push_back(ImageList::create(tw, th, space));
}
else if (strcmp(spacename, "skin") == 0)
{
Theme::Border border;
Properties* innerSpace = space->getNextNamespace();
if (innerSpace)
{
const char* innerSpacename = innerSpace->getNamespace();
if (strcmp(innerSpacename, "border") == 0)
{
border.top = innerSpace->getFloat("top");
border.bottom = innerSpace->getFloat("bottom");
border.left = innerSpace->getFloat("left");
border.right = innerSpace->getFloat("right");
}
}
Vector4 regionVector;
space->getVector4("region", ®ionVector);
const Rectangle region(regionVector.x, regionVector.y, regionVector.z, regionVector.w);
Vector4 color(1, 1, 1, 1);
if (space->exists("color"))
{
space->getColor("color", &color);
}
Skin* skin = Skin::create(space->getId(), tw, th, region, border, color);
GP_ASSERT(skin);
theme->_skins.push_back(skin);
}
space = themeProperties->getNextNamespace();
}
themeProperties->rewind();
space = themeProperties->getNextNamespace();
while (space != NULL)
//.........这里部分代码省略.........