Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

more nice comments, and also updated the KeepLevel loading (if you want to load a Resource to a KeepLevel just append it at loadtime:
eg.:
Texture tex = ResourceTexture(orxonox.png, GL_TEXTURE_2D, GameEnd);
where GameEnd is the KeepLevel as defined in orxonox.cc→initResources()

File size: 1.7 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, const Resources::KeepLevel& keepLevel)
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(), keepLevel, this->Font::dataPointer()));
28  }
29}
30
31ResourceFont ResourceFont::createFromString(const std::string& loadString, const Resources::KeepLevel& keepLevel)
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, keepLevel);
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.