Logos developers take note: Bug: Slow and sloppy window drawing and redrawing being done at startup

Rosie Perera
Rosie Perera Member Posts: 26,202 ✭✭✭✭✭
edited November 20 in English Forum

I'm calling this a bug even though it's only a display glitch. But I bet it's responsible for a lot of the sluggish display performance people have been noticing (in search results and the like). This has been an issue for as long as I can remember in Logos actually, but it's time something be done about it to clean it up.

When you start up Logos, if you had closed it maximized the last time, you see a whole lot of flickering of windows at reduced sizes from where they ultimately belong being drawn and then redrawn at the full size. See this video for what I'm talking about. When I closed Logos prior to this trial, I had it maximized with a completely blank layout except the Library was open in a floating window which I had also maximized. So when it comes back up again, all it needs to do is open the main window and a maximized library window. Watch all the flickering you see going on though:
[view:http://content.screencast.com/users/rosiep/folders/Default/media/273e66c8-f567-4125-822e-25e71cc39710/logos_startup.swf:550:362]

This is completely unnecessary and very ugly. I'm an old Windows programmer from years ago. I don't know if they've changed the API since the days when I worked on MS Word, but the way to create a window used to be CreateWindow, and there was a trick we Microsoft programmers used to make it appear that everything was happening faster. We'd create the window without the default WS_VISIBLE style being set, so it would be initially created invisible. Then we'd do all our drawing of text and graphics in the window. It would happen on an invisible virtual canvas which didn't need to render to the screen, so it was much faster. Then once we were done with everything, we'd call ShowWindow with the SW_SHOW flag to turn the window on. Bingo! It would flash up on the screen instantaneously.

This makes most sense at startup, but there might be other times when you are populating a newly created window when you can delay making it visible until it is fully populated, and the user will see a speedier display.

Comments

  • Kaye Anderson
    Kaye Anderson Member Posts: 306 ✭✭

    I love the video.  Mine looks just like yours and I would also love less flicker.  I've had several concussions, including one recently while playing ice hockey and all that flicker and motion hurts me eyes and head.  [:|]

    I appreciate your effort to illustrate it...

    K

    "But you, be sober in all things, endure hardship, do the work of an evangelist, fulfill your ministry."  2 Timothy 4:5 (NASB)

  • Anonymous
    Anonymous Member Posts: 879

    If you want some real entertainment, try running Logos4 over a slow remote desktop connection.  The amount of inefficiency in redrawing is staggering.  Every time a single line gets scrolled anywhere, the entire Logos4 window gets repainted, unlike in Logos3 where when I line gets scrolled, the scrolling happens in the remote desktop client and only the newly displayed lines have to be painted across the network connection.  The result is that reading just a few screenfulls of text requires several megabytes of data to be transferred.

  • TCBlack
    TCBlack Member Posts: 10,978 ✭✭✭

    I have similar screen draw issues on my machine, but tend to ignore them.  I chalk it up to a tired machine,  perhaps not though.

    Jeffrey,

    It's off topic but I've found UltraVNC does a better job with the transfer over a network than Windows built in RDP.

    Hmm Sarcasm is my love language. Obviously I love you. 

  • James Macleod
    James Macleod Member Posts: 142 ✭✭

    As much as I like Logos 4 I have to agree that the window refreshing is an issue. I am a .Net programmer myself and I never show the window until I have it all setup properly. You also need to make sure you are not refreshing things unnecessarily when catching the different events. Makes for a much more responsive UI if you do it properly.

    I find this same type of thing on the iPhone. If you are reading and flip the orientation, instead of just refreshing the screen it does a load from the web again. Really frustrating if you accidentally turn your phone sideways.

  • J.R. Miller
    J.R. Miller Member Posts: 3,566 ✭✭✭

    the window refreshing is an issue. I am a .Net programmer myself and I never show the window until I have it all setup properl

    If you think you can improve it, Logos is hiring windows developers [:D]   It could be a fun job.

    My Books in Logos & FREE Training

  • Anonymous
    Anonymous Member Posts: 879


    It's off topic but I've found UltraVNC does a better job with the transfer over a network than Windows built in RDP.


    I'll have to look into that again.  But the last time I did, trying to configure VNC to work across the internet safely and securely required a PhD in network configuration and management.  I tried using VPN, but getting VPN to work between a Windows Mobile and my router requires a mixture of witchcraft and voodoo, and I'm just not interested in sacrificing that many animals.  At the time, there was a lot of publicity about an ssh weakness, so I didn't even try that.

  • James Macleod
    James Macleod Member Posts: 142 ✭✭

    ]If you think you can improve it, Logos is hiring windows developers Big Smile   It could be a fun job.

    The ideal candidate will have:

    • 3+ years using languages such as C, Objective-C, C++, and C#
    • 1+ year with Mac or mobile development tools
    • Familiarity with data structures and algorithms
    • Experience creating and consuming web services
    • Experience implementing distributed, scalable, and robust content delivery applications

    The really, really ideal candidate will have:

    • Fluency in a second modern language
    • Experience in biblical Greek and Hebrew
    • Experience in the field of information retrieval
    • A fantastic recipe for chicken curry

    ---------------------------------

    Yikes! Can't be a lot of C# programmers around that know Greek and Hebrew, with mobile development experience.[8-|] Amazingly I have most the experience required except for the Hebrew and Chicken Curry. I'm working on the Hebrew. 

    You're right though. It does sound fun. There are not many places you can mix a passion for technology with a passion for the bible.

     

     

  • James Macleod
    James Macleod Member Posts: 142 ✭✭
  • MJ. Smith
    MJ. Smith MVP Posts: 53,498

    While I was wondering if American Standard English and Rural Northwestern English counted as two modern languages.

    Orthodox Bishop Alfeyev: "To be a theologian means to have experience of a personal encounter with God through prayer and worship."; Orthodox proverb: "We know where the Church is, we do not know where it is not."

  • Anonymous
    Anonymous Member Posts: 879

    I noticed over lunch today that my battery life is significantly reduced with Logos 4.  Just reading along with a Power Lookup window visible and by batter life was around an hour and a few minutes instead of nearly two hours like with Logos 3.  I wonder how much the drawing inefficiency is causing it to chew through the batter so quick.

  • Melissa Snyder
    Melissa Snyder Member Posts: 4,702 ✭✭✭

    When you start up Logos, if you had closed it maximized the last time, you see a whole lot of flickering of windows at reduced sizes from where they ultimately belong being drawn and then redrawn at the full size.

    Rosie,

    I've reported this to development, with a link to this thread.

    Thanks,
    Melissa

  • Mark Barnes
    Mark Barnes Member Posts: 15,432 ✭✭✭

    Rosie,

    You seem to be one of the few people who has succeeded in embedding video on these forums. Can you tell me what you did? If you did nothing special, would you mind pasting the embed code you used above into the body of a message so I can see what you pasted in and compare it with the HTML the forum generates? Thanks.

    This is my personal Faithlife account. On 1 March 2022, I started working for Faithlife, and have a new 'official' user account. Posts on this account shouldn't be taken as official Faithlife views!

  • Rosie Perera
    Rosie Perera Member Posts: 26,202 ✭✭✭✭✭

    Rosie,

    You seem to be one of the few people who has succeeded in embedding video on these forums. Can you tell me what you did? If you did nothing special, would you mind pasting the embed code you used above into the body of a message so I can see what you pasted in and compare it with the HTML the forum generates? Thanks.

    You could have seen the code I used by clicking Reply on my message above, but I'll explain the process of how I got to it here. If I paste the code in here it will just embed the video again! [:)]

    I use Screencast to host my videos. I learned by trial and error that the videos have to be in .swf format in order for this to work (MPEG4 didn't work). I got the URL for the .swf file by copying the embed code Screencast generated for me and stripping out all but the URL of my actual .swf file up on their server. I kept track, though, of the width and height values that the embed code gave me for the video dimensions. Then I created the link right here in the body of the message (I did not use the Insert Media button) as follows:

    [ view : http://content.screencast.com/users/rosiep/long-path-name/logos_startup.swf widthheight ]

    Take out ALL the spaces in the above, replace my URL with whatever your URL is, and replace width and height with the width and height values that you got from the embed code, and it should work.

  • Mark Barnes
    Mark Barnes Member Posts: 15,432 ✭✭✭

    This is my personal Faithlife account. On 1 March 2022, I started working for Faithlife, and have a new 'official' user account. Posts on this account shouldn't be taken as official Faithlife views!