c++ - 快板 5 中的抗锯齿

标签 c++ antialiasing allegro allegro5

如何让 allegro 5 在绘图时使用抗锯齿?我需要使对角线看起来平滑。目前,它们只是阴影像素线,边缘看起来很硬。

最佳答案

为图元启用抗锯齿:

// before creating the display:
al_set_new_display_option(ALLEGRO_SAMPLE_BUFFERS, 1, ALLEGRO_SUGGEST);
al_set_new_display_option(ALLEGRO_SAMPLES, 8, ALLEGRO_SUGGEST);

display = al_create_display(640, 480);

请注意,抗锯齿仅适用于直接绘制到后台缓冲区的图元。它在其他任何地方都不起作用。

在 OpenGL 上,您的显卡必须支持 ARB_multisample扩展名。

检查它是否启用(使用 ALLEGRO_SUGGEST 时):

if (al_get_display_option(display, ALLEGRO_SAMPLE_BUFFERS)) {
   printf("With multisampling, level %i\n",
     al_get_display_option(display, ALLEGRO_SAMPLES));
}
else {
   printf("Without multisampling.\n");
}

关于c++ - 快板 5 中的抗锯齿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6391423/

相关文章:

c - 可执行文件仅在终端 C Allegro 打开时有效

c++ - 为什么通过公开继承另一个类来构建一个类是一种糟糕的做法?

c++ - 线程同步101

光栅图像抗锯齿算法

objective-c - SKCropNode 屏蔽边缘抗锯齿

CSS - 在 IE 中调整图像大小丢失分辨率(别名)

c# - 创建用于 C# 程序的 CPP DLL

c++ - 如何应用 DOP 并保持良好的用户界面?

c++ - 如何检查内存是否已经在析构函数中释放?

c++ - 将另一个窗口嵌入为 QWidget