Make native for changing texture.
Looks like native is 20-30% faster.
Anybody have ideas how can i increase speed more?
Test for screen 300x400.
PC
DEBUG:SCRIPT: native: 0.029
DEBUG:SCRIPT: lua:0.04
DEBUG:SCRIPT: native: 0.029
DEBUG:SCRIPT: lua:0.039
DEBUG:SCRIPT: native: 0.029
DEBUG:SCRIPT: lua:0.039
DEBUG:SCRIPT: native: 0.03
DEBUG:SCRIPT: lua:0.04
DEBUG:SCRIPT: native: 0.03
DEBUG:SCRIPT: lua:0.039
DEBUG:SCRIPT: native: 0.031
DEBUG:SCRIPT: lua:0.04
DEBUG:SCRIPT: native: 0.031
DEBUG:SCRIPT: lua:0.039
Android
native: 0.059728999999999
lua:0.077413999999999
native: 0.059455
lua:0.082948999999999
native: 0.058417
lua:0.078471
native: 0.059436
lua:0.080285
native: 0.059778999999999
lua:0.077199
native: 0.060198999999999
lua:0.081021
native: 0.059331
lua:0.082233
native: 0.0600940000000011
lua:0.079887999999999
native: 0.058405
lua:0.079704000000001
native: 0.058944
lua:0.07696
native: 0.058088
lua:0.079167999999997
native: 0.056916999999999
lua:0.079489000000002
native: 0.060658
lua:0.082440000000002
native: 0.059473000000001
lua:0.081376000000002
static int drawPixels(lua_State* L)
{
lua_getfield(L, 1, "width");
lua_getfield(L, 1, "height");
int width = luaL_checknumber(L, -2);
int height = luaL_checknumber(L, -1);
lua_pop(L, 1);
lua_pop(L, 1);
int size = width * height;
printf("width=%d height=%d \n",width,height);
lua_pushstring(L,"stream");
lua_gettable(L, -2 );
lua_pushstring(L,"leds");
lua_gettable(L, -3 );
for(int i=1; i<= size;i++){
lua_rawgeti(L,-1,i);
int color = luaL_checknumber(L, -1);
//printf("i=%d color=%d \n",i,color);
lua_pop(L, 1);
int r = color >> 16;
int g = (color & 0x00FF00) >> 8;
int b= color & 0x0000ff;
int id = i * 3;
lua_pushnumber(L, id - 2);
lua_pushnumber(L, r);
lua_settable(L, -4);
lua_pushnumber(L, id - 1);
lua_pushnumber(L, g);
lua_settable(L, -4);
lua_pushnumber(L, id);
lua_pushnumber(L, b);
lua_settable(L, -4);
//lua_pop(L,1);
}
lua_pop(L,1);
return 1;
}