Added Mesh:setDrawRange(min, max) and Mesh:getDrawRange().

If no vertex map is set, this restricts the drawn vertices to those whose indices in the vertex array are between [min, max] inclusive.
If a vertex map is set, this restricts the values used in the vertex map to those whose indices in the vertex map array are between [min, max] inclusive.

Added Mesh constructor variant: love.graphics.newMesh(vertexcount, texture, drawmode). Creates a Mesh with a certain number of vertices with x,y,u,v,r,g,b,a values of (0,0,0,0,255,255,255,255).
This commit is contained in:
Alex Szpakowski
2014-01-21 06:16:47 -04:00
parent 73f1ce0d40
commit ba7e69d776
7 changed files with 191 additions and 54 deletions
+18
View File
@@ -22,6 +22,7 @@
#define LOVE_GRAPHICS_OPENGL_MESH_H
// LOVE
#include "common/config.h"
#include "common/int.h"
#include "common/math.h"
#include "common/StringMap.h"
@@ -64,6 +65,16 @@ public:
* @param mode The draw mode to use when drawing the Mesh.
**/
Mesh(const std::vector<Vertex> &verts, DrawMode mode = DRAW_MODE_FAN);
/**
* Constructor.
* Creates a Mesh with a certain number of default-initialized (hidden)
* vertices.
* @param vertexcount The number of vertices to use in the Mesh.
* @param mode The draw mode to use when drawing the Mesh.
**/
Mesh(int vertexcount, DrawMode mode = DRAW_MODE_FAN);
virtual ~Mesh();
/**
@@ -140,6 +151,10 @@ public:
void setDrawMode(DrawMode mode);
DrawMode getDrawMode() const;
void setDrawRange(int min, int max);
void setDrawRange();
void getDrawRange(int &min, int &max) const;
/**
* Sets whether per-vertex colors are enabled. If this is disabled, the
* global color (love.graphics.setColor) will be used for the entire Mesh.
@@ -178,6 +193,9 @@ private:
DrawMode draw_mode;
int range_min;
int range_max;
Texture *texture;
// Whether the per-vertex colors are used when drawing.