图形.h 刷新屏幕

Graphics.h refresh screen

本文关键字:屏幕 刷新 图形      更新时间:2023-10-16

我做了一个小程序,显示一个3d立方体,你可以使用箭头键在任何轴上缩放。唯一的问题是 im 使用 cleardevice(); 刷新立方体(以便在缩放立方体时没有"拖尾")。这工作正常,只是每次使用此方法刷新立方体时,屏幕都会黑屏一瞬间,从而导致烦人的闪烁。有没有更好的方法在用户每次更改立方体时刷新屏幕?我确实对此进行了研究,但我找不到任何合适的东西(也许我只是不擅长研究,但我找不到任何东西)

有两种

方法可以解决这个问题:

  1. 双缓冲

    我不使用华大基因,所以我坚持使用他们的文档。 对于WinBGIm,您可以使用

    • int swapbuffers (void);

    在旧式华大基因上,请使用以下内容:

    int oldv = getvisualpage( );
    int olda = getactivepage( );
    setvisualpage(olda);
    setactivepage(oldv);
    
  2. 与监视器使用垂直同步

    您需要等待 VSync 才能调用cleardevice();。在DOS上,您可以使用VGA BIOS或直接VGA/VESA访问来获取信号。在更高的操作系统上,你需要使用某种gfx API或驱动程序API来获取VSync

    在这两种情况下,请参阅目标平台的文档。