Информация об изменениях

Сообщение Re[2]: Как использовать graphics из нативного кода от 29.10.2016 12:27

Изменено 29.10.2016 12:32 goldfish

У вас должны быть "красивые" данные, мы их получали, естественно, из бекенд части, т.е. из С++.

Здравствуйте
Как рационально передавать данные из нативного кода в tiscript, как минимизировать накладные расходы при передаче?
Если для каждой вершины вызывается функция из нативного кода, это правильно?
Как можно ускорить передачу?

tiscript:
function drawChart(gfx)
{
    var x1, y1, x2, y2, pos;
        
    gfx.pushLayer(#client-box);
        
    pos = get_data(0);
    x1 = pos[0] * scaleX + dx;
    y1 = pos[1] * scaleY + dy;
        
    for(var n = 1; n < count; n++)
    {
        pos = get_data(n);
        x2 = pos[0] * scaleX + dx;
        y2 = pos[1] * scaleY + dy;
            
        gfx.line( x1, y1, x2, y2 );
    
        x1 = x2;
        y1 = y2;
    }        
}

нативный код:
tiscript::value TISAPI get_data_native(tiscript::VM* vm)
{
    int index;

    tiscript::args(vm) >> tiscript::args::skip >> tiscript::args::skip >> index;

    tiscript::value arr_dataXY = tiscript::create_array(vm, 2);

    tiscript::set_elem( vm, arr_dataXY, 0, tiscript::v_float(data[index * 2]) );
    tiscript::set_elem( vm, arr_dataXY, 1, tiscript::v_float(data[index * 2 + 1]) );

    return arr_dataXY;
}
static tiscript::method_def get_data_md("get_data", get_data_native);
Re[2]: Как использовать graphics из нативного кода

У вас должны быть "красивые" данные, мы их получали, естественно, из бекенд части, т.е. из С++.

Здравствуйте
Как рационально передавать данные из нативного кода в tiscript, как минимизировать накладные расходы при передаче?
Если для каждой вершины вызывается функция из нативного кода, это правильно?
Как можно ускорить передачу?

tiscript:
function drawChart(gfx)
{
    var x1, y1, x2, y2, pos;
        
    gfx.pushLayer(#client-box);
        
    pos = get_data(0);
    x1 = pos[0];
    y1 = pos[1];
        
    for(var n = 1; n < count; n++)
    {
        pos = get_data(n);
        x2 = pos[0];
        y2 = pos[1];
            
        gfx.line( x1, y1, x2, y2 );
    
        x1 = x2;
        y1 = y2;
    }        
}

нативный код:
tiscript::value TISAPI get_data_native(tiscript::VM* vm)
{
    int index;

    tiscript::args(vm) >> tiscript::args::skip >> tiscript::args::skip >> index;

    tiscript::value arr_dataXY = tiscript::create_array(vm, 2);

    tiscript::set_elem( vm, arr_dataXY, 0, tiscript::v_float(data[index * 2]) );
    tiscript::set_elem( vm, arr_dataXY, 1, tiscript::v_float(data[index * 2 + 1]) );

    return arr_dataXY;
}
static tiscript::method_def get_data_md("get_data", get_data_native);