Renderização de pixels a partir da matriz de valores RGB no SDL 1.2?
Estou trabalhando em um emulador de NES agora e estou tendo problemas para descobrir como renderizar os pixels. Estou usando uma matriz tridimensional para armazenar o valor RGB de cada pixel. A definição da matriz é assim para o tamanho da tela de 256 x 224:
byte screenData[224][256][3];
Por exemplo,[0][0][0]
mantém o valor azul,[0][0][1]
mantém os valores verdes e[0][0][2]
mantém o valor vermelho do pixel na posição da tela[0][0]
.
Quando a bandeira vblank fica alta, preciso renderizar a tela. Quando o SDL for renderizar a tela, a matriz screenData estará cheia dos valores RGB de cada pixel. Consegui encontrar uma função chamadaSDL_CreateRGBSurfaceFrom
que parecia funcionar para o que eu quero fazer. No entanto, todos os exemplos que eu vi usam matrizes unidimensionais para os valores RGB e não uma matriz tridimensional.
Qual seria a melhor maneira de renderizar meus pixels? Também seria bom se a função me permitisse redimensionar a superfície de alguma forma, para não precisar usar um tamanho de janela de 256 x 224.