Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Ryan G
    @ryanisaacg

    Sorry I missed both your messages! Gitter never notified me for whatever reason.

    @hughlang I don't know why that would happen, other than artifacts possibly from lines at odd angles being impossible to draw one-pixel-thick

    @seanvoss Feel free to PR getter methods for the number of frames and the current frame! My use case has always been simple loops, so I've never needed it.

    hughlang
    @hughlang
    No worries Ryan. I have a few things I want to talk about though.
    I have been working heavily with Quicksilver over the last month and I figured out a few things.
    I have a few feature requests. One of them is pretty large. The good news is that I wrote the code to solve them. I just need your feedback, since it's not perfect yet.
    hughlang
    @hughlang
    The current opengl/webgl architecture seems to be limited to a single rendering pipeline. Everything accumulates in the global Mesh and is executed by a single set of GL scripts
    So it seems that you cannot have specialized pipelines that execute specialized operations such as:
    Upload and read/write to a texture in the GPU and only accessing specific parts of textures
    Or only reading/writing to specific color channels. Yeah, almost nobody wants to do this kind of thing. But I needed to.
    hughlang
    @hughlang
    And yeah, @ryanisaacg... Gitter seems to be selective about what notifications it sends you. I would appreciate if we could talk more about this. When you have time, can you look at my fork? I created a PR there just so I could review without confusing the main repo. hughlang/quicksilver#1
    There's some unnecessary garbage there that I want to remove and create a new PR for your repo. Feel free to AMA
    Starting with the first 2 files in the PR list... these are just example code for drawing basic shapes in Lyon. It will be a separate PR or tossed out.
    And then most of the remaining code centers around a new rendering pipeline architecture where modular DrawTasks can encapsulate the vertices and GPU triangles associated with corresponding GL programs and textures.
    hughlang
    @hughlang
    Sorry to dump this on you. Quicksilver is amazing and is the only project out there that lets me build for opengl and wasm/webgl in a bare metal way.
    hughlang
    @hughlang
    For context, I am working on a full GUI framework for Rust that works on any OS and webgl. It started as an animation lib and now it's almost complete as a GUI lib. https://github.com/wasm-network/tweek-rust
    francesco-cattoglio
    @francesco-cattoglio
    Hi there, newbie here. I am toying around with quicksilver and it really looks nice! I was thinking about loading multiple images then combining them via drawing on a surface (so that in the end I only have one image and do not need to keep track of everything, but I am a bit lost. I understand that loading something produces a future, and I can do something like
    Assert::new({
    let future_1 = <load something>;
    let future_2 = <load something else>;
     })
    Then, all I have is multiple futures I don't know how to combine. If I join() them I get a tuple, but I honestly have no idea about what can be done with it, all my attempts have failed :sweat_smile:
    francesco-cattoglio
    @francesco-cattoglio
    Since yesterday I made a bit of progress in understanding what can be done, but I am facing a strange behaviour with the screen flickering if I try to create an Asset<Surface>. Also opened a "question" issue ryanisaacg/quicksilver#501
    MushuYoWushu
    @MushuYoWushu
    Hey there, are there completed game projects I can look at? (Like an examples page)
    Ryan G
    @ryanisaacg
    wow, Gitter has very helpfully again failed to notify me about any of these messages. I'm very sorry @hughlang @francesco-cattoglio ! I think I'm going to migrate away from Gitter because of this very problem
    @hughlang Honestly I think what you're going for is great! I don't have the bandwidth to make major changes to Quicksilver as of right now, though, and I have some of my own thoughts about how to add modular pipelines that I'm saving for Quicksilver 0.4
    Ryan G
    @ryanisaacg
    @francesco-cattoglio When you have a tuple of joined futures, you can unpack them when you execute
    @MushuYoWushu Yup, in the readme!
    I would direct people with further questions to open issues or to join the Rust Community Discord and ping me there! https://discord.gg/aVESxV8
    MushuYoWushu
    @MushuYoWushu
    Who are you there?
    Ryan G
    @ryanisaacg
    @MushuYoWushu I'm ryanisaacg on Discord
    hughlang
    @hughlang
    Hey @ryanisaacg. Yeah, Gitter is terrible for notifications. Sometimes it smothers you and then it goes quiet. I just saw your last message a few days ago.
    I'd like to hear your plans for modular pipelines. I know mine isn't quite there yet. I'd like to clean up my branch and submit a PR just to start a discussion.
    Ryan G
    @ryanisaacg
    @hughlang Modular pipelines will probably miss Quicksilver 0.4 actually, but I'm thinking either an API that allows users to have custom vertex types and custom uniforms with their own shaders, or switching to wgpu and allowing users to use wgpu directly when they want advanced features
    hughlang
    @hughlang
    Thanks @ryanisaacg. New question: Does the Transform::rotate always use the center for the rotation axis? Or can you offset it to another point? For example, can you rotate around the top-left point? Or even a point outside of the object rect?
    hughlang
    @hughlang
    nvm, I figured it out mostly
    hughlang
    @hughlang
    Hey @ryanisaacg. What are your thoughts adding support for gfx? Or switching out the backend someday? I want to evaluate gfx for basic opengl/webgl support and then later Vulkan and Metal
    I have been working on a gui framework for many months and I am using my fork of quicksilver as the backend. There are many conveniences in quicksilver that I like, but I need to upgrade the backend.
    I looked at Rendy too, but that seems heavy and biased
    Ryan G
    @ryanisaacg
    @hughlang My thoughts are leaning towards wgpu as a good solution for a new backend API
    hughlang
    @hughlang
    cool. thx
    hughlang
    @hughlang
    This seems like a friendly implementation of wgpu: https://github.com/cloudhead/rgx
    Minimalist design
    Leah
    @ForsakenHarmony
    Hey, it's not really obvious to me how to apply a transform to a mesh when drawing, I'd like to draw the same mesh in different positions
    Leah
    @ForsakenHarmony
    Ryan G
    @ryanisaacg
    @hughlang that does look pretty interesting, I'll check it out when I next work on the graphics stack
    Michael
    @mkulak
    I want to apply color filter to the image (pretty simple filter like tint or brightness). Is there a way to do this in quicksilver?
    hughlang
    @hughlang
    @mkulak I would say the image-rs crate has all the tools for that. You can apply all those effects and get the vec<u8> output
    The ergonomics of that lib are not easy though. I have some code samples that might help.
    Michael
    @mkulak
    @hughlang thanks for answer
    I also asked same question in discord and got an answer from Ryan:
    As stated earlier: discord is the right place to ask https://discord.gg/aVESxV8