I suppose thats okay since I won't be setting any alpha pixels (later) I won't need to send the entire thing, but only the changes I make to RGB - right?
What? No you'll always have to provide either the
full 4*uint8 pixel array or just a
4*uint8 part. You can't pass in just a RGB array. SFML will otherwise mixup everything. (e.g. your input RBG(20, 30, 50) RBG(10, 100, 5) => what SFML would see RGBA(20, 30, 50, 10) RGBA(100, 5, MISSING=possible crash)).
By the way, where is that memory location (for the pixel array)? Is that in RAM or Video Memory?
The pixel array is managed by yourself, so you should know where to find it and it's thus in the CPU RAM. The texture itself is stored in GPU RAM, but you can't access it directly.
By the way, when I make changes to the pixel array, am I making changes to the array in video memory directly, or do I just make changes to the array in RAM and then upload the entire thing to video memory before doing an update?
You make changes in the CPU RAM, then upload (tex.update()) it to the GPU RAM. That's why it's a heavy operation. But it's also not possible to get access to the texture on the GPU, unless you use shaders.