Renderowanie pikseli z tablicy wartości RGB w SDL 1.2?
Pracuję teraz nad emulatorem NES i mam problem z obliczeniem pikseli. Używam trójwymiarowej tablicy do przechowywania wartości RGB każdego piksela. Definicja tablicy wygląda tak dla rozmiaru ekranu 256 x 224:
byte screenData[224][256][3];
Na przykład,[0][0][0]
posiada niebieską wartość,[0][0][1]
przechowuje zielone wartości i[0][0][2]
przechowuje czerwoną wartość piksela w pozycji ekranu[0][0]
.
Kiedy flaga vblank idzie wysoko, muszę renderować ekran. Gdy SDL przejdzie do renderowania ekranu, tablica screenData będzie pełna wartości RGB dla każdego piksela. Udało mi się znaleźć funkcję o nazwieSDL_CreateRGBSurfaceFrom
wyglądało na to, że może działać na to, co chcę zrobić. Jednak wszystkie przykłady, które widziałem, używają tablic 1-wymiarowych dla wartości RGB, a nie tablic trójwymiarowych.
Jaki byłby najlepszy sposób renderowania pikseli? Byłoby również miło, gdyby funkcja pozwalała mi jakoś zmienić rozmiar powierzchni, więc nie musiałem używać rozmiaru okna 256 x 224.