From f1683339380388338d1e2c423e00e090f32ccb34 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Sat, 1 Aug 2020 21:51:37 -0300 Subject: [PATCH] Simplify Buffer APIs. Remove Buffer:set/getElement, Buffer:isCPUReadable, and the cpureadable flag in newBuffer's settings parameter. --- src/modules/graphics/wrap_Buffer.cpp | 79 -------------------------- src/modules/graphics/wrap_Graphics.cpp | 5 -- 2 files changed, 84 deletions(-) diff --git a/src/modules/graphics/wrap_Buffer.cpp b/src/modules/graphics/wrap_Buffer.cpp index fe61b39ea..9289134f5 100644 --- a/src/modules/graphics/wrap_Buffer.cpp +++ b/src/modules/graphics/wrap_Buffer.cpp @@ -309,75 +309,6 @@ static int w_Buffer_setArrayData(lua_State *L) return 0; } -static int w_Buffer_setElement(lua_State *L) -{ - Buffer *t = luax_checkbuffer(L, 1); - - size_t index = (size_t) (luaL_checkinteger(L, 2) - 1); - if (index >= t->getArrayLength()) - return luaL_error(L, "Invalid Buffer element index: %d", (int) index + 1); - - size_t stride = t->getArrayStride(); - size_t offset = index * stride; - char *data = (char *) t->map() + offset; - const auto &members = t->getDataMembers(); - - bool istable = lua_istable(L, 3); - int idx = istable ? 1 : 3; - - if (istable) - { - for (const Buffer::DataMember &member : members) - { - int components = member.info.components; - - for (int i = idx; i < idx + components; i++) - lua_rawgeti(L, 3, i); - - luax_writebufferdata(L, -components, member.decl.format, data + member.offset); - - idx += components; - lua_pop(L, components); - } - } - else - { - for (const Buffer::DataMember &member : members) - { - luax_writebufferdata(L, idx, member.decl.format, data + member.offset); - idx += member.info.components; - } - } - - t->setMappedRangeModified(offset, stride); - return 0; -} - -static int w_Buffer_getElement(lua_State *L) -{ - Buffer *t = luax_checkbuffer(L, 1); - if ((t->getMapFlags() & Buffer::MAP_READ) == 0) - return luaL_error(L, "Buffer:getElement requires the buffer to be created with the 'cpureadable' setting set to true."); - - size_t index = (size_t) (luaL_checkinteger(L, 2) - 1); - if (index >= t->getArrayLength()) - return luaL_error(L, "Invalid Buffer element index: %d", (int) index + 1); - - size_t offset = index * t->getArrayStride(); - const char *data = (const char *) t->map() + offset; - const auto &members = t->getDataMembers(); - - int n = 0; - - for (const Buffer::DataMember &member : members) - { - luax_readbufferdata(L, member.decl.format, data + member.offset); - n += member.info.components; - } - - return n; -} - static int w_Buffer_getElementCount(lua_State *L) { Buffer *t = luax_checkbuffer(L, 1); @@ -443,25 +374,15 @@ static int w_Buffer_isBufferType(lua_State *L) return 1; } -static int w_Buffer_isCPUReadable(lua_State *L) -{ - Buffer *t = luax_checkbuffer(L, 1); - luax_pushboolean(L, (t->getMapFlags() & Buffer::MAP_READ) != 0); - return 1; -} - static const luaL_Reg w_Buffer_functions[] = { { "flush", w_Buffer_flush }, { "setArrayData", w_Buffer_setArrayData }, - { "setElement", w_Buffer_setElement }, - { "getElement", w_Buffer_getElement }, { "getElementCount", w_Buffer_getElementCount }, { "getElementStride", w_Buffer_getElementStride }, { "getSize", w_Buffer_getSize }, { "getFormat", w_Buffer_getFormat }, { "isBufferType", w_Buffer_isBufferType }, - { "isCPUReadable", w_Buffer_isCPUReadable }, { 0, 0 } }; diff --git a/src/modules/graphics/wrap_Graphics.cpp b/src/modules/graphics/wrap_Graphics.cpp index b20f34148..4cfff8971 100644 --- a/src/modules/graphics/wrap_Graphics.cpp +++ b/src/modules/graphics/wrap_Graphics.cpp @@ -1508,11 +1508,6 @@ static void luax_optbuffersettings(lua_State *L, int idx, Buffer::Settings &sett lua_getfield(L, idx, "usage"); settings.usage = luax_optbufferusage(L, -1, settings.usage); lua_pop(L, 1); - - if (luax_boolflag(L, idx, "cpureadable", settings.mapFlags & Buffer::MAP_READ)) - settings.mapFlags = (Buffer::MapFlags)(settings.mapFlags | Buffer::MAP_READ); - else - settings.mapFlags = (Buffer::MapFlags)(settings.mapFlags & (~Buffer::MAP_READ)); } static void luax_checkbufferformat(lua_State *L, int idx, std::vector &format)