bool ForEachName(T && fn) { if (!HasName()) return false; ParseCommon(); m_params.name.ForEach(std::forward<T>(fn)); return true; }
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(); }
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; }
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; }
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; }
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; }