SDL2: Schnelle Pixelmanipulation

Ich möchte Pixel auf dem Monitor zeichnen, die sich nach bestimmten Parametern häufig ändern. Z.B. Wenn ein rotes und ein grünes Pixel kollidieren, verschwinden beide, usw.

In jedem Frame muss ich ungefähr 100 - 1000 Pixel manipulieren. Ich habe hier einen Multithread-Ansatz, der mir keine 30 FPS gibt (was ich will). Derzeit speichere ich ein Pixel-Array im RAM, das alle Pixel enthält und ein @ haSDL_Surface. Wenn sich ein Pixel im Array ändert, wird es auch in der Oberfläche geändert und wird dann, nachdem alle Manipulationen durchgeführt wurden, auf dem Bildschirm ausgeblendet. Mein aktueller Ansatz ist zu langsam und ich habe ein wenig darüber nachgedacht, wie ich die Geschwindigkeit erhöhen könnte.

Meine aktuellen Gedanken sind:

Verwenden Sie OpenGL, um die Pixelmanipulation direkt auf der GPU durchzuführen. In einigen Foren wird mir mitgeteilt, dass dies viel langsamer ist als bei meinem aktuellen Ansatz, da "eine GPU so nicht funktioniert" Speichern Sie kein Pixel-Array, speichern Sie ein BMP direkt im RAM, bearbeiten Sie das und verschieben Sie es dann in einSDL_Surface oderSDL_Texture

Gibt es noch andere Ansätze, wie ich Pixel schnell manipulieren kann?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage