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

Сообщение Re: Как использовать graphics из нативного кода от 06.11.2016 22:48

Изменено 06.11.2016 22:55 goldfish

Здравствуйте Андрей
Код приведенный ниже должен вернуть в скрипт изображение содержащее красную линию на сером фоне.
Однако получается красная линия на чёрном фоне. Если закоментировать img.paint(&painter) то получается изображение с серым фоном (без красной линии естественно). Когда начинает работать painter фон закрашивается чёрным
Вопрос — как залить всё изображение нужным цветом не прибегая к gfx.rectangle(0, 0, width, height)?
img.clear(sciter::gcolor(127, 127, 127)) у меня не заработал (смотри предыдущее сообщение)

class IMGPainter : public sciter::painter {
public:
void paint(sciter::graphics& gfx, UINT width, UINT height)
{
    gfx.line_width(1);
    gfx.line_color(sciter::gcolor(255, 0, 0));
    gfx.line(0, 0, width, UINT height);
}
};
sciter::value nativeImage(const UINT width, const UINT height)
{
    BYTE *b = new BYTE[width * height * 4];
    memset(b, 127, width * height * 4);

    sciter::image img;
    img = sciter::image::create(width, height, false, b);

    IMGPainter painter;
    img.paint(&painter);

    return img.to_value();
}

tiscript:
var imageChart = view.nativeImage(width, height);
gfx.drawImage(imageChart, 0.0, 0.0);
Здравствуйте Андрей
Код приведенный ниже должен вернуть в скрипт изображение содержащее красную линию на сером фоне.
Однако получается красная линия на чёрном фоне. Если закоментировать img.paint(&painter) то получается изображение с серым фоном (без красной линии естественно). Когда начинает работать painter фон закрашивается чёрным
Вопрос — как залить всё изображение нужным цветом не прибегая к gfx.rectangle(0, 0, width, height)?
img.clear(sciter::gcolor(127, 127, 127)) у меня не заработал (смотри предыдущее сообщение)

class IMGPainter : public sciter::painter {
public:
void paint(sciter::graphics& gfx, UINT width, UINT height)
{
    gfx.line_width(1);
    gfx.line_color(sciter::gcolor(255, 0, 0));
    gfx.line(0, 0, width, height);
}
};
sciter::value nativeImage(const UINT width, const UINT height)
{
    BYTE *b = new BYTE[width * height * 4];
    memset(b, 127, width * height * 4);

    sciter::image img;
    img = sciter::image::create(width, height, false, b);

    IMGPainter painter;
    img.paint(&painter);

    return img.to_value();
}

tiscript:
var imageChart = view.nativeImage(width, height);
gfx.drawImage(imageChart, 0.0, 0.0);