From e3b2a4d9745a579020a4c64e46c7eb1cb28cf81e Mon Sep 17 00:00:00 2001 From: bjorn Date: Fri, 6 Jul 2018 01:35:00 -0700 Subject: [PATCH] lovr.graphics.newShader accepts Blobs; --- src/api/graphics.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/api/graphics.c b/src/api/graphics.c index f3a25dd5..b8426555 100644 --- a/src/api/graphics.c +++ b/src/api/graphics.c @@ -1031,15 +1031,21 @@ int l_lovrGraphicsNewModel(lua_State* L) { } int l_lovrGraphicsNewShader(lua_State* L) { - for (int i = 0; i < 2; i++) { - if (lua_isnoneornil(L, i + 1)) continue; - const char* source = luaL_checkstring(L, i + 1); + for (int i = 1; i <= 2; i++) { + if (lua_isnoneornil(L, i)) continue; + Blob** blob = luax_totype(L, i, Blob); + if (blob) { + lua_pushlstring(L, (*blob)->data, (*blob)->size); + lua_replace(L, i); + continue; + } + const char* source = luaL_checkstring(L, i); if (!lovrFilesystemIsFile(source)) continue; size_t bytesRead; char* contents = lovrFilesystemRead(source, &bytesRead); lovrAssert(bytesRead > 0, "Could not read shader from file '%s'", source); lua_pushlstring(L, contents, bytesRead); - lua_replace(L, i + 1); + lua_replace(L, i); free(contents); }