/* The layer recognizes some special properties, like cc_vertez */ private void ParseInternalProperties() { // if cc_vertex=automatic, then tiles will be rendered using vertexz m_fAlphaFuncValue = 0; string vertexz = PropertyNamed("cc_vertexz"); if (!String.IsNullOrEmpty(vertexz)) { // If "automatic" is on, then parse the "cc_alpha_func" too if (vertexz == "automatic") { m_bUseAutomaticVertexZ = true; string alphaFuncVal = PropertyNamed("cc_alpha_func"); //float alphaFuncValue = 0.0f; if (!String.IsNullOrEmpty(alphaFuncVal)) { m_fAlphaFuncValue = CCUtils.CCParseFloat(alphaFuncVal); } //setShaderProgram(CCShaderCache::sharedShaderCache().programForKey(kCCShader_PositionTextureColorAlphaTest)); //GLint alphaValueLocation = glGetUniformLocation(getShaderProgram().getProgram(), kCCUniformAlphaTestValue); // NOTE: alpha test shader is hard-coded to use the equivalent of a glAlphaFunc(GL_GREATER) comparison //getShaderProgram().setUniformLocationWith1f(alphaValueLocation, alphaFuncValue); } else { m_nVertexZvalue = CCUtils.CCParseInt(vertexz); } } }
// common private void parseCommonArguments(string line) { ////////////////////////////////////////////////////////////////////////// // line to parse: // common lineHeight=104 base=26 scaleW=1024 scaleH=512 pages=1 packed=0 ////////////////////////////////////////////////////////////////////////// // Height int index = line.IndexOf("lineHeight="); int index2 = line.IndexOf(' ', index); string value = line.Substring(index, index2 - index); m_nCommonHeight = CCUtils.CCParseInt(value.Replace("lineHeight=", "")); // scaleW. sanity check index = line.IndexOf("scaleW=") + "scaleW=".Length; index2 = line.IndexOf(' ', index); value = line.Substring(index, index2 - index); //CCAssert(atoi(value.c_str()) <= CCConfiguration::sharedConfiguration()->getMaxTextureSize(), "CCLabelBMFont: page can't be larger than supported"); // scaleH. sanity check index = line.IndexOf("scaleH=") + "scaleH=".Length; index2 = line.IndexOf(' ', index); value = line.Substring(index, index2 - index); //CCAssert(atoi(value.c_str()) <= CCConfiguration::sharedConfiguration()->getMaxTextureSize(), "CCLabelBMFont: page can't be larger than supported"); // pages. sanity check index = line.IndexOf("pages=") + "pages=".Length; index2 = line.IndexOf(' ', index); value = line.Substring(index, index2 - index); //CCAssert(atoi(value.c_str()) == 1, "CCBitfontAtlas: only supports 1 page"); // packed (ignore) What does this mean ?? }
private void parseCharacterDefinition(string line, ccBMFontDef characterDefinition) { ////////////////////////////////////////////////////////////////////////// // line to parse: // char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=44 xadvance=14 page=0 chnl=0 ////////////////////////////////////////////////////////////////////////// // Character ID int index = line.IndexOf("id="); int index2 = line.IndexOf(' ', index); string value = line.Substring(index, index2 - index); characterDefinition.charID = CCUtils.CCParseInt(value.Replace("id=", "")); //CCAssert(characterDefinition->charID < kCCBMFontMaxChars, "BitmpaFontAtlas: CharID bigger than supported"); // Character x index = line.IndexOf("x="); index2 = line.IndexOf(' ', index); value = line.Substring(index, index2 - index); characterDefinition.rect.Origin.X = CCUtils.CCParseFloat(value.Replace("x=", "")); // Character y index = line.IndexOf("y="); index2 = line.IndexOf(' ', index); value = line.Substring(index, index2 - index); characterDefinition.rect.Origin.Y = CCUtils.CCParseFloat(value.Replace("y=", "")); // Character width index = line.IndexOf("width="); index2 = line.IndexOf(' ', index); value = line.Substring(index, index2 - index); characterDefinition.rect.Size.Width = CCUtils.CCParseFloat(value.Replace("width=", "")); // Character height index = line.IndexOf("height="); index2 = line.IndexOf(' ', index); value = line.Substring(index, index2 - index); characterDefinition.rect.Size.Height = CCUtils.CCParseFloat(value.Replace("height=", "")); // Character xoffset index = line.IndexOf("xoffset="); index2 = line.IndexOf(' ', index); value = line.Substring(index, index2 - index); characterDefinition.xOffset = CCUtils.CCParseInt(value.Replace("xoffset=", "")); // Character yoffset index = line.IndexOf("yoffset="); index2 = line.IndexOf(' ', index); value = line.Substring(index, index2 - index); characterDefinition.yOffset = CCUtils.CCParseInt(value.Replace("yoffset=", "")); // Character xadvance index = line.IndexOf("xadvance="); index2 = line.IndexOf(' ', index); value = line.Substring(index, index2 - index); characterDefinition.xAdvance = CCUtils.CCParseInt(value.Replace("xadvance=", "")); }
internal static int DeSerializeInt(StreamReader sr) { string s = sr.ReadLine(); if (s == null) { CCLog.Log("DeSerializeInt: null"); return(0); } return(CCUtils.CCParseInt(s)); }
public int GetIntegerForKey(string pKey, int defaultValue) { string value = getValueForKey(pKey); int ret = defaultValue; if (value != null) { ret = CCUtils.CCParseInt(value); } return(ret); }
private void parseKerningEntry(string line) { ////////////////////////////////////////////////////////////////////////// // line to parse: // kerning first=121 second=44 amount=-7 ////////////////////////////////////////////////////////////////////////// // first int first; int index = line.IndexOf("first="); int index2 = line.IndexOf(' ', index); string value = line.Substring(index, index2 - index); first = CCUtils.CCParseInt(value.Replace("first=", "")); // second int second; index = line.IndexOf("second="); index2 = line.IndexOf(' ', index); value = line.Substring(index, index2 - index); second = CCUtils.CCParseInt(value.Replace("second=", "")); // amount int amount; index = line.IndexOf("amount="); index2 = line.IndexOf(' ', index); value = line.Substring(index); amount = CCUtils.CCParseInt(value.Replace("amount=", "")); try { var element = new tKerningHashElement(); element.amount = amount; element.key = (first << 16) | (second & 0xffff); m_pKerningDictionary.Add(element.key, element); } catch (Exception ex) { CCLog.Log("Failed to parse font line: {0}", line); } }
// info face private void parseInfoArguments(string line) { ////////////////////////////////////////////////////////////////////////// // possible lines to parse: // info face="Script" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,4,3,2 spacing=0,0 outline=0 // info face="Cracked" size=36 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 ////////////////////////////////////////////////////////////////////////// // padding int index = line.IndexOf("padding="); int index2 = line.IndexOf(' ', index); string value = line.Substring(index, index2 - index); value = value.Replace("padding=", ""); string[] temp = value.Split(','); m_tPadding.top = CCUtils.CCParseInt(temp[0]); m_tPadding.right = CCUtils.CCParseInt(temp[1]); m_tPadding.bottom = CCUtils.CCParseInt(temp[2]); m_tPadding.left = CCUtils.CCParseInt(temp[3]); //CCLOG("cocos2d: padding: %d,%d,%d,%d", m_tPadding.left, m_tPadding.top, m_tPadding.right, m_tPadding.bottom); }
public bool Parse(string str, int length) { TextReader textReader = new StringReader(str); var setting = new XmlReaderSettings(); #if !PSM setting.DtdProcessing = DtdProcessing.Ignore; #endif XmlReader xmlReader = XmlReader.Create(textReader, setting); int dataindex = 0; int Width = 0; int Height = 0; ; while (xmlReader.Read()) { string name = xmlReader.Name; switch (xmlReader.NodeType) { case XmlNodeType.Element: string[] attrs = null; if (name == "map") { Width = CCUtils.CCParseInt(xmlReader.GetAttribute("width")); Height = CCUtils.CCParseInt(xmlReader.GetAttribute("height")); } if (xmlReader.HasAttributes) { attrs = new string[xmlReader.AttributeCount * 2]; xmlReader.MoveToFirstAttribute(); int i = 0; attrs[0] = xmlReader.Name; attrs[1] = xmlReader.Value; i += 2; while (xmlReader.MoveToNextAttribute()) { attrs[i] = xmlReader.Name; attrs[i + 1] = xmlReader.Value; i += 2; } // Move the reader back to the element node. xmlReader.MoveToElement(); } StartElement(this, name, attrs); byte[] buffer = null; //read data content of tmx file if (name == "data") { if (attrs != null) { string encoding = ""; for (int i = 0; i < attrs.Length; i++) { if (attrs[i] == "encoding") { encoding = attrs[i + 1]; } } if (encoding == "base64") { int dataSize = (Width * Height * 4) + 1024; buffer = new byte[dataSize]; xmlReader.ReadElementContentAsBase64(buffer, 0, dataSize); } else { string value = xmlReader.ReadElementContentAsString(); buffer = Encoding.UTF8.GetBytes(value); } } TextHandler(this, buffer, buffer.Length); EndElement(this, name); } else if (name == "key" || name == "integer" || name == "real" || name == "string") { string value = xmlReader.ReadElementContentAsString(); buffer = Encoding.UTF8.GetBytes(value); TextHandler(this, buffer, buffer.Length); EndElement(this, name); } else if (xmlReader.IsEmptyElement) { EndElement(this, name); } break; case XmlNodeType.EndElement: EndElement(this, xmlReader.Name); dataindex++; break; default: break; } } return(true); }