【发布时间】:2015-12-10 00:52:26
【问题描述】:
问题 我正在尝试从头开始制作一个更高效的渲染系统,我得出的结论是,对于较大的窗口,使用 for 循环非常低效。
问题 所以我的问题是,我可以使用 BitSet 来操作像素,而不是使用 for 循环单独设置每个像素吗?
您可能需要的东西 渲染系统非常小,因为它更像是一个测试。它目前唯一做的就是在屏幕上绘制矩形,这样我就可以测试我得到的 FPS。
public void drawRect(int offX, int offY, int width, int height, int color)
{
for (int y = 0; y < height; y++)
for (int x = 0; x < width; x++)
pixels[x + offX + this.width * (y + offY)] = color;
}
像素数组只是来自使用pixels = ((DataBufferInt) engine.getWindow().getImage().getRaster().getDataBuffer()).getData();的 BufferedImage 的数据
我不确定如何将 BitSet 类与像素一起使用,但我希望它比 drawRect 方法更快。 FPS 计数器告诉我,在 1980x1080 的屏幕上绘制一个矩形大约是 100-130 fps,但还没有一致的清除。
感谢任何帮助,如果我的想法很愚蠢,请告诉我
【问题讨论】:
-
为什么你认为使用
BitSet是个好主意?
标签: java bufferedimage pixels bitset