本文整理汇总了C++中MemoryWriter::write方法的典型用法代码示例。如果您正苦于以下问题:C++ MemoryWriter::write方法的具体用法?C++ MemoryWriter::write怎么用?C++ MemoryWriter::write使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MemoryWriter
的用法示例。
在下文中一共展示了MemoryWriter::write方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: encode
void TriangleEncoder::encode(
const vector<TriangleVertexInfo>& triangle_vertex_infos,
const vector<GVector3>& triangle_vertices,
const vector<size_t>& triangle_indices,
const size_t item_begin,
const size_t item_count,
MemoryWriter& writer)
{
for (size_t i = 0; i < item_count; ++i)
{
const size_t triangle_index = triangle_indices[item_begin + i];
const TriangleVertexInfo& vertex_info = triangle_vertex_infos[triangle_index];
writer.write(static_cast<uint32>(vertex_info.m_motion_segment_count));
if (vertex_info.m_motion_segment_count == 0)
{
writer.write(
GTriangleType(
triangle_vertices[vertex_info.m_vertex_index + 0],
triangle_vertices[vertex_info.m_vertex_index + 1],
triangle_vertices[vertex_info.m_vertex_index + 2]));
}
else
{
writer.write(
&triangle_vertices[vertex_info.m_vertex_index],
(vertex_info.m_motion_segment_count + 1) * 3 * sizeof(GVector3));
}
}
}
示例2: EParseError
int CFParser :: buildDerivationTree(_ScriptReader& reader, size_t startRuleId, MemoryWriter& writer)
{
DerivationQueue predictions;
predictions.push(DerivationItem(startRuleId, 0, -1));
ScriptBookmark bm;
while (predictions.Count() > 0) {
predictions.push(DerivationItem(0));
bm = reader.read();
int terminalOffset = writer.Position();
writer.write(&bm, sizeof(ScriptBookmark));
DerivationItem current = predictions.pop();
while (current.ruleId != 0) {
if (current.ruleId == -1) {
return current.trace;
}
predict(predictions, current, reader, bm, terminalOffset, writer);
current = predictions.pop();
}
}
throw EParseError(bm.column, bm.row);
}