Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Hermet Park
    @hermet
    @mmaciola every release, i update it based on the guide. recently you updated thorvg viewer, if you think it needs more prerequisite or steps, please let me know.
    6 replies
    Karim Ahmed
    @kariem2k
    I just came across the repo! I was in search for vg renderer for months now (was using nanovg but it was slow for my purposes). Thank you very much. I will try to make a backend for it on bgfx. But I have a question, is performance suitable for games for maybe 100-200 basic dynamic objects on screen, dynamic in terms of movement and shape changes so tesselation caching will not be very efficient?
    how does the gl backend work? Does it use stencil buffer for clipping (like what rive-sokol does for example)?
    Karim Ahmed
    @kariem2k
    I don't think the GL renderer actually supports this yet from what I see
    Hermet Park
    @hermet
    @kariem2k hi, right. it actually doens't support gl, it's under the development. somewhat sw raster could be better than gl (it's up to how the screen is composed.)
    @kariem2k in case of gl , if you have your own native rendering system, it would lose the performance when switching gl contexts between your main renderer and vector graphics renderer (thorvg).
    @kariem2k in terms of that scenario, sw raster is more efficient. if you concern the performance, in the end you need to prototype & verify it.
    Hermet Park
    @hermet
    @kariem2k i assume, the number of objects (100 ~ 200) won't be issued much, instead the higher screen resolution is more criticial to the performance.
    @kariem2k i don't know the rive-sokol at this moment, you can check https://www.youtube.com/watch?v=U0y0afuNW-8 video I recorded rive animation with thorvg backend on the standard laptop (old one, not high spec machine).
    @kariem2k feel free to ask me further questions :)
    Karim Ahmed
    @kariem2k
    @hermet Thank you very much. I will give it a try
    Hermet Park
    @hermet
    @kariem2k https://github.com/rive-app/rive-tizen fyi, this is the rive - thorvg backend version.
    Hermet Park
    @hermet
    @mgrudzinska as you warned me earlier, i reverted the tvg_loader patch you mentioned. Samsung/thorvg@6ba2bc8
    thanks for report.
    Hermet Park
    @hermet
    iFire
    @ifire:mozilla.org
    [m]
    @hermet: I'm here for a more interactive conversation. The problem I had was I was using svg through thorvg and draw() always shows Result::InsufficientCondition.
    iFire
    @ifire:mozilla.org
    [m]
    Any idea how to debug this?
    Hermet Park
    @hermet
    @ifire:mozilla.org otherwise callstack will be helpful to figure out the exact reason.
    @ifire:mozilla.org the possibilities:
    1. there were no Paints(Picture) pushed to the canvas
    1. paints (Picture) might be corrupted.
    @ifire:mozilla.org it looks a simple problem please share me the code, also you can put some log messages to draw() //113 line, tvgCanvasImpl.h
    @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