|
From: <cn...@us...> - 2008-12-31 00:30:53
|
Revision: 121
http://hgengine.svn.sourceforge.net/hgengine/?rev=121&view=rev
Author: cnlohr
Date: 2008-12-31 00:30:44 +0000 (Wed, 31 Dec 2008)
Log Message:
-----------
make Meshes use MercuryFile *'s
Modified Paths:
--------------
Mercury2/src/HGMDLMesh.cpp
Mercury2/src/HGMDLMesh.h
Mercury2/src/HGMDLModel.cpp
Mercury2/src/HGMDLModel.h
Modified: Mercury2/src/HGMDLMesh.cpp
===================================================================
--- Mercury2/src/HGMDLMesh.cpp 2008-12-31 00:12:56 UTC (rev 120)
+++ Mercury2/src/HGMDLMesh.cpp 2008-12-31 00:30:44 UTC (rev 121)
@@ -1,34 +1,41 @@
#include <HGMDLMesh.h>
-void HGMDLMesh::LoadFromFile(FILE* hgmdl)
+void HGMDLMesh::LoadFromFile(MercuryFile* hgmdl)
{
uint32_t nameLength;
- fread(&nameLength, sizeof(uint32_t), 1, hgmdl);
+ //fread(&nameLength, sizeof(uint32_t), 1, hgmdl);
+ hgmdl->Read( &nameLength, sizeof( uint32_t ) );
if (nameLength > 0)
{
char* name = new char[nameLength+1];
name[nameLength] = 0;
- fread(name, nameLength, 1, hgmdl);
+ hgmdl->Read( name, nameLength );
+ //fread(name, nameLength, 1, hgmdl);
m_name = name;
}
- fread(&m_cachable, sizeof(bool), 1, hgmdl);
+ hgmdl->Read( &m_cachable, sizeof( char ) );
+ //fread(&m_cachable, sizeof(bool), 1, hgmdl);
uint32_t dataLength;
- fread(&dataLength, sizeof(uint32_t), 1, hgmdl);
+ //fread(&dataLength, sizeof(uint32_t), 1, hgmdl);
+ hgmdl->Read( &dataLength, sizeof( uint32_t ) );
if (dataLength > 0)
{
m_vertexData.Allocate( dataLength/sizeof(float) ); //they are all floats
- fread(m_vertexData.Buffer(), dataLength, 1, hgmdl);
+ //fread(m_vertexData.Buffer(), dataLength, 1, hgmdl);
+ hgmdl->Read( m_vertexData.Buffer(), dataLength );
}
uint16_t numIndices;
- fread(&numIndices, sizeof(uint16_t), 1, hgmdl);
+ //fread(&numIndices, sizeof(uint16_t), 1, hgmdl);
+ hgmdl->Read( &numIndices, sizeof( uint16_t ) );
if (numIndices > 0)
{
m_indexData.Allocate( numIndices );
- fread(m_indexData.Buffer(), numIndices*sizeof(uint16_t), 1, hgmdl);
+ //fread(m_indexData.Buffer(), numIndices*sizeof(uint16_t), 1, hgmdl);
+ hgmdl->Read( m_indexData.Buffer(), numIndices*sizeof(uint16_t) );
}
}
Modified: Mercury2/src/HGMDLMesh.h
===================================================================
--- Mercury2/src/HGMDLMesh.h 2008-12-31 00:12:56 UTC (rev 120)
+++ Mercury2/src/HGMDLMesh.h 2008-12-31 00:30:44 UTC (rev 121)
@@ -2,11 +2,12 @@
#define HGMDLMESH_H
#include <MercuryVBO.h>
+#include <MercuryFile.h>
class HGMDLMesh : public MercuryVBO
{
public:
- void LoadFromFile(FILE* hgmdl);
+ void LoadFromFile(MercuryFile* hgmdl);
private:
MString m_name;
bool m_cachable;
Modified: Mercury2/src/HGMDLModel.cpp
===================================================================
--- Mercury2/src/HGMDLModel.cpp 2008-12-31 00:12:56 UTC (rev 120)
+++ Mercury2/src/HGMDLModel.cpp 2008-12-31 00:30:44 UTC (rev 121)
@@ -6,18 +6,25 @@
{
if ( !node.Attribute("file").empty() )
{
- FILE* f = fopen( node.Attribute("file").c_str(), "rb" );
+ //FILE* f = fopen( node.Attribute("file").c_str(), "rb" );
+ MercuryFile * f = FILEMAN.Open( node.Attribute("file") );
+ if( !f )
+ {
+ printf( "Could not open file: \"%s\" for model\n", node.Attribute("file").c_str() );
+ return;
+ }
LoadModel( f );
- fclose( f );
+ delete f;
}
}
-void HGMDLModel::LoadModel(FILE* hgmdl)
+void HGMDLModel::LoadModel(MercuryFile* hgmdl)
{
char fingerPrint[5];
fingerPrint[4] = 0;
- fread(fingerPrint, 4, 1, hgmdl);
+ hgmdl->Read( fingerPrint, 4 );
+
MString p(fingerPrint);
if (p != "MBMF")
{
@@ -26,7 +33,8 @@
}
uint32_t version;
- fread(&version, 4, 1, hgmdl);
+ //fread(&version, 4, 1, hgmdl);
+ hgmdl->Read( &version, 4 );
if (version != 200)
{
@@ -35,7 +43,8 @@
}
uint16_t numMeshes;
- fread(&numMeshes, sizeof(uint16_t), 1, hgmdl);
+
+ hgmdl->Read( &numMeshes, sizeof( uint16_t ) );
for (uint16_t i = 0; i < numMeshes; ++i)
{
MAutoPtr< HGMDLMesh > mesh( new HGMDLMesh() );
Modified: Mercury2/src/HGMDLModel.h
===================================================================
--- Mercury2/src/HGMDLModel.h 2008-12-31 00:12:56 UTC (rev 120)
+++ Mercury2/src/HGMDLModel.h 2008-12-31 00:30:44 UTC (rev 121)
@@ -3,6 +3,7 @@
#include <MercuryAsset.h>
#include <HGMDLMesh.h>
+#include <MercuryFile.h>
#include <vector>
@@ -12,7 +13,7 @@
virtual void LoadFromXML(const XMLNode& node);
- void LoadModel(FILE* hgmdl);
+ void LoadModel(MercuryFile* hgmdl);
static HGMDLModel* Generate();
virtual void Render(MercuryNode* node);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|