据我所知,Android中有2个图形引擎:OpenGL ES和Skia。它们都为底层的GraphicBuffer提供了一组绘图API和输出图形数据。我的问题是GraphicBuffer的数据格式是什么?这是标准吗?
答案 0 :(得分:2)
OpenGL不是图形引擎,它是一个直接与GPU对话的绘图API。它不像OpenGL是一个库,用于绘制某种格式的图像,然后然后加载到图形处理器上。 OpenGL通常直接在图形处理器上运行。
Skia然而是图形引擎。它可以在软件中呈现像素缓冲区,也可以呈现给PDF。或者它可以进行OpenGL调用,这通常是在Android上进行的。
图形缓冲区对象实际上是一个抽象句柄,表示保存图形数据的实际内存。但是没有“标准格式”;每个GPU可能有自己的优选布局。重要参数是每种RAW图像格式的参数:原点,行长,步幅,通道数,每通道位数,像素数据对齐。
然而,最常见的格式是BGRA,每像素8位,stride ==行长,4字节数据对齐。但对于你作为开发人员来说,这对操作系统在幕后使用的内容并不重要。