From 11d96f182696bbcaf8fe3ca133361f786495628a Mon Sep 17 00:00:00 2001 From: bjorn Date: Sat, 12 Nov 2016 17:38:49 -0800 Subject: [PATCH] lovr.graphics.setPointSize; --- src/graphics/graphics.c | 10 ++++++++++ src/graphics/graphics.h | 3 +++ src/lovr/graphics.c | 13 +++++++++++++ src/lovr/graphics.h | 2 ++ 4 files changed, 28 insertions(+) diff --git a/src/graphics/graphics.c b/src/graphics/graphics.c index 324bf4dd..0095a6e2 100644 --- a/src/graphics/graphics.c +++ b/src/graphics/graphics.c @@ -62,6 +62,7 @@ void lovrGraphicsReset() { lovrGraphicsSetColorMask(1, 1, 1, 1); lovrGraphicsSetScissorEnabled(0); lovrGraphicsSetLineWidth(1); + lovrGraphicsSetPointSize(1); lovrGraphicsSetCullingEnabled(0); lovrGraphicsSetPolygonWinding(POLYGON_WINDING_COUNTERCLOCKWISE); } @@ -224,6 +225,15 @@ void lovrGraphicsSetLineWidth(float width) { glLineWidth(width); } +float lovrGraphicsGetPointSize() { + return state.pointSize; +} + +void lovrGraphicsSetPointSize(float size) { + state.pointSize = size; + glPointSize(size); +} + char lovrGraphicsIsCullingEnabled() { return state.isCullingEnabled; } diff --git a/src/graphics/graphics.h b/src/graphics/graphics.h index 7531af28..7952951e 100644 --- a/src/graphics/graphics.h +++ b/src/graphics/graphics.h @@ -50,6 +50,7 @@ typedef struct { vec_float_t shapeData; vec_uint_t shapeIndices; float lineWidth; + float pointSize; char isCullingEnabled; PolygonWinding polygonWinding; } GraphicsState; @@ -77,6 +78,8 @@ void lovrGraphicsSetProjection(float near, float far, float fov); void lovrGraphicsSetProjectionRaw(mat4 projection); float lovrGraphicsGetLineWidth(); void lovrGraphicsSetLineWidth(float width); +float lovrGraphicsGetPointSize(); +void lovrGraphicsSetPointSize(float size); char lovrGraphicsIsCullingEnabled(); void lovrGraphicsSetCullingEnabled(char isEnabled); PolygonWinding lovrGraphicsGetPolygonWinding(); diff --git a/src/lovr/graphics.c b/src/lovr/graphics.c index b2238eac..3dbfe35f 100644 --- a/src/lovr/graphics.c +++ b/src/lovr/graphics.c @@ -56,6 +56,8 @@ const luaL_Reg lovrGraphics[] = { { "setProjection", l_lovrGraphicsSetProjection }, { "getLineWidth", l_lovrGraphicsGetLineWidth }, { "setLineWidth", l_lovrGraphicsSetLineWidth }, + { "getPointSize", l_lovrGraphicsGetPointSize }, + { "setPointSize", l_lovrGraphicsSetPointSize }, { "isCullingEnabled", l_lovrGraphicsIsCullingEnabled }, { "setCullingEnabled", l_lovrGraphicsSetCullingEnabled }, { "getPolygonWinding", l_lovrGraphicsGetPolygonWinding }, @@ -274,6 +276,17 @@ int l_lovrGraphicsSetLineWidth(lua_State* L) { return 0; } +int l_lovrGraphicsGetPointSize(lua_State* L) { + lua_pushnumber(L, lovrGraphicsGetPointSize()); + return 1; +} + +int l_lovrGraphicsSetPointSize(lua_State* L) { + float size = luaL_optnumber(L, 1, 1.f); + lovrGraphicsSetPointSize(size); + return 0; +} + int l_lovrGraphicsIsCullingEnabled(lua_State* L) { lua_pushboolean(L, lovrGraphicsIsCullingEnabled()); return 1; diff --git a/src/lovr/graphics.h b/src/lovr/graphics.h index 44784f8d..4a7a29ba 100644 --- a/src/lovr/graphics.h +++ b/src/lovr/graphics.h @@ -29,6 +29,8 @@ int l_lovrGraphicsSetShader(lua_State* L); int l_lovrGraphicsSetProjection(lua_State* L); int l_lovrGraphicsGetLineWidth(lua_State* L); int l_lovrGraphicsSetLineWidth(lua_State* L); +int l_lovrGraphicsGetPointSize(lua_State* L); +int l_lovrGraphicsSetPointSize(lua_State* L); int l_lovrGraphicsIsCullingEnabled(lua_State* L); int l_lovrGraphicsSetCullingEnabled(lua_State* L); int l_lovrGraphicsGetPolygonWinding(lua_State* L);