我制作了一个900x600的颜色结构指针数组(屏幕),希望将它们绘制在屏幕上。有点用,但是速度很慢。
我试图使对象的数组理解为指针,我试图修改我的plotPixel()函数,以便它不会更改每个像素的颜色,只有在新像素的颜色不同的情况下。
这是我的剧情像素函数:
void Graphics::plotPixel(float x0, float y0, Color * color)
{
SDL_SetRenderDrawColor(renderer, color->r, color->g, color->b, color->a);
SDL_RenderDrawPoint(renderer, x0, y0);
previousColor = color;
}
void Graphics::plotPixel(float x0, float y0)
{
SDL_RenderDrawPoint(renderer, x0, y0);
}
这是我的循环:
screen[x][0] = new Color(255, 255, 255, 0);
x++;
// render
for (int i = 0; i < 900; i++) {
for (int j = 0; j < 600; j++) {
if (graphics->previousColor != screen[i][j]) {
graphics->plotPixel(i, j, screen[i][j]);
}
else {
graphics->plotPixel(i, j);
}
}
}
在Java中,它可以100 fps的速度快速运行!