本文整理汇总了C++中athena::io::IStreamReader类的典型用法代码示例。如果您正苦于以下问题:C++ IStreamReader类的具体用法?C++ IStreamReader怎么用?C++ IStreamReader使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IStreamReader类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: nextBlock
MREA::StreamReader::StreamReader(athena::io::IStreamReader& source,
atUint32 blkCount, atUint32 secIdxCount)
: DNAMP2::MREA::StreamReader(source)
{
m_blkCount = blkCount;
m_blockInfos.reserve(blkCount);
for (atUint32 i=0 ; i<blkCount ; ++i)
{
m_blockInfos.emplace_back();
BlockInfo& info = m_blockInfos.back();
info.read(source);
m_totalDecompLen += info.decompSize;
}
source.seekAlign32();
m_secIdxs.reserve(secIdxCount);
for (atUint32 i=0 ; i<secIdxCount ; ++i)
{
m_secIdxs.emplace_back();
std::pair<DNAFourCC, atUint32>& idx = m_secIdxs.back();
idx.first.read(source);
idx.second = source.readUint32Big();
}
source.seekAlign32();
m_blkBase = source.position();
nextBlock();
}
开发者ID:KalDragon,项目名称:urde,代码行数:26,代码来源:MREA.cpp
示例2: _read
void STRG::_read(athena::io::IStreamReader& reader)
{
atUint32 langCount = reader.readUint32Big();
atUint32 strCount = reader.readUint32Big();
std::vector<FourCC> readLangs;
readLangs.reserve(langCount);
for (atUint32 l=0 ; l<langCount ; ++l)
{
DNAFourCC lang;
lang.read(reader);
readLangs.emplace_back(lang);
reader.seek(4);
}
langs.clear();
langs.reserve(langCount);
for (FourCC& lang : readLangs)
{
std::vector<std::wstring> strs;
reader.seek(strCount * 4 + 4);
for (atUint32 s=0 ; s<strCount ; ++s)
strs.emplace_back(reader.readWStringBig());
langs.emplace_back(lang, strs);
}
langMap.clear();
langMap.reserve(langCount);
for (std::pair<FourCC, std::vector<std::wstring>>& item : langs)
langMap.emplace(item.first, &item.second);
}
开发者ID:KalDragon,项目名称:urde,代码行数:31,代码来源:STRG.cpp
示例3: readBGRABig
void readBGRABig(athena::io::IStreamReader& reader) {
simd_floats f;
f[2] = reader.readFloatBig();
f[1] = reader.readFloatBig();
f[0] = reader.readFloatBig();
f[3] = reader.readFloatBig();
mSimd.copy_from(f);
}
开发者ID:AxioDL,项目名称:zeus,代码行数:8,代码来源:CColor.hpp
示例4: read
void STRG::read(athena::io::IStreamReader& reader)
{
atUint32 magic = reader.readUint32Big();
if (magic != 0x87654321)
Log.report(logvisor::Error, "invalid STRG magic");
atUint32 version = reader.readUint32Big();
if (version != 0)
Log.report(logvisor::Error, "invalid STRG version");
_read(reader);
}
开发者ID:KalDragon,项目名称:urde,代码行数:12,代码来源:STRG.cpp
示例5: read
void ColorElementFactory::read(athena::io::IStreamReader& r)
{
uint32_t clsId;
r.readBytesToBuf(&clsId, 4);
switch (clsId)
{
case SBIG('KEYE'):
case SBIG('KEYP'):
m_elem.reset(new struct CEKeyframeEmitter);
break;
case SBIG('CNST'):
m_elem.reset(new struct CEConstant);
break;
case SBIG('CHAN'):
m_elem.reset(new struct CETimeChain);
break;
case SBIG('CFDE'):
m_elem.reset(new struct CEFadeEnd);
break;
case SBIG('FADE'):
m_elem.reset(new struct CEFade);
break;
case SBIG('PULS'):
m_elem.reset(new struct CEPulse);
break;
case SBIG('NONE'):
m_elem.reset();
return;
default:
m_elem.reset();
LogModule.report(logvisor::Fatal, "Unknown ColorElement class %.4s @%" PRIi64, &clsId, r.position());
return;
}
m_elem->read(r);
}
开发者ID:KalDragon,项目名称:urde,代码行数:35,代码来源:ParticleCommon.cpp
示例6: SLittle
void LittleUInt24::Enumerate<LittleDNA::Read>(athena::io::IStreamReader& reader) {
union {
atUint32 val;
char bytes[4];
} data = {};
reader.readBytesToBuf(data.bytes, 3);
val = SLittle(data.val);
}
开发者ID:AxioDL,项目名称:amuse,代码行数:8,代码来源:Common.cpp
示例7: ReadBabeDeadLightToBlender
void MREA::ReadBabeDeadToBlender_3(hecl::BlenderConnection::PyOutStream& os,
athena::io::IStreamReader& rs)
{
atUint32 bdMagic = rs.readUint32Big();
if (bdMagic != 0xBABEDEAD)
Log.report(logvisor::Fatal, "invalid BABEDEAD magic");
os << "bpy.context.scene.render.engine = 'CYCLES'\n"
"bpy.context.scene.world.use_nodes = True\n"
"bpy.context.scene.render.engine = 'BLENDER_GAME'\n"
"bg_node = bpy.context.scene.world.node_tree.nodes['Background']\n";
for (atUint32 s=0 ; s<4 ; ++s)
{
atUint32 lightCount = rs.readUint32Big();
for (atUint32 l=0 ; l<lightCount ; ++l)
{
BabeDeadLight light;
light.read(rs);
ReadBabeDeadLightToBlender(os, light, s, l);
}
}
}
开发者ID:KalDragon,项目名称:urde,代码行数:21,代码来源:MREA.cpp
示例8:
void ANIM::ANIM2::read(athena::io::IStreamReader& reader)
{
Header head;
head.read(reader);
evnt = head.evnt;
mainInterval = head.interval;
WordBitmap keyBmp;
keyBmp.read(reader, head.keyBitmapBitCount);
frames.clear();
atUint32 frameAccum = 0;
for (bool bit : keyBmp)
{
if (bit)
frames.push_back(frameAccum);
++frameAccum;
}
reader.seek(8);
bones.clear();
bones.reserve(head.boneChannelCount);
channels.clear();
channels.reserve(head.boneChannelCount);
atUint16 keyframeCount = 0;
for (size_t b=0 ; b<head.boneChannelCount ; ++b)
{
ChannelDesc desc;
desc.read(reader);
bones.emplace_back(desc.id, desc.keyCount2 != 0);
if (desc.keyCount1)
{
channels.emplace_back();
DNAANIM::Channel& chan = channels.back();
chan.type = DNAANIM::Channel::Type::Rotation;
chan.i[0] = desc.initRX;
chan.q[0] = desc.qRX;
chan.i[1] = desc.initRY;
chan.q[1] = desc.qRY;
chan.i[2] = desc.initRZ;
chan.q[2] = desc.qRZ;
}
keyframeCount = std::max(keyframeCount, desc.keyCount1);
if (desc.keyCount2)
{
channels.emplace_back();
DNAANIM::Channel& chan = channels.back();
chan.type = DNAANIM::Channel::Type::Translation;
chan.i[0] = desc.initTX;
chan.q[0] = desc.qTX;
chan.i[1] = desc.initTY;
chan.q[1] = desc.qTY;
chan.i[2] = desc.initTZ;
chan.q[2] = desc.qTZ;
}
}
size_t bsSize = DNAANIM::ComputeBitstreamSize(keyframeCount, channels);
std::unique_ptr<atUint8[]> bsData = reader.readUBytes(bsSize);
DNAANIM::BitstreamReader bsReader;
chanKeys = bsReader.read(bsData.get(), keyframeCount, channels, head.rotDiv, head.translationMult);
}
开发者ID:KalDragon,项目名称:urde,代码行数:63,代码来源:ANIM.cpp
示例9:
CVector3d::CVector3d(Athena::io::IStreamReader& input)
{
x = input.readDouble();
y = input.readDouble();
z = input.readDouble();
}
开发者ID:revel8n,项目名称:MetPrimeTools,代码行数:6,代码来源:CVector3d.cpp
示例10:
void SoundMacroStepDNA<athena::Big>::Enumerate<BigDNA::Read>(athena::io::IStreamReader& reader) {
step = reader.readUint16Big();
}
开发者ID:AxioDL,项目名称:amuse,代码行数:3,代码来源:Common.cpp
示例11: CFourCC
CFourCC(Athena::io::IStreamReader& src)
{
src.readUBytesToBuf(fourCC, 4);
}
开发者ID:revel8n,项目名称:MetPrimeTools,代码行数:4,代码来源:CFourCC.hpp
示例12: magic
CPASDatabase::CPASDatabase(Athena::io::IStreamReader& in)
{
CFourCC magic(in);
if (magic != skPAS4FourCC)
THROW_INVALID_DATA_EXCEPTION("Invalid PASDatabase magic expected 'PAS4'' got 0x%.4s", magic);
atUint32 stateCount = in.readUint32();
m_defaultState = in.readInt32();
if (m_defaultState == ~0)
return;
while ((stateCount--) > 0)
{
SPASAnimState state;
state.unknown1 = in.readUint32();
atUint32 parmInfoCount = in.readUint32();
atUint32 animInfoCount = in.readUint32();
for (atUint32 i = 0; i < parmInfoCount; i++)
{
SPASParmInfo info;
info.type = (EParmType)in.readUint32();
info.unknown1 = in.readUint32();
info.unknown2 = in.readFloat();
for (atUint32 j = 0; j < 2; j++)
{
switch(info.type)
{
case eInt32:
{
atInt32 tmp = in.readInt32();
info.parameters[j] = CPASInt32Paramater(tmp);
}
break;
case eUint32:
{
atUint32 tmp = in.readUint32();
info.parameters[j] = CPASUint32Parameter(tmp);
}
break;
case eEnum:
{
atUint32 tmp = in.readUint32();
info.parameters[j] = CPASEnumParameter(tmp);
}
break;
case eReal32:
{
float tmp = in.readFloat();
info.parameters[j] = CPASReal32Parameter(tmp);
}
break;
case eBool:
{
bool tmp = in.readBool();
info.parameters[j] = CPASBoolParameter(tmp);
}
break;
}
}
state.parmInfo.push_back(info);
}
for (atUint32 i = 0; i < animInfoCount; i++)
{
SPASAnimInfo info;
info.unknown1 = in.readUint32();
for (atUint32 j = 0; j < parmInfoCount; j++)
{
switch(state.parmInfo[j].type)
{
case eInt32:
{
atInt32 tmp = in.readInt32();
info.parameters.push_back(CPASInt32Paramater(tmp));
}
break;
case eUint32:
{
atUint32 tmp = in.readUint32();
info.parameters.push_back(CPASUint32Parameter(tmp));
}
break;
case eEnum:
{
atUint32 tmp = in.readUint32();
info.parameters.push_back(CPASEnumParameter(tmp));
}
break;
case eReal32:
{
float tmp = in.readFloat();
info.parameters.push_back(CPASReal32Parameter(tmp));
}
break;
case eBool:
{
bool tmp = in.readBool();
info.parameters.push_back(CPASBoolParameter(tmp));
//.........这里部分代码省略.........
开发者ID:Antidote,项目名称:MetPrimeTools,代码行数:101,代码来源:CPASDatabase.cpp
注:本文中的athena::io::IStreamReader类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论