Add (low level) functionality to allow rendering 3D Meshes.

- Add love.graphics.setDepthMode(testcomparison, enablewrites).
- Add love.graphics.setMeshCullMode.
- Add love.graphics.setFrontFaceWinding.

Depth testing and depth writes require a depth buffer to work. The mesh cull mode controls whether front/back faces of a mesh are culled. The front face winding determines whether a clockwise or counterclockwise-oriented face in a mesh is considered front facing.

--HG--
branch : minor
This commit is contained in:
Alex Szpakowski
2017-12-09 23:34:08 -04:00
parent 915e6c8eec
commit 7354de2059
21 changed files with 572 additions and 113 deletions
+23
View File
@@ -86,6 +86,14 @@ enum AttributeStep
STEP_MAX_ENUM
};
enum CullMode
{
CULL_NONE,
CULL_BACK,
CULL_FRONT,
CULL_MAX_ENUM
};
namespace vertex
{
@@ -106,6 +114,13 @@ enum DataType
DATA_MAX_ENUM
};
enum Winding
{
WINDING_CW,
WINDING_CCW,
WINDING_MAX_ENUM
};
enum class TriangleIndexMode
{
NONE,
@@ -305,6 +320,14 @@ bool getConstant(const char *in, DataType &out);
bool getConstant(DataType in, const char *&out);
std::vector<std::string> getConstants(DataType);
bool getConstant(const char *in, CullMode &out);
bool getConstant(CullMode in, const char *&out);
std::vector<std::string> getConstants(CullMode);
bool getConstant(const char *in, Winding &out);
bool getConstant(Winding in, const char *&out);
std::vector<std::string> getConstants(Winding);
} // vertex
typedef vertex::XYf_STf_RGBAub Vertex;