Remove vertex namespace

This commit is contained in:
Alex Szpakowski
2020-01-13 20:41:05 -04:00
parent b0232a4a6b
commit ee5304ba53
31 changed files with 398 additions and 266 deletions
+36 -5
View File
@@ -23,6 +23,7 @@
// LOVE
#include "common/config.h"
#include "common/int.h"
#include "common/Object.h"
#include "vertex.h"
#include "Resource.h"
@@ -41,10 +42,12 @@ class Graphics;
/**
* A block of GPU-owned memory. Currently meant for internal use.
**/
class Buffer : public Resource
class Buffer : public love::Object, public Resource
{
public:
static love::Type type;
enum MapFlags
{
MAP_EXPLICIT_RANGE_MODIFY = (1 << 0), // see setMappedRangeModified.
@@ -112,6 +115,28 @@ public:
DATA_MAX_ENUM
};
enum DataTypeBase
{
DATA_BASE_FLOAT,
DATA_BASE_INT,
DATA_BASE_UINT,
DATA_BASE_SNORM,
DATA_BASE_UNORM,
DATA_BASE_BOOL,
};
struct DataTypeInfo
{
DataTypeBase baseType;
bool isMatrix;
int components;
int matrixRows;
int matrixColumns;
size_t componentSize;
size_t packedAlignment;
size_t packedSize;
};
struct DataMember
{
std::string name;
@@ -123,16 +148,16 @@ public:
{
BufferTypeFlags typeFlags;
MapFlags mapFlags;
vertex::Usage usage;
BufferUsage usage;
};
Buffer(size_t size, BufferTypeFlags typeflags, vertex::Usage usage, uint32 mapflags);
Buffer(size_t size, BufferTypeFlags typeflags, BufferUsage usage, uint32 mapflags);
Buffer(Graphics *gfx, const Settings &settings, const std::vector<DataMember> &format, size_t arraylength);
virtual ~Buffer();
size_t getSize() const { return size; }
BufferTypeFlags getTypeFlags() const { return typeFlags; }
vertex::Usage getUsage() const { return usage; }
BufferUsage getUsage() const { return usage; }
bool isMapped() const { return mapped; }
uint32 getMapFlags() const { return mapFlags; }
@@ -196,8 +221,14 @@ public:
// static size_t getDataTypeSize(DataType type, bool uniform)
const DataTypeInfo &getDataTypeInfo(DataType type);
protected:
std::vector<DataMember> format;
std::vector<size_t> memberOffsets;
size_t arrayStride;
// The size of the buffer, in bytes.
size_t size;
@@ -205,7 +236,7 @@ protected:
BufferTypeFlags typeFlags;
// Usage hint. GL_[DYNAMIC, STATIC, STREAM]_DRAW.
vertex::Usage usage;
BufferUsage usage;
uint32 mapFlags;