Code: Select all
memcpy(screen, system.framebuffer, screen_height * screen_pitch);
Code: Select all
typedef struct mode_info_block {
/*...*/
uint32_t physbase;
/*...*/
}mode_info_t;
PS Sorry for broken English, it's all Google)
Code: Select all
memcpy(screen, system.framebuffer, screen_height * screen_pitch);
Code: Select all
typedef struct mode_info_block {
/*...*/
uint32_t physbase;
/*...*/
}mode_info_t;
Yes, indeed one of the links raises the right question. But the answer was never received. It seems they said that flip pages are not what I need. I want to know whether this is possible:Wukl wrote:I think you want to implement page flipping?
viewtopic.php?f=1&t=22128
Instead of rendering the back buffer and then copying it to the front one, i'd like to change the frame buffer pointer to point to the back buffer, then rendering on the old front buffer, and switch again.
If the backbuffer is in normal RAM (and not in video RAM), then it's not possible for VBE to use a buffer in normal RAM.grenders22 wrote:I want to know whether this is possible:
- Instead of rendering the back buffer and then copying it to the front one, i'd like to change the frame buffer pointer to point to the back buffer, then rendering on the old front buffer, and switch again.
thank you very much for the answer. I now and do, as you at the end described. but unfortunately these artifacts are visible when dragging my windows. and it's very annoying. can there be advice on how to avoid them? I read that it's possible to synchronize memcpy and fake screen updates, is this true?Brendan wrote:For these reasons, I'd simple forget about it. With double buffering (draw everything in RAM, then copy everything from RAM into the frame buffer) there's a small chance that you'll get some tearing (and an even smaller chance that the user will notice), but you avoid a lot of hassle (and save a lot of time that could be spent on native video drivers that have none of the problems and restrictions that VBE has