c++ - 清除图形的替代方法

标签 c++ graphics

我一直在使用cleardevice() 来清除图形...但它会产生几个问题

例如 .. 我创建了一个背景,但我必须清除一些特定的元素,然后我必须使用另一个用户定义的函数 drawb() 绘制背景,同时 cleardevice(); 造成很多问题

line(x,y,x1,y1);   //suppose this line is to be erased 
                   //but using cleardevice even clears the background   
cleardevice();
drawb();  //to draw board or background

所以我想知道另一种方法(一种只清除线条而不清除背景的方法)(如果存在的话)

最佳答案

一旦绘制了一条线,就没有真正的方法可以将其删除(除非您正在使用 XOR mode 绘制!)。但是,您可以做一些事情。您可以呈现页面中除该行以外的所有内容并将其存储在那里。然后,在另一个页面中呈现所有内容,包括该行。因此,如果您想撤消该行,只需将页面切换回来即可。

一个例子:

setactivepage(0);
// draw stuff, including background
setactivepage(1);
// draw stuff, including background and line
setvisualpage(0); // no line visible
setvisualpage(1); // line visible

此外,如果您想用背景重置屏幕,则无需执行 cleardevice(),因为 drawb() 会覆盖每个像素.

关于c++ - 清除图形的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234515/

相关文章:

c++ - 我的循环缓冲区出了什么问题

c++ - 打开 : check if nested parallesim

linux - 将颜色校准数据写入 TIFF 或 PNG 文件

c++ - 插值噪声中的伪影

c++ - 换显卡后需要重新安装cuda吗

C++ 通过引用调用

c++ - 将模板的模板成员类型作为模板模板参数传递

android - 如何使用Lighting Color Filter使图像由暗变亮

c++ - 点不会通过 OpenGl 中的键盘输入移动

algorithm - 3D网格边缘检测/特征线计算算法