当前位置: 首页>>代码示例>>C++>>正文


C++ FileIO::Read方法代码示例

本文整理汇总了C++中FileIO::Read方法的典型用法代码示例。如果您正苦于以下问题:C++ FileIO::Read方法的具体用法?C++ FileIO::Read怎么用?C++ FileIO::Read使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在FileIO的用法示例。


在下文中一共展示了FileIO::Read方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Load

//----------------------------------------------------------------------------
bool Lattice::Load (FileIO& inFile)
{
    int numBytes = (int)strlen(msHeader) + 1;
    char* buffer = new1<char>(numBytes);
    inFile.Read(sizeof(char), numBytes, buffer);
    buffer[numBytes-1] = 0;
    if (strncmp(buffer, msHeader, numBytes) != 0)
    {
        delete1(buffer);
        mNumDimensions = 0;
        mQuantity = 0;
        mBounds = 0;
        mOffsets = 0;
        return false;
    }
    delete1(buffer);

    inFile.Read(sizeof(int), &mNumDimensions);

    delete1(mBounds);
    mBounds = new1<int>(mNumDimensions);
    inFile.Read(sizeof(int), mNumDimensions, mBounds);

    delete1(mOffsets);
    mOffsets = new1<int>(mNumDimensions);

    ComputeQuantityAndOffsets();

    return true;
}
开发者ID:rasslingcats,项目名称:calico,代码行数:31,代码来源:Wm5Lattice.cpp

示例2: assertion

bool Delaunay<Real>::Load (FileIO& inFile)
{
    delete1(mIndices);
    delete1(mAdjacencies);

    // Fixed-size members.
    int type;
    inFile.Read(sizeof(int), &type);
    mQueryType = (Query::Type)type;

    inFile.Read(sizeof(int), &mNumVertices);
    inFile.Read(sizeof(int), &mDimension);
    inFile.Read(sizeof(int), &mNumSimplices);
    inFile.Read(sizeof(Real), &mEpsilon);

    // Variable-size members.
    int numIndices;
    inFile.Read(sizeof(int), &numIndices);
    if (1 <= mDimension && mDimension <= 3)
    {
        assertion(numIndices == (mDimension+1)*mNumSimplices,
            "Inconsistent index count\n");
        mIndices = new1<int>(numIndices);
        mAdjacencies = new1<int>(numIndices);
        inFile.Read(sizeof(int), numIndices, mIndices);
        inFile.Read(sizeof(int), numIndices, mAdjacencies);
        return true;
    }

    mIndices = 0;
    mAdjacencies = 0;
    return mDimension == 0;
}
开发者ID:JackTing,项目名称:SkpColl,代码行数:33,代码来源:Wm5Delaunay.cpp

示例3: Read

//----------------------------------------------------------------------------
void VertexBufferAccessor::Read (FileIO& inFile)
{
	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)
		{
			inFile.Read(table[j][1], table[j][2], vertex + table[j][0]);
		}
	}
}
开发者ID:SylviaTanenbaum,项目名称:3d-simulation-and-game,代码行数:34,代码来源:PX2VertexBufferAccessor.cpp

示例4: Read

//----------------------------------------------------------------------------
void VertexBufferAccessor::Read (FileIO& inFile)
{
	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);
	}

	// Read 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)
		{
			inFile.Read(table[j][1], table[j][2], vertex + table[j][0]);
		}
	}
}
开发者ID:bhlzlx,项目名称:WildMagic,代码行数:35,代码来源:Wm5VertexBufferAccessor.cpp

示例5: LoadShapshot

// ---------------------------------------------------------------------------
//	スナップショット復元
//
bool WinCore::LoadShapshot(const char* filename, const char* diskname)
{
	LockObj lock(this);

	FileIO file;
	if (!file.Open(filename, FileIO::readonly))
		return false;

	SnapshotHeader ssh;
	if (file.Read(&ssh, sizeof(ssh)) != sizeof(ssh))
		return false;
	if (memcmp(ssh.id, SNAPSHOT_ID, 16))
		return false;
	if (ssh.major != ssmajor || ssh.minor > ssminor)
		return false;

	// applyconfig
	const uint fl1a = Config::subcpucontrol | Config::fullspeed 
					| Config::enableopna	| Config::enablepcg
					| Config::fv15k 		| Config::cpuburst 
					| Config::cpuclockmode	| Config::digitalpalette
					| Config::opnona8		| Config::opnaona8
					| Config::enablewait;
	const uint fl2a = Config::disableopn44;

	config.flags = (config.flags & ~fl1a) | (ssh.flags & fl1a);
	config.flag2 = (config.flag2 & ~fl2a) | (ssh.flag2 & fl2a);
	config.basicmode = ssh.basicmode;
	config.clock = ssh.clock;
	config.erambanks = ssh.erambanks;
	config.cpumode = ssh.cpumode;
	config.mainsubratio = ssh.mainsubratio;
	ApplyConfig(&config);
	
	// Reset
	PC88::Reset();

	// 読み込み

	uint8* buf = new uint8[ssh.datasize];
	bool r = false;

	if (buf)
	{
		bool read = false;
		if (ssh.flags & 0x80000000)
		{
			int32 csize;
			
			file.Read(&csize, 4);
			if (csize < 0)
			{
				csize = -csize;
				uint8* cbuf = new uint8[csize];
				
				if (cbuf)
				{
					ulong bufsize = ssh.datasize;
					file.Read(cbuf, csize);
					read = uncompress(buf, &bufsize, cbuf, csize) == Z_OK; 

					delete[] cbuf;
				}
			}
		}
		else
			read = file.Read(buf, ssh.datasize) == ssh.datasize;

		if (read)
		{
			r = devlist.LoadStatus(buf);
			if (r && diskname)
			{
				for (uint i=0; i<2; i++)
				{
					diskmgr->Unmount(i);
					diskmgr->Mount(i, diskname, false, ssh.disk[i], false);
				}
			}
			if (!r)
			{
				statusdisplay.Show(70, 3000, "バージョンが異なります");
				PC88::Reset();
			}
		}
		delete[] buf;
	}
	return r;
}
开发者ID:pololei,项目名称:m88,代码行数:92,代码来源:wincore.cpp


注:本文中的FileIO::Read方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。