本文整理汇总了C++中FileIO::Write方法的典型用法代码示例。如果您正苦于以下问题:C++ FileIO::Write方法的具体用法?C++ FileIO::Write怎么用?C++ FileIO::Write使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileIO
的用法示例。
在下文中一共展示了FileIO::Write方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Save
//----------------------------------------------------------------------------
bool Lattice::Save (FileIO& outFile) const
{
outFile.Write(sizeof(char), (int)strlen(msHeader) + 1, msHeader);
outFile.Write(sizeof(int), &mNumDimensions);
outFile.Write(sizeof(int), mNumDimensions, mBounds);
return true;
}
示例2: SaveShapshot
// ---------------------------------------------------------------------------
// スナップショット保存
//
bool WinCore::SaveShapshot(const char* filename)
{
LockObj lock(this);
bool docomp = !!(config.flag2 & Config::compresssnapshot);
uint size = devlist.GetStatusSize();
uint8* buf = new uint8[docomp ? size * 129 / 64 + 20 : size];
if (!buf)
return false;
memset(buf, 0, size);
if (devlist.SaveStatus(buf))
{
ulong esize = size * 129 / 64 + 20-4;
if (docomp)
{
if (Z_OK != compress(buf+size+4, &esize, buf, size))
{
delete[] buf;
return false;
}
*(int32*) (buf+size) = -(long)esize;
esize += 4;
}
SnapshotHeader ssh;
memcpy(ssh.id, SNAPSHOT_ID, 16);
ssh.major = ssmajor;
ssh.minor = ssminor;
ssh.datasize = size;
ssh.basicmode = config.basicmode;
ssh.clock = int16(config.clock);
ssh.erambanks = uint16(config.erambanks);
ssh.cpumode = int16(config.cpumode);
ssh.mainsubratio = int16(config.mainsubratio);
ssh.flags = config.flags | (esize < size ? 0x80000000 : 0);
ssh.flag2 = config.flag2;
for (uint i=0; i<2; i++)
ssh.disk[i] = (int8) diskmgr->GetCurrentDisk(i);
FileIO file;
if (file.Open(filename, FileIO::create))
{
file.Write(&ssh, sizeof(ssh));
if (esize < size)
file.Write(buf+size, esize);
else
file.Write(buf, size);
}
}
delete[] buf;
return true;
}
示例3:
bool Delaunay<Real>::Save (FileIO& outFile) const
{
// Fixed-size members.
int type = (int)mQueryType;
outFile.Write(sizeof(int), &type);
outFile.Write(sizeof(int), &mNumVertices);
outFile.Write(sizeof(int), &mDimension);
outFile.Write(sizeof(int), &mNumSimplices);
outFile.Write(sizeof(Real), &mEpsilon);
// The member mOwner is not streamed because on a Load call, this
// object will allocate the vertices and own this memory.
// Variable-size members.
int numIndices;
if (1 <= mDimension && mDimension <= 3)
{
numIndices = (mDimension+1)*mNumSimplices;
outFile.Write(sizeof(int), &numIndices);
outFile.Write(sizeof(int), numIndices, mIndices);
outFile.Write(sizeof(int), numIndices, mAdjacencies);
return true;
}
numIndices = 0;
outFile.Write(sizeof(int), &numIndices);
return mDimension == 0;
}
示例4: SaveVertexBuffer
//----------------------------------------------------------------------------
void Visual::SaveVertexBuffer (FileIO& outFile)
{
int numElements = mVBuffer->GetNumElements();
int elementSize = mVBuffer->GetElementSize();
Buffer::Usage vbusage = mVBuffer->GetUsage();
int usage = (int)vbusage;
outFile.Write(sizeof(int), &numElements);
outFile.Write(sizeof(int), &elementSize);
outFile.Write(sizeof(int), &usage);
VertexBufferAccessor vba(mVFormat, mVBuffer);
vba.Write(outFile);
}
示例5: Write
//----------------------------------------------------------------------------
void VertexBufferAccessor::Write (FileIO& outFile)
{
assertion(mStride == mVBuffer->GetElementSize(),
"Format stride and vertex size must match (for now).\n");
// 为VertexBuffer的顶点属性建立一张表。每个顶点的属性都有offset,属性元素字
// 节大小以及属性元素个数。举例来说,一个元素属性的offset为0,格式为AT_FLOAT3
// 具有的(offset,size,numComponents) = (0,4,3)。
Tuple<3, unsigned int> table[VertexFormat::AM_MAX_ATTRIBUTES];
const int numAttributes = mVFormat->GetNumAttributes();
unsigned int streamIndex, offset, index;
VertexFormat::AttributeType type;
VertexFormat::AttributeUsage usage;
int j;
for (j = 0; j < numAttributes; ++j)
{
mVFormat->GetAttribute(j, streamIndex, offset, type, usage, index);
table[j][0] = offset;
table[j][1] = VertexFormat::GetComponentSize(type);
table[j][2] = VertexFormat::GetNumComponents(type);
}
// 将顶点持久化
const int numElements = mVBuffer->GetNumElements();
char* vertex = mData;
for (int i = 0; i < numElements; ++i, vertex += mStride)
{
for (j = 0; j < numAttributes; ++j)
{
outFile.Write(table[j][1], table[j][2], vertex + table[j][0]);
}
}
}
示例6: Write
//----------------------------------------------------------------------------
void VertexBufferAccessor::Write (FileIO& outFile)
{
assertion(mStride == mVBuffer->GetElementSize(),
"Format stride and vertex size must match (for now).\n");
// Build a table for the attributes of the vertex buffer. Each attribute
// has an offset, a size for a component of the attribute, and the number
// of components of that size. For example, an attribute with offset 0
// and type AT_FLOAT3 has (offset,size,numComponents) = (0,4,3).
Tuple<3, unsigned int> table[VertexFormat::AM_MAX_ATTRIBUTES];
const int numAttributes = mVFormat->GetNumAttributes();
unsigned int streamIndex, offset, index;
VertexFormat::AttributeType type;
VertexFormat::AttributeUsage usage;
int j;
for (j = 0; j < numAttributes; ++j)
{
mVFormat->GetAttribute(j, streamIndex, offset, type, usage, index);
table[j][0] = offset;
table[j][1] = VertexFormat::GetComponentSize(type);
table[j][2] = VertexFormat::GetNumComponents(type);
}
// Write vertices one at a time to allow for byte swapping (endianness).
const int numElements = mVBuffer->GetNumElements();
char* vertex = mData;
for (int i = 0; i < numElements; ++i, vertex += mStride)
{
for (j = 0; j < numAttributes; ++j)
{
outFile.Write(table[j][1], table[j][2], vertex + table[j][0]);
}
}
}
示例7: SaveVertexFormat
//----------------------------------------------------------------------------
void Visual::SaveVertexFormat (FileIO& outFile)
{
int numAttributes = mVFormat->GetNumAttributes();
outFile.Write(sizeof(int), &numAttributes);
for (int i = 0; i < numAttributes; ++i)
{
unsigned int streamIndex, offset, usageIndex;
VertexFormat::AttributeType vftype;
VertexFormat::AttributeUsage vfusage;
mVFormat->GetAttribute(i, streamIndex, offset, vftype, vfusage,
usageIndex);
int type = (int)vftype;
int usage = (int)vfusage;
outFile.Write(sizeof(unsigned int), &streamIndex);
outFile.Write(sizeof(unsigned int), &offset);
outFile.Write(sizeof(int), &type);
outFile.Write(sizeof(int), &usage);
outFile.Write(sizeof(unsigned int), &usageIndex);
}
int stride = mVFormat->GetStride();
outFile.Write(sizeof(int), &stride);
}
示例8: SaveIndexBuffer
//----------------------------------------------------------------------------
void Visual::SaveIndexBuffer (FileIO& outFile)
{
if (mIBuffer)
{
int numElements = mIBuffer->GetNumElements();
int elementSize = mIBuffer->GetElementSize();
Buffer::Usage ibusage = mIBuffer->GetUsage();
int usage = (int)ibusage;
int offset = mIBuffer->GetOffset();
outFile.Write(sizeof(int), &numElements);
outFile.Write(sizeof(int), &elementSize);
outFile.Write(sizeof(int), &usage);
outFile.Write(sizeof(int), &offset);
outFile.Write(elementSize, mIBuffer->GetNumBytes()/elementSize,
mIBuffer->GetData());
}
else
{
int numElements = 0;
outFile.Write(sizeof(int), &numElements);
}
}