使用FreeBasic,我可以创建并打开一个带有ScreenRes函数的新屏幕。例如,
#include "fbgfx.bi"
ScreenRes 640, 480, 32
Sleep()将创建一个深度为32的640×480屏幕。
那么,在C++中是否有与之等价的函数呢?
注意:我使用的是Ubuntu14.04。与基于windows的函数相比,我更喜欢跨平台或基于linux的函数。
发布于 2014-05-02 17:32:18
不,没有。C++本身是一种非常纯的语言,只包含基本功能(例如泛型列表、排序算法、字符串或内存管理工具)。我不知道FreeBasic,但从您的问题来看,它似乎是那些已经包含了许多特定高级功能的语言之一。这可能是诅咒,也可能是美德,取决于你的需求。
如果您需要C++中的图形,那么您必须使用符合您需要的第三方库(==>诅咒)或"can“(==>美德)。对于屏幕上的完全像素级控制,请考虑SDL。
发布于 2016-04-28 07:04:39
就像大家说的,在C/C++中没有这样的东西。要在C中进行图形处理,您需要依赖外部库,这可能是您不想做的,因为您说您更喜欢“基于linux的函数”。
不幸的是,仅通过操作系统附带的库访问Linux中的图形非常复杂,而且您的程序无法移植到其他系统。(如果您想这样做,您可能想了解Linux线性框架缓冲区或关于X)。
我认为最接近您所要求的解决方案是,您得到了一个包含简单原语的小型库。我认为SVGALib是这样的:http://www.svgalib.org/
我还没有使用过它,但就我所读到的内容而言,它有点类似于过去随Turbo/Borland C++而来的图形。例如,您可以使用SVGALib来完成这一任务:
#include <stdlib.h>
#include <vga.h>
int main(void)
{
vga_init();
vga_setmode(G320x200x256);
vga_setcolor(4);
vga_drawpixel(10, 10);
sleep(5);
vga_setmode(TEXT);
return EXIT_SUCCESS;
}在这里,您可以看到如何设置模式。我很肯定它也支持32位:)
发布于 2014-05-02 17:16:57
我对Linux不太熟悉,但是,在C++中,这种性质的东西并不容易,因为C++是一种语言,它不知道什么是“屏幕”。有一些库和框架可以帮助您,比如SDL、SFML和其他更多的库和框架,它们将使您指向正确的方向。
https://stackoverflow.com/questions/23433536
复制相似问题