2019-09-16 17:35:04 +00:00
|
|
|
#pragma once
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <algorithm>
|
|
|
|
|
|
|
|
struct BaseVertex
|
|
|
|
{
|
|
|
|
float x, y, z;
|
|
|
|
float u, v;
|
|
|
|
|
|
|
|
void SetVertex(float _x, float _y, float _z = 0)
|
|
|
|
{
|
|
|
|
x = _x;
|
|
|
|
y = _y;
|
|
|
|
z = _z;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetTexCoord(float _u = 0, float _v = 0)
|
|
|
|
{
|
|
|
|
u = _u;
|
|
|
|
v = _v;
|
|
|
|
}
|
2019-09-16 19:08:42 +00:00
|
|
|
|
|
|
|
void Set(float _x, float _y, float _z = 0, float _u = 0, float _v = 0)
|
|
|
|
{
|
|
|
|
x = _x;
|
|
|
|
y = _y;
|
|
|
|
z = _z;
|
|
|
|
u = _u;
|
|
|
|
v = _v;
|
|
|
|
}
|
2019-09-16 17:35:04 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
enum EDrawType
|
|
|
|
{
|
|
|
|
DT_TRIANGLES,
|
|
|
|
DT_TRIANGLE_STRIP,
|
|
|
|
DT_TRIANGLE_FAN,
|
|
|
|
DT_QUADS,
|
|
|
|
DT_LINES
|
|
|
|
};
|
|
|
|
|
|
|
|
class GLInstance
|
|
|
|
{
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
std::pair<size_t, BaseVertex *> AllocVertices(size_t num);
|
|
|
|
void Draw(EDrawType type, size_t start, size_t count);
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
extern GLInstance GLInterface;
|