DynamicFontGenerator::DynamicFontGenerator(const core::string& name)
:BaseFont(name)
{
	m_data = new DynamicFontGeneratorImpl;
	m_dirty = false;
	m_underline = false;
	m_bold = false;
	m_italic = false;
	m_textureSize = 1024;
	AddCharacterRange('A', 'Z');
	AddCharacterRange('a', 'z');
	AddCharacterRange('0', '9');
}
示例#2
0
int AddRange(char *e, int *place, CharSetT *cs) {
  int first, second, input, number1[3], number2[3];
  
  input = NextCharacter(e, *place);
  first = input;
  AdvanceParser(e, place);
  if(input == '\\') {
    first = NextCharacter(e, *place);
    AdvanceParser(e, place);
  }
  if (input == '#') {
    number1[0] = NextCharacter(e, *place); AdvanceParser(e, place);
    number1[1] = NextCharacter(e, *place); AdvanceParser(e, place);
    number1[2] = NextCharacter(e, *place); AdvanceParser(e, place);
    if (!isdigit(number1[0]) || !isdigit(number1[1]) || !isdigit(number1[2]))
      return 0;
    else first = ((number1[0] - '0') * 100 + (number1[1] - '0') * 
		  10 + number1[2] - '0');
    if (first > 255) return 0;
  } else if (strchr(specialChars, first)) return 0;
  if (NextCharacter(e, *place) != '-') return 0;
  AdvanceParser(e, place);
  input = NextCharacter(e, *place);
  AdvanceParser(e, place);
  second = input;
  if(input == '\\') {
    second = NextCharacter(e, *place);
    AdvanceParser(e, place);
  }
  else if (input == '#') {
    number2[0] = NextCharacter(e, *place); AdvanceParser(e, place);
    number2[1] = NextCharacter(e, *place); AdvanceParser(e, place);
    number2[2] = NextCharacter(e, *place); AdvanceParser(e, place);
    if (!isdigit(number2[0]) || !isdigit(number2[1]) || !isdigit(number2[2]))
      return 0;
    else second = ((number2[0] - '0') * 100 + (number2[1] - '0') * 
		   10 + number2[2] - '0');
    if (second > 255) return 0;
  } else if (strchr(specialChars, second)) return 0;
  if (first >= second) return 0;
  AddCharacterRange(first, second, cs);

  return 1;
}