- add vertex buffer based drawing for all walls and flats.

This commit is contained in:
Christoph Oelckers 2014-05-11 01:23:27 +02:00
commit f7404d20fb
7 changed files with 272 additions and 29 deletions

View file

@ -296,6 +296,7 @@ void FFlatVertexBuffer::CreateVBO()
{
CreateFlatVBO();
memcpy(map, &vbo_shadowdata[0], vbo_shadowdata.Size() * sizeof(FFlatVertex));
mIndex = vbo_shadowdata.Size();
}
else if (sectors)
{

View file

@ -35,6 +35,7 @@ class FFlatVertexBuffer : public FVertexBuffer
{
FFlatVertex *map;
unsigned int mIndex;
unsigned int mCurIndex;
void CheckPlanes(sector_t *sector);
@ -49,6 +50,23 @@ public:
void BindVBO();
void CheckUpdate(sector_t *sector);
FFlatVertex *GetBuffer()
{
return &map[mCurIndex];
}
unsigned int GetCount(FFlatVertex *newptr, unsigned int *poffset)
{
unsigned int newofs = unsigned int(newptr - map);
unsigned int diff = newofs - mCurIndex;
*poffset = mCurIndex;
mCurIndex = newofs;
return diff;
}
void Reset()
{
mCurIndex = mIndex;
}
private:
int CreateSubsectorVertices(subsector_t *sub, const secplane_t &plane, int floor);
int CreateSectorVertices(sector_t *sec, const secplane_t &plane, int floor);