jauno
  • jauno
  • Member Topic Starter
2015-12-01T17:29:48Z
Is there a way to avoid the flickering of colored columns in iGrid5 while scrolling horizontally in vb6?
I heard there is one in iGrid6.
Here my screen capture
Flickering scrolling iGrid5 
lg Norbert
KomodoLabs
2015-12-01T22:54:36Z
I would refer to that as "tearing" rather than flickering, but I too have seen this happen on some PCs, with and without locked columns. I was actually going to send a similar video into 10Tec, but you've already done it so thanks!

I'm not sure why it happens, but it could be some kind of double-buffering issue that may require a recoding the scrolling in iGrid itself, if that's possible. Other non-iGrid grids on those PCs/servers are slower than normal too, but don't exhibit the scroll tearing.
Igor/10Tec
2015-12-02T08:54:40Z
Send us a sample project to reproduce this behavior in an email.

Can you also tel us, do you have this problem on any pc, or only on some computers with slow hardware?
jauno
  • jauno
  • Member Topic Starter
2015-12-02T15:57:51Z
Originally Posted by: Igor/10Tec 

Send us a sample project to reproduce this behavior in an email.

Can you also tel us, do you have this problem on any pc, or only on some computers with slow hardware?



An email has been sent to you!
jauno
  • jauno
  • Member Topic Starter
2015-12-02T16:08:20Z
Originally Posted by: KomodoLabs 



I'm not sure why it happens, but it could be some kind of double-buffering issue that may require a recoding the scrolling in iGrid itself, if that's possible. Other non-iGrid grids on those PCs/servers are slower than normal too, but don't exhibit the scroll tearing.



I think so too. This is a hardcoded problem of iGrid. I have other grids where this is not the case.
Could be caused by the fact that iGrid doesn't lock the window update of cell contents while scrolling. So the rendering of cells is slower then the scroll procedure. You can see this when you watch the video: the rendering of cells seams to come from up to down. The more upper cells are rendered earlier then those below.

KomodoLabs
2015-12-04T08:27:36Z
I'm not so sure locking the window update would help. It comes with its own set of problems.

Here's my video. This is on a nice but inexpensive tablet at 1920x1200. It definitely slows down more on the left where all the icons are as well as some custom drawn icons, though only the first column. I've seen this on higher end cards, but is definitely more pronounced on lower end cards and servers.

Take a look:


I don't think slowness is such an issue as the tearing. I'd say it happens more on newer OS's than XP than it does on XP. I'm sure if I had 300 rows, it would slow things down and the tearing would be more pronounced. If just the tearing could be "fixed", that would look a lot nicer. I totally understand it scrolling slower when it has more to draw, but the tearing does make it look less professional.
jauno
  • jauno
  • Member Topic Starter
2015-12-04T16:55:55Z
Originally Posted by: KomodoLabs 

If just the tearing could be "fixed", that would look a lot nicer. I totally understand it scrolling slower when it has more to draw, but the tearing does make it look less professional.



I think Igor is working on it. I dont know wether he'll come to a solution.

I agree with you. That's a main blemish of iGrid. Imho iGrid is the very best grid on the market for Vb6 and still supportetd. But the tearing looks very unprofessional if you are programming commercial software like me. When I compare iGrid with Janus Gridex 2000 that I also use sometimes (but which has not as far the flexibility like iGrid)
In Janus grid scrolling is much faster an without any tearing.
How did they do it? Question to Igor. Take a look on it.

Janus GridEX 2000 to download
Janus GridEx 2000 

greetings Norbert
KomodoLabs
2015-12-04T19:53:14Z
Yeah, it's hard to say why Janus scrolls fast. It could be because iGrid is written in Classic VB while Janus might be written in C++, but usually what you can do in C++ can be done in VB, just not always. This may be one of those, but if it's possible to improve this, Igor can. He's done some amazing things with iGrid over the years and my software wouldn't be possible without it. With Janus I doubt my software would be possible. No way.

I haven't even explored all iGrid has to offer, many of which I suggested. I've been too busy on the non-iGrid side of things is mostly why. I expect we'll hear something back within a week or so. I know it's being heavily researched right now.

I also recorded a 4x slo-mo (120fps) to give Igor a better idea of what's happening. This is with fewer rows shown because the screen is at 150% instead of 100%, but it's still quite noticeable.

jauno
  • jauno
  • Member Topic Starter
2015-12-05T18:43:48Z
I tried the same thing with MSFlexGrid on two PCs. It shows the same effects as iGrid.
I tried it even with MS Excel - Excel too shows this sort of flickering during scroll action.
I tried it also with Janus GridEX - same thing. But with Janus the tearing only occurs while fast scrolling columns (column by column) but not during scrolling in larger intervals. Perhaps this is the way out of the dilemma - enlarging scroll intervals per se.

Ok now I think this is a problem of windows API managing the drawing of cells of a grid, not a special one of iGrid.
I am not a specialist in windows API programming but I think the only way to eliminate this is to avoid Windows API or to set larger scroll intervals even for col by col scrolling.

I have a little vb6 code sample with Janus Gridex to demonstrate its behaviour
Download it here:
Janus tearing test 
Download Janus GridEX here:
Janus GridEX 2000 
KomodoLabs
2015-12-09T17:47:35Z
I agree. iGrid uses many of the standard APIs others do. One could go the way of hardware acceleration, but that's either a huge or impossible undertaking. There be a way though to make it more efficient however. Igor has surprised us in the past by improving drawing speed when we didn't think it was possible, and sometimes when he didn't even think it was possible. It's like he finds a way. No pressure, Igor!
KomodoLabs
2015-12-12T16:03:45Z
Ok, for Juano and others who may be interested, a little update on the tearing issue. Igor has been working hard on it, and comes through again! Check it out!

My slow test tablet:


Slow scrolling of course, but that's to be expected. It's not any slower than previous iGrid builds and there's no tearing, except for the header (which I'd just refer to as out-of-sync), but that's very minor compared to it happening in the entire grid. That's a separate issue altogether.


The newest Intel CPU & built-in graphics, again no tearing:


There's a selection issue there that needs dealt with, but so far it's coming along well.
jauno
  • jauno
  • Member Topic Starter
2015-12-14T20:38:52Z
Here I post my tearing video with the newest iGrid 6.0.3
Scrollin colored columns with iGrid 6 

I still notice 2 effects:
  • Drawing of headers and columns are not synchronous. But Igor explained it to me. To change this would require a lot of work.

  • I made a screen capture video with camtasia of a compiled exe of my current project with colored columns. I still have this let's name it vertical building of ledges while drawing columns during horizontal scrolling of iGrid. It is lesser than under iGrid 5 but I can still see it.
    A very strange side effect: in the screen capture video all effects are slighter than as in real life on my monitor. How could this be explained?
Igor/10Tec
2015-12-15T07:51:18Z
Originally Posted by: jauno 

I made a screen capture video with camtasia of a compiled exe of my current project with colored columns. I still have this let's name it vertical building of ledges while drawing columns during horizontal scrolling of iGrid. It is lesser than under iGrid 5 but I can still see it.



Me and my colleagues have not seen it. Can it be an optical illusion (for instance, the stroboscopic effect)? It may happen with the colored bands in your grid.

Originally Posted by: jauno 

A very strange side effect: in the screen capture video all effects are slighter than as in real life on my monitor. How could this be explained?



Different FPS's on the monitor (60Hz) and in the coded video (VLC reports it is 50 frames per second)?