Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/new_class_id/src/lib/graphics/text_engine/resource_font.cc @ 9847

Last change on this file since 9847 was 9847, checked in by bensch, 18 years ago

renamed NewResource to Resource

File size: 1.6 KB
Line 
1
2#include "resource_font.h"
3#include "substring.h"
4#include "multi_type.h"
5#include "debug.h"
6
7
8ResourceFont::ResourceFont(const std::string& fontName, unsigned int renderSize)
9  : Font(), Resource(&ResourceFont::type)
10{
11  assert(!fontName.empty());
12  Resources::StorePointer* ptr = this->acquireResource(fontName + ',' + MultiType((int)renderSize).getString());
13
14  if (ptr)
15  {
16    PRINTF(5)("FOUND FONT: %s\n", fontName.c_str());
17    this->Font::acquireData(static_cast<ResourceFont::FontResourcePointer*>(ptr)->ptr());
18  }
19  else
20  {
21    PRINTF(5)("NOT FOUND FONT: %s\n", fontName.c_str());
22    std::string fileName = this->Resource::locateFile(fontName);
23
24    printf("FONTFILE %s TO %s\n", fontName.c_str(), fileName.c_str());
25
26    this->Font::loadFontFromTTF(fileName, renderSize);
27    this->Resource::addResource(new ResourceFont::FontResourcePointer(fontName + ',' + MultiType((int)renderSize).getString(), Resources::KeepLevel(0), this->Font::dataPointer()));
28  }
29}
30
31ResourceFont ResourceFont::createFromString(const std::string& loadString)
32{
33  SubString loadValues(loadString, ',');
34  std::string fontName;
35  unsigned int renderSize = 20;
36  if (loadValues.size() > 0)
37    fontName = loadValues[0];
38  if (loadValues.size() > 1)
39    renderSize = (unsigned int)MultiType(loadValues[2]).getInt();
40
41  return ResourceFont(fontName, renderSize);
42}
43
44
45
46Resources::tType<ResourceFont> ResourceFont::type("Font");
47
48
49
50
51
52ResourceFont::FontResourcePointer::FontResourcePointer(const std::string& loadString, const Resources::KeepLevel& keepLevel, const FontData::Pointer& data)
53    : Resources::StorePointer(loadString, keepLevel) , pointer(data)
54{}
55
56
Note: See TracBrowser for help on using the repository browser.