"include/svn:/svn.code.sf.net/p/irrlicht/code/trunk@763" did not exist on "e5dbed93dd59a6957b5be7a3d8c44dea83dec326"
Commit 229ff7da authored by hybrid's avatar hybrid

Add support for large meshes in .irrmesh format. Patch submitted by pc0de.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2261 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 12e3d08e
This diff is collapsed.
......@@ -11,6 +11,7 @@
#include "irrString.h"
#include "SMesh.h"
#include "SMeshBuffer.h"
#include "CDynamicMeshBuffer.h"
#include "ISceneManager.h"
namespace irr
......@@ -68,13 +69,11 @@ private:
//! reads floats from inside of xml element until end of xml element
void readFloatsInsideElement(io::IXMLReader* reader, f32* floats, u32 count);
//! read all 3 types of mesh buffers
void readMeshBuffer(io::IXMLReader* reader, int vertexCount, SMeshBuffer* sbuffer);
void readMeshBuffer(io::IXMLReader* reader, int vertexCount, SMeshBufferLightMap* sbuffer);
void readMeshBuffer(io::IXMLReader* reader, int vertexCount, SMeshBufferTangents* sbuffer);
//! read the mesh buffers
void readMeshBuffer(io::IXMLReader* reader, int vertexCount, CDynamicMeshBuffer* sbuffer);
//! read indices
void readIndices(io::IXMLReader* reader, int indexCount, core::array<u16>& indices);
void readIndices(io::IXMLReader* reader, int indexCount, IIndexBuffer& indices);
// member variables
......
......@@ -252,13 +252,25 @@ void CIrrMeshWriter::writeMeshBuffer(const scene::IMeshBuffer* buffer)
Writer->writeLineBreak();
int indexCount = (int)buffer->getIndexCount();
const u16* idx = buffer->getIndices();
video::E_INDEX_TYPE iType = buffer->getIndexType();
const u16* idx16 = buffer->getIndices();
const u32* idx32 = (u32*) buffer->getIndices();
const int maxIndicesPerLine = 25;
for (int i=0; i<indexCount; ++i)
{
core::stringw str((int)idx[i]);
Writer->writeText(str.c_str());
if(iType == video::EIT_16BIT)
{
core::stringw str((int)idx16[i]);
Writer->writeText(str.c_str());
}
else
{
core::stringw str((int)idx32[i]);
Writer->writeText(str.c_str());
}
if (i % maxIndicesPerLine != maxIndicesPerLine)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment