Beispiel #1
0
  bool ForEachName(T && fn)
  {
    if (!HasName())
      return false;

    ParseCommon();
    m_params.name.ForEach(std::forward<T>(fn));
    return true;
  }
Beispiel #2
0
void VCFont::Initialize()
{
	std::ifstream f (m_fntPath, std::ios::in | std::ios::binary);
	if (!f.is_open())
	{
		std::cout << "Failed to open file: " << m_fntPath << std::endl;
		return;
	}

	// Header
	char c1, c2, c3, c4;
	f >> c1 >> c2 >> c3 >> c4;
	if (c1 != 66 || c2 != 77 || c3 != 70 || c4 != 3)
	{
		std::cout << "FNT must be binary, version 3!" << std::endl;
		return;
	}
	
	if (!ParseInfo(f))
		return;

	if (!ParseCommon(f) )
		return;

	if (!ParsePages(f) )
		return;

	if (!ParseCharacters(f) )
		return;

	if (!ParseKerning(f) )
		return;

	PreCompileQuads();

	f.close();

	// Load DDS
	//m_ddsTexture = VCTexture::CreateUnfilteredTexture(m_ddsPath.c_str());
	VCTextureParams tparam;
	tparam.Filtering = VCTextureFiltering::None;
	m_ddsTexture = VCResourceManager::GetTexure(m_ddsPath, tparam);

	// Name
	std::ostringstream ss;
	ss << FontName << "-" << Info.fontSize;

	if ( Info.bitField & 32)
		ss << "-Italic";

	if ( Info.bitField & 16)
		ss << "-Bold";

	Name = ss.str();
}
Beispiel #3
0
int load_abrt_conf()
{
    free_abrt_conf_data();

    map_string_t *settings = new_map_string();
    if (!load_abrt_conf_file(ABRT_CONF, settings))
        perror_msg("Can't load '%s'", ABRT_CONF);

    ParseCommon(settings, ABRT_CONF);
    free_map_string(settings);

    return 0;
}
static int load_conf(const char *conf_filename)
{
    map_string_t *settings = new_map_string();
    if (conf_filename != NULL)
    {
        if (!load_conf_file(conf_filename, settings, false))
            error_msg("Can't open '%s'", conf_filename);
    }
    else
    {
        conf_filename = "abrt-action-save-package-data.conf";
        if (!load_abrt_conf_file(conf_filename, settings))
            error_msg("Can't load '%s'", conf_filename);
    }

    ParseCommon(settings, conf_filename);
    free_map_string(settings);

    load_gpg_keys();

    return 0;
}
Beispiel #5
0
bool csShaderGLCGCommon::Load (iShaderDestinationResolver* resolve, 
			       iDocumentNode* program)
{
  if(!program)
    return false;

  csRef<iShaderManager> shadermgr = 
  	csQueryRegistry<iShaderManager> (shaderPlug->object_reg);

  const char* progTypeNode = 0;
  switch (programType)
  {
    case progVP: progTypeNode = "cgvp"; break;
    case progFP: progTypeNode = "cgfp"; break;
  }
  csRef<iDocumentNode> variablesnode = program->GetNode (progTypeNode);
  if(variablesnode)
  {
    csRef<iDocumentNodeIterator> it = variablesnode->GetNodes ();
    while(it->HasNext())
    {
      csRef<iDocumentNode> child = it->Next();
      if(child->GetType() != CS_NODE_ELEMENT) continue;
      const char* value = child->GetValue ();
      csStringID id = xmltokens.Request (value);
      switch(id)
      {
        case XMLTOKEN_PROFILE:
	  synsrv->Report ("crystalspace.graphics3d.shader.cg",
	    CS_REPORTER_SEVERITY_WARNING, child,
	    "<profile> is no longer supported");
          break;
        case XMLTOKEN_ENTRY:
          entrypoint = child->GetContentsValue ();
          break;
        case XMLTOKEN_COMPILERARGS:
          shaderPlug->SplitArgsString (child->GetContentsValue (), 
            compilerArgs);
          break;
	case XMLTOKEN_VARIABLEMAP:
	  if (!ParseVmap (child))
	    return false;
	  cacheKeepNodes.Push (child);
	  break;
	case XMLTOKEN_CLIP:
	  if (!ParseClip (child))
	    return false;
          cacheKeepNodes.Push (child);
	  break;
        default:
	  if (!ParseCommon (child))
	    return false;
      }
    }
  }

  cgResolve = scfQueryInterfaceSafe<iShaderProgramCG> (resolve);
  clips.ShrinkBestFit ();
  ClipsToVmap ();

  return true;
}
Beispiel #6
0
bool csGLShaderFFP::Load (iShaderDestinationResolver*, iDocumentNode* node)
{
  if(!node)
    return false;

  csRef<iDocumentNode> mtexnode = node->GetNode("fixedfp");
  if(mtexnode)
  {
    {
      size_t idx = 0;
      csRef<iDocumentNodeIterator> layerIt = mtexnode->GetNodes ("layer");
      while(layerIt->HasNext())
      {
        csRef<iDocumentNode> child = layerIt->Next();
        if(child->GetType() != CS_NODE_ELEMENT) continue;
	const char* name = child->GetAttributeValue ("name");
	if (name != 0)
	  layerNames.Put (name, (int)idx);
        idx++;
      }
    }

    csRef<iDocumentNodeIterator> it = mtexnode->GetNodes();
    while(it->HasNext())
    {
      csRef<iDocumentNode> child = it->Next();
      if(child->GetType() != CS_NODE_ELEMENT) continue;
      const char* value = child->GetValue ();
      csStringID id = tokens.Request (value);
      switch(id)
      {
        case XMLTOKEN_LAYER:
          {
            mtexlayer ml;
            if (!LoadLayer(&ml, child))
              return false;
            texlayers.Push (ml);
          }
          break;
	case XMLTOKEN_FOG:
	  {
	    if (!ParseFog (child, fog))
	      return false;
	  }
	  break;
	case XMLTOKEN_COLORSUM:
	  {
	    bool b;
	    if (!synsrv->ParseBool (child, b, true))
	      return false;
	    colorSum = b;
	  }
	  break;
        default:
	  {
	    switch (commonTokens.Request (value))
	    {
	      case XMLTOKEN_PROGRAM:
	      case XMLTOKEN_VARIABLEMAP:
		// Don't want those
		synsrv->ReportBadToken (child);
		return false;
		break;
	      default:
		if (!ParseCommon (child))
		  return false;
	    }
	  }
      }
    }
    CompactLayers();
    texlayers.ShrinkBestFit();
  }
  else
  {
    synsrv->ReportError ("crystalspace.graphics3d.shader.fixed.fp",
      node, "<fixedfp> node missing");
    return false;
  }
  return true;
}
Beispiel #7
0
  bool csVProcStandardProgram::Load (iShaderDestinationResolver* /*resolve*/, 
    iDocumentNode* program)
  {
    if (!program)
      return false;

    csRef<iDocumentNode> pnode = program->GetNode("vproc_std");
    if(pnode)
    {
      csRef<iDocumentNodeIterator> it = pnode->GetNodes ();
      while(it->HasNext())
      {
        csRef<iDocumentNode> child = it->Next();
        if(child->GetType() != CS_NODE_ELEMENT) continue;
        const char* value = child->GetValue ();
        csStringID id = tokens.Request (value);
        switch(id)
        {
        case XMLTOKEN_LIGHTS:
          numLights = child->GetContentsValueAsInt ();
          break;
        case XMLTOKEN_FINALFACTOR:
          if (!ParseProgramParam (child, finalLightFactor,
            ParamFloat | ParamShaderExp))
            return false;
          break;
        case XMLTOKEN_ATTENUATION:
          if (!synsrv->ParseBool (child, useAttenuation, true))
            return false;
          break;
        case XMLTOKEN_LIGHTMIXMODE:
          if (!ParseLightMixMode (child, lightMixMode))
            return false;
          break;
        case XMLTOKEN_COLORMIXMODE:
          if (!ParseLightMixMode (child, colorMixMode))
            return false;
          break;
        case XMLTOKEN_POSITIONBUFFER:
          if (!ParseBufferName (child, positionBuffer))
            return false;
          break;
        case XMLTOKEN_NORMALBUFFER:
          if (!ParseBufferName (child, normalBuffer))
            return false;
          break;
        case XMLTOKEN_COLORBUFFER:
          if (!ParseBufferName (child, colorBuffer))
            return false;
          break;
        case XMLTOKEN_ENABLELIGHT:
          {
            size_t n = (size_t)child->GetAttributeValueAsInt ("num");
            bool b;
            if (!synsrv->ParseBool (child, b, true))
              return false;
            if (!b)
            {
              if (disableMask.GetSize() <= n)
                disableMask.SetSize (n+1);
              disableMask.SetBit (n);
            }
            break;
          }
        case XMLTOKEN_DIFFUSE:
          {
            if (!synsrv->ParseBool (child, doDiffuse, true))
              return false;
          }
          break;
        case XMLTOKEN_SPECULAR:
          {
            if (!synsrv->ParseBool (child, doSpecular, true))
              return false;
            const char* buffer = child->GetAttributeValue ("buffer");
            if (!buffer)
            {
              synsrv->ReportError ("crystalspace.graphics3d.shader.vproc_std",
                pnode, "'buffer' attribute missing");
              return false;
            }
            csRenderBufferName bufferName = csRenderBuffer::GetBufferNameFromDescr (buffer);
            if (bufferName == CS_BUFFER_NONE)
            {
              synsrv->ReportError ("crystalspace.graphics3d.shader.vproc_std",
                pnode, "buffer name '%s' invalid here", buffer);
              return false;
            }
            specularOutputBuffer = bufferName;
          }
          break;
        case XMLTOKEN_SPECULAREXP:
          if (!ParseProgramParam (child, shininessParam,
            ParamFloat | ParamShaderExp))
            return false;
          break;
        case XMLTOKEN_SPECULARONDIFFUSE:
          {
            if (!synsrv->ParseBool (child, specularOnDiffuse, true))
              return false;
          }
          break;
        case XMLTOKEN_SKINNED_POSITION:
          {
            if (!synsrv->ParseBool (child, doVertexSkinning, true))
              return false;
            const char* buffer = child->GetAttributeValue ("buffer");
            if (!buffer)
            {
              synsrv->ReportError ("crystalspace.graphics3d.shader.vproc_std",
                pnode, "'buffer' attribute missing");
              return false;
            }
            csRenderBufferName bufferName = csRenderBuffer::GetBufferNameFromDescr (buffer);
            if (bufferName == CS_BUFFER_NONE)
            {
              synsrv->ReportError ("crystalspace.graphics3d.shader.vproc_std",
                pnode, "buffer name '%s' invalid here", buffer);
              return false;
            }
            skinnedPositionOutputBuffer = bufferName;
          }
          break;
        case XMLTOKEN_SKINNED_NORMAL:
          {
            if (!synsrv->ParseBool (child, doNormalSkinning, true))
              return false;
            const char* buffer = child->GetAttributeValue ("buffer");
            if (!buffer)
            {
              synsrv->ReportError ("crystalspace.graphics3d.shader.vproc_std",
                pnode, "'buffer' attribute missing");
              return false;
            }
            csRenderBufferName bufferName = csRenderBuffer::GetBufferNameFromDescr (buffer);
            if (bufferName == CS_BUFFER_NONE)
            {
              synsrv->ReportError ("crystalspace.graphics3d.shader.vproc_std",
                pnode, "buffer name '%s' invalid here", buffer);
              return false;
            }
            skinnedNormalOutputBuffer = bufferName;
          }
          break;
        case XMLTOKEN_SKINNED_TANGENT:
          {
            if (!synsrv->ParseBool (child, doTangentSkinning, true))
              return false;
            const char* buffer = child->GetAttributeValue ("buffer");
            if (!buffer)
            {
              synsrv->ReportError ("crystalspace.graphics3d.shader.vproc_std",
                pnode, "'buffer' attribute missing");
              return false;
            }
            csRenderBufferName bufferName = csRenderBuffer::GetBufferNameFromDescr (buffer);
            if (bufferName == CS_BUFFER_NONE)
            {
              synsrv->ReportError ("crystalspace.graphics3d.shader.vproc_std",
                pnode, "buffer name '%s' invalid here", buffer);
              return false;
            }
            skinnedTangentOutputBuffer = bufferName;
          }
          break;
        case XMLTOKEN_SKINNED_BITANGENT:
          {
            if (!synsrv->ParseBool (child, doBiTangentSkinning, true))
              return false;
            const char* buffer = child->GetAttributeValue ("buffer");
            if (!buffer)
            {
              synsrv->ReportError ("crystalspace.graphics3d.shader.vproc_std",
                pnode, "'buffer' attribute missing");
              return false;
            }
            csRenderBufferName bufferName = csRenderBuffer::GetBufferNameFromDescr (buffer);
            if (bufferName == CS_BUFFER_NONE)
            {
              synsrv->ReportError ("crystalspace.graphics3d.shader.vproc_std",
                pnode, "buffer name '%s' invalid here", buffer);
              return false;
            }
            skinnedBiTangentOutputBuffer = bufferName;
          }
          break;
        default:
          {
            switch (commonTokens.Request (value))
            {
            case XMLTOKEN_PROGRAM:
            case XMLTOKEN_VARIABLEMAP:
              // Don't want those
              synsrv->ReportBadToken (child);
              return false;
              break;
            default:
              if (!ParseCommon (child))
                return false;
            }
          }
        }
      }
    }
    else
    {
      synsrv->ReportError ("crystalspace.graphics3d.shader.vproc_std",
        pnode, "<vproc_std> node missing");
    }

    return true;
  }