本文整理汇总了C++中StringBuffer::as_string方法的典型用法代码示例。如果您正苦于以下问题:C++ StringBuffer::as_string方法的具体用法?C++ StringBuffer::as_string怎么用?C++ StringBuffer::as_string使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringBuffer
的用法示例。
在下文中一共展示了StringBuffer::as_string方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _mkid
static String _mkid(const String &p_id) {
StringBuffer<> id;
id += "m_";
id += p_id;
return id.as_string();
}
示例2:
void ShaderCompilerGLES2::_dump_function_deps(SL::ShaderNode *p_node, const StringName &p_for_func, const Map<StringName, String> &p_func_code, StringBuilder &r_to_add, Set<StringName> &r_added) {
int fidx = -1;
for (int i = 0; i < p_node->functions.size(); i++) {
if (p_node->functions[i].name == p_for_func) {
fidx = i;
break;
}
}
ERR_FAIL_COND(fidx == -1);
for (Set<StringName>::Element *E = p_node->functions[fidx].uses_function.front(); E; E = E->next()) {
if (r_added.has(E->get())) {
continue;
}
_dump_function_deps(p_node, E->get(), p_func_code, r_to_add, r_added);
SL::FunctionNode *fnode = NULL;
for (int i = 0; i < p_node->functions.size(); i++) {
if (p_node->functions[i].name == E->get()) {
fnode = p_node->functions[i].function;
break;
}
}
ERR_FAIL_COND(!fnode);
r_to_add += "\n";
StringBuffer<128> header;
header += _typestr(fnode->return_type);
header += " ";
header += _mkid(fnode->name);
header += "(";
for (int i = 0; i < fnode->arguments.size(); i++) {
if (i > 0)
header += ", ";
header += _qualstr(fnode->arguments[i].qualifier);
header += _prestr(fnode->arguments[i].precision);
header += _typestr(fnode->arguments[i].type);
header += " ";
header += _mkid(fnode->arguments[i].name);
}
header += ")\n";
r_to_add += header.as_string();
r_to_add += p_func_code[E->get()];
r_added.insert(E->get());
}
}
示例3: get_constant_text
static String get_constant_text(SL::DataType p_type, const Vector<SL::ConstantNode::Value> &p_values) {
switch (p_type) {
case SL::TYPE_BOOL: return p_values[0].boolean ? "true" : "false";
case SL::TYPE_BVEC2:
case SL::TYPE_BVEC3:
case SL::TYPE_BVEC4: {
StringBuffer<> text;
text += "bvec";
text += itos(p_type - SL::TYPE_BOOL + 1);
text += "(";
for (int i = 0; i < p_values.size(); i++) {
if (i > 0)
text += ",";
text += p_values[i].boolean ? "true" : "false";
}
text += ")";
return text.as_string();
}
// GLSL ES 2 doesn't support uints, so we just use signed ints instead...
case SL::TYPE_UINT: return itos(p_values[0].uint);
case SL::TYPE_UVEC2:
case SL::TYPE_UVEC3:
case SL::TYPE_UVEC4: {
StringBuffer<> text;
text += "ivec";
text += itos(p_type - SL::TYPE_UINT + 1);
text += "(";
for (int i = 0; i < p_values.size(); i++) {
if (i > 0)
text += ",";
text += itos(p_values[i].uint);
}
text += ")";
return text.as_string();
} break;
case SL::TYPE_INT: return itos(p_values[0].sint);
case SL::TYPE_IVEC2:
case SL::TYPE_IVEC3:
case SL::TYPE_IVEC4: {
StringBuffer<> text;
text += "ivec";
text += itos(p_type - SL::TYPE_INT + 1);
text += "(";
for (int i = 0; i < p_values.size(); i++) {
if (i > 0)
text += ",";
text += itos(p_values[i].sint);
}
text += ")";
return text.as_string();
} break;
case SL::TYPE_FLOAT: return f2sp0(p_values[0].real);
case SL::TYPE_VEC2:
case SL::TYPE_VEC3:
case SL::TYPE_VEC4: {
StringBuffer<> text;
text += "vec";
text += itos(p_type - SL::TYPE_FLOAT + 1);
text += "(";
for (int i = 0; i < p_values.size(); i++) {
if (i > 0)
text += ",";
text += f2sp0(p_values[i].real);
}
text += ")";
return text.as_string();
} break;
case SL::TYPE_MAT2:
case SL::TYPE_MAT3:
case SL::TYPE_MAT4: {
StringBuffer<> text;
text += "mat";
text += itos(p_type - SL::TYPE_MAT2 + 2);
text += "(";
for (int i = 0; i < p_values.size(); i++) {
//.........这里部分代码省略.........