I have written a WinForms .Net app using OpenGL.Net to render iterations of 1d cellular automata.
A line of cells is drawn at top of window with randomly coloured cells.
When next line is drawn a formula is applied to determine color of each cell based on neighbouring cells in the line above.
And so the process continues, drawing a line of cells (iteration) at a time.
When I get to the last line at the bottom of the window, I would like to move all lines up one and draw the next line at the bottom, thus scrolling the drawn iterations up as I draw new lines of cells at the bottom of the window.
How to do this smoothly in OpenGL?
Since this is in .Net, my initial attempt was to draw iterations into a WinForms managed bitmap the size of the window and then call glDrawPixels to render the bitmap for each frame.
(I use unsafe pointers and bitmap data to shift cells in the bitmap to move the iterations up.)
This works, but there is some flicker/shimmer/jitter. I tried doing this in the Render event handler as well as doing my own game loop at 30fps as well as 60fps with VSync on.
Maybe rendering a window size bitmap for each frame is not the best way to go.
Is there a proper way to do this in OpenGL, maybe without managed Bitmaps?
I am new to OpenGL, so am just learning.