#2 ✓resolved
mcdermj (at xenotropic)

Fix Graphics Issues with Waterfall Display

Reported by mcdermj (at xenotropic) | February 23rd, 2010 @ 11:45 AM | in Release

The current waterfall display lags significantly behind realtime. How we do this needs to be rethought. There are two different ways to do this:

  • OpenGL
  • CoreAnimation

The OpenGL method might be the better one for the longer term, but might be less flexible and harder to implement. It involves creating a texture that is a bitmap image of the waterfall. You can set this texture so that it "wraps". You then replace the texture one line at a time, and increment a pointer into the starting line of the texture. You can then move the texture down the screen incrementally to product the effect. One thing you could do with this system is not only have color represent the signal strength dimension, but also the Z dimension in 3D.

The CoreAnimation method might prove easier to do, although I'm not sure of the performance yet. CoreAnimation deals with layers that are composited on screen. I don't know what the practical limitation of the number of these layers is. What we could do is create one layer for each line of the display. When a new line is encountered, we can shift each of the other layers down by one, which requires a simple Y plane transform that is included in CoreAnimation. We then pop the layer off of the bottom, and push a new layer on the top. One of the advantages of this method is that you can use all the nice Quartz prepackaged animations as well, which could be cool.

Comments and changes to this ticket

  • mcdermj (at xenotropic)

    mcdermj (at xenotropic) February 23rd, 2010 @ 12:53 PM

    • State changed from “new” to “open”
  • mcdermj (at xenotropic)

    mcdermj (at xenotropic) February 26th, 2010 @ 12:20 AM

    • State changed from “open” to “resolved”
    • Milestone set to Release

    (from [94]) Finally got the waterfall view scaling to come out correctly.
    OpenGL Red Book = good.
    Laziness not reading about what you're trying to implement = bad.

    There's still some flickering that might be able to be fixed, but I don't see it as a show-stopper.

    [#2 state:resolved milestone:"RELEASE"]

  • Mike

    Mike February 26th, 2010 @ 05:24 PM

    Thanks for the OpenGL implementation.
    It should be easier to implement an iPad / iPhone client now:)
    Looking forward to the client/server version of the MacHPSDR!

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

An open source software project implementing an amateur radio receiver for the OpenHPSDR hardware.

Shared Ticket Bins

People watching this ticket

Referenced by