Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Hermet Park
    @hermet
    @ifire:mozilla.org to find the condition which bring that wrong result.
    Hermet Park
    @hermet
    @ifire:mozilla.org could you please double-check the return value of this? sw_canvas->push(move(picture));
    @ifire:mozilla.org also, I'm wondering if you do not push the picture but just push the background shape, in that case draw() call is successful or not.
    @ifire:mozilla.org could you please double check the above?
    @ifire:mozilla.org +more question, does this problem only happened when you introduce the accessor customization calls?
    and all the svg resources?
    to make it sure the fail is only happened at the specific svg resources or all cases 100%.
    iFire
    @ifire:mozilla.org
    [m]
    I see it fail on all svgs.
    Hermet Park
    @hermet
    @ifire:mozilla.org ok, i see then implementation issue.
    iFire
    @ifire:mozilla.org
    [m]
    Let me check
    Hermet Park
    @hermet
    @ifire:mozilla.org second question is... it is only happened when you introduce the accessor customization call.
    iFire
    @ifire:mozilla.org
    [m]
    I think I also upgraded thorvg
    and I used 0.6.0
    Hermet Park
    @hermet
    ok
    iFire
    @ifire:mozilla.org
    [m]
    I think it may be how I compiled thorvg
    Hermet Park
    @hermet
    @ifire:mozilla.org hmm... its not about the corruption.. so i think there could be a logic issue in the implementation...
    @ifire:mozilla.org could you please check this request? => put some log messages to draw() //113 line, tvgCanvasImpl.h to figure out which condition fails.
    iFire
    @ifire:mozilla.org
    [m]
    looking
    some log messages to draw() //113 line, tvgCanvasImpl.h. can you write more
    describe more
    Hermet Park
    @hermet
    Result draw()
    {
        if (drawing || paints.count == 0 || !renderer || !renderer->preRender()) return Result::InsufficientCondition;
    
        bool rendered = false;
        for (auto paint = paints.data; paint < (paints.data + paints.count); ++paint) {
            if ((*paint)->pImpl->render(*renderer)) rendered = true;
        }
    
        if (!rendered || !renderer->postRender()) return Result::InsufficientCondition;
    
        drawing = true;
    
        return Result::Success;
    }
    @ifire:mozilla.org so it fails here.
    iFire
    @ifire:mozilla.org
    [m]
    renderer is 0 I think
    Hermet Park
    @hermet
    Im wondering which condition brings the Result::InsufficientCondition
    iFire
    @ifire:mozilla.org
    [m]
    !renderer
    Hermet Park
    @hermet
    oh
    than it's not initialized.
    ImageLoaderSVG::ImageLoaderSVG() {
    tvg::CanvasEngine tvgEngine = tvg::CanvasEngine::Sw;
    uint32_t threads = std::thread::hardware_concurrency();
    if (threads > 0) {
    --threads;
    }
    if (tvg::Initializer::init(tvgEngine, threads) != tvg::Result::Success) {
    return;
    }
    }
    can you double check "if (tvg::Initializer::init(tvgEngine, threads) != tvg::Result::Success) {" ??
    it's successful or not
    iFire
    @ifire:mozilla.org
    [m]
    checking
    Hermet Park
    @hermet
    maybe thread count is not allowed
    or something else...
    or...,
    one possibility. "THORVG_SW_RASTER_SUPPORT" define is missed,
    iFire
    @ifire:mozilla.org
    [m]
    wait a second
    code in godot engine has THORVG_SW_RASTER_SUPPORT undef but THORVG_SW_RASTER_SUPPORT in thorvg is defined
    let me check
    iFire
    @ifire:mozilla.org
    [m]
    Huh
    It's late. I'll look at it in the morning.
    Will update git.
    iFire
    @ifire:mozilla.org
    [m]
    is this correct? if (!drawing) return Result::InsufficientCondition;
    Hermet Park
    @hermet
    @ifire:mozilla.org no, where that code come from?
    Result sync()
    {
        if (!drawing) return Result::InsufficientCondition;
    
        if (renderer->sync()) {
            drawing = false;
            return Result::Success;
        }
    
        return Result::InsufficientCondition;
    }
    if canvas->draw() is failed, sync() will get the situation.
    Hermet Park
    @hermet
    Hermet Park
    @hermet
    @JSUYA ping
    Hermet Park
    @hermet