Added support to sequential index buffers
Former-commit-id: 68a566ab9bfe0490ba25aeb1c7486722b4a4ed01
This commit is contained in:
parent
ef0dd580f5
commit
ab93fb802b
|
|
@ -21,6 +21,13 @@ namespace
|
||||||
return ptr[i];
|
return ptr[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nzUInt32 GetterSequential(const void* buffer, unsigned int i)
|
||||||
|
{
|
||||||
|
NazaraUnused(buffer);
|
||||||
|
|
||||||
|
return static_cast<nzUInt32>(i);
|
||||||
|
}
|
||||||
|
|
||||||
void Setter16(void* buffer, unsigned int i, nzUInt32 value)
|
void Setter16(void* buffer, unsigned int i, nzUInt32 value)
|
||||||
{
|
{
|
||||||
nzUInt16* ptr = reinterpret_cast<nzUInt16*>(buffer);
|
nzUInt16* ptr = reinterpret_cast<nzUInt16*>(buffer);
|
||||||
|
|
@ -42,6 +49,8 @@ namespace
|
||||||
NzIndexMapper::NzIndexMapper(NzIndexBuffer* indexBuffer, nzBufferAccess access) :
|
NzIndexMapper::NzIndexMapper(NzIndexBuffer* indexBuffer, nzBufferAccess access) :
|
||||||
m_mapper(indexBuffer, access)
|
m_mapper(indexBuffer, access)
|
||||||
{
|
{
|
||||||
|
if (indexBuffer && !indexBuffer->IsSequential())
|
||||||
|
{
|
||||||
if (indexBuffer->HasLargeIndices())
|
if (indexBuffer->HasLargeIndices())
|
||||||
{
|
{
|
||||||
m_getter = Getter32;
|
m_getter = Getter32;
|
||||||
|
|
@ -58,11 +67,19 @@ m_mapper(indexBuffer, access)
|
||||||
else
|
else
|
||||||
m_setter = SetterError;
|
m_setter = SetterError;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_getter = GetterSequential;
|
||||||
|
m_setter = SetterError;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NzIndexMapper::NzIndexMapper(const NzIndexBuffer* indexBuffer) :
|
NzIndexMapper::NzIndexMapper(const NzIndexBuffer* indexBuffer) :
|
||||||
m_mapper(indexBuffer, nzBufferAccess_ReadOnly)
|
m_mapper(indexBuffer, nzBufferAccess_ReadOnly)
|
||||||
{
|
{
|
||||||
|
if (indexBuffer && !indexBuffer->IsSequential())
|
||||||
|
{
|
||||||
if (indexBuffer->HasLargeIndices())
|
if (indexBuffer->HasLargeIndices())
|
||||||
{
|
{
|
||||||
m_getter = Getter32;
|
m_getter = Getter32;
|
||||||
|
|
@ -73,6 +90,12 @@ m_mapper(indexBuffer, nzBufferAccess_ReadOnly)
|
||||||
m_getter = Getter16;
|
m_getter = Getter16;
|
||||||
m_setter = SetterError;
|
m_setter = SetterError;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_getter = GetterSequential;
|
||||||
|
m_setter = SetterError;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NzIndexMapper::NzIndexMapper(const NzSubMesh* subMesh) :
|
NzIndexMapper::NzIndexMapper(const NzSubMesh* subMesh) :
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue