コード例 #1
0
ファイル: mgGenSurface.cpp プロジェクト: Kelimion/SeaOfMemes
//--------------------------------------------------------------
// create a brush
const mgBrush* mgGenSurface::createBrush(
  const mgColor& color)
{
  mgString key;
//=-=  key.format("brush-%x", colorPixel(color));
  
  mgResource* value = findResource(key);
  if (value != NULL)
    return (mgBrush*) value;

  mgBrush* brush = new mgBrush(color);
  brush->m_key = key;
  saveResource(brush);

  return brush;
}
コード例 #2
0
ファイル: mgGenSurface.cpp プロジェクト: Kelimion/SeaOfMemes
//--------------------------------------------------------------
// create an icon
const mgIcon* mgGenSurface::createIcon(
  const char* fileName)
{
  mgString key;
  key.format("icon-%s", (const char*) fileName);
  mgResource* value = findResource(key);
  if (value != NULL)
    return (mgIcon*) value;

  // create the icon
  mgIcon* icon = new mgIcon();
  // =-= load fileName);
  icon->m_key = key;
  saveResource(icon);
  
  return icon;
}
コード例 #3
0
ファイル: mgGenSurface.cpp プロジェクト: Kelimion/SeaOfMemes
//--------------------------------------------------------------
// create pen from color
const mgPen* mgGenSurface::createPen(
  double thick,
  const mgColor& color)
{
  mgString key;
//=-=  key.format("pen-%x,%d", colorPixel(color), (int) (thick*100));
  
  mgResource* value = findResource(key);
  if (value != NULL)
    return (mgPen*) value;

  // create the pen
  mgPen* pen = new mgPen(thick, color);
  pen->m_key = key;
  saveResource(pen);
  
  return pen;
}
コード例 #4
0
ファイル: peres.c プロジェクト: jweyrich/pev
static void extractResources(pe_ctx_t *ctx, const NODE_PERES *node)
{
	assert(node != NULL);
	int count = 0;

	while (node->lastNode != NULL) {
		node = node->lastNode;
	}

	while (node != NULL) {
		if (node->nodeType != RDT_DATA_ENTRY) {
			node = node->nextNode;
			continue;
		}
		count++;
		saveResource(ctx, node);
		node = node->nextNode;
	}
}
コード例 #5
0
ファイル: SaveManager.cpp プロジェクト: Xaxetrov/Fil-Rouge
void SaveManager::saveWorld(const World& world, QString savingPath)
{
    QFile fileXml(savingPath);
    // Ouverture du fichier en écriture et en texte. (sort de la fonction si le fichier ne s'ouvre pas)
    if(!fileXml.open(QFile::WriteOnly | QFile::Text))
    {   std::cerr << "failed to open file: " << savingPath.toStdString() << std::endl;
        return;
    }
    QXmlStreamWriter writer(&fileXml);

    // Active l'indentation automatique du fichier XML pour une meilleur visibilite
    writer.setAutoFormatting(true);

    // Insert la norme de codification du fichier XML :
    writer.writeStartDocument();

    writer.writeStartElement("World");

    writer.writeTextElement("x", QString::number(world.getSizeX()));
    writer.writeTextElement("y", QString::number(world.getSizeY()));
    writer.writeTextElement("age", QString::number(world.getWorldAge()));
    writer.writeTextElement("generationNumber", QString::number(world.getGenerationNumber()));

    for(auto entity:world.getCopyOfEntities())
    {
        if(auto r = std::dynamic_pointer_cast<Resource>(entity))
        {
            saveResource(r,writer);
        }
        else if(auto a = std::dynamic_pointer_cast<Animal>(entity))
        {
            saveAnimal(a,writer);
        }
    }

    writer.writeEndElement();//World

    writer.writeEndDocument();

    fileXml.close();
}
コード例 #6
0
ファイル: mgGenSurface.cpp プロジェクト: Kelimion/SeaOfMemes
//--------------------------------------------------------------
// create font
const mgFont* mgGenSurface::createFont(
  const char* faceName,
  int size,
  BOOL bold,
  BOOL italic)
{
  // construct name used for hashtable keys
  mgString key;
  key.format("font-%s-%d%s%s", (const char*) faceName, size, bold?"-B":"", italic?"-I":"");

  // if found, we're done
  mgResource* value = findResource(key);
  if (value != NULL)
    return (mgFont*) value;

  // create font and add to cache
  mgGenFont* font = new mgGenFont(this, faceName, size, bold, italic);
  font->m_key = key;

  saveResource(font);

  return font;
}