No, I'm creating an empty surface, then altering the pixels on that surface.
Your drawing a rectangle for the water right then altering the pixels on that rectangle how?
I then draw the altered surface onto the screen.I'm not comparing surfaces, I'm altering one surface (updating it every 1/10th of a second), and drawing it onto the screen (a second surface) every frame.Why are we comparing surfaces?
I'm not setting the area, I'm passing in the surface to the WritePixel() and ReadPixel() functions. I'm getting and reading pixels from a surface.How are you setting the area of which the pixels values can be gotten and placed elsewhere?
Actually, to be more exact, I didn't do any pixel-reading at all, just writing.
In SDL, a "surface" is a image that exists in memory. I'm editing that image; I'm not editing the screen. I'm editing the image, then I'm drawing the image onto the screen.
Quote a line of code, then ask about any specific line of code you have questions about - make sure your specify exactly what part you don't understand.
Okay so
return pixels[offset + x];how does return of pixels[offset + x]; work exactly?
Why are you locking surfaces to access pixels to stop tearing or something?
this function below makes a rect filling it with a user defined color yes?
void DrawRectangle(SDL_Surface *destination, const SDL_Color &color, SDL_Rect *rect = NULL)
{SDL_FillRect(destination, rect, SDL_MapRGB(destination->format, color.r, color.g, color.b));}
this code is fairly hard to grasp the technical concepts
SDL_Surface *CreateEmptySurface(int width, int height, SDL_Surface *surfaceToCompareTo){ SDL_Surface *newSurface = SDL_CreateRGBSurface(surfaceToCompareTo->flags, int width, int height, surfaceToCompareTo->format->BitsPerPixel, surfaceToCompareTo->format->Rmask, surfaceToCompareTo->format->Gmask, surfaceToCompareTo->format->Bmask, surfaceToCompareTo->format->Amask);
if(!newSurface) {std::cerr << "CreateEmptySurface() - Something went wrong creating a " << width << "x" << height << " surface.\n" << " Error: " << SDL_GetError() << std::endl;} //Let's start off filling it with a solid color, like solid white. DrawRectangle(newSurface, SDL_Color(255, 255, 255)); return newSurface;}
What does this do from a technical point of view
SDL_Surface *waterImage = CreateEmptySurface(50, 50, screen);
This code below is oddly written what does that all mean ?
void MakeWaterSurface(SDL_Surface *surface, unsigned int frame){ //We only have 20 frames, so keep within range. frame %= 20; int offset = frame; if(offset >= 10) { //0 1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 1 offset = (10 - (offset - 10)); } SDL_Color colors[] = {SDL_Color(100, 150, 190),SDL_Color(100, 160, 180),SDL_Color(100, 170, 170),SDL_Color(100, 180, 160),SDL_Color(100, 190, 150), SDL_Color(100, 190, 170),SDL_Color(100, 190, 190),SDL_Color(100, 190, 210),SDL_Color(100, 190, 230),SDL_Color(100, 220, 250)}; for(int y = 0; y < surface->height; y++) { for(int x = 0; x < surface->height; x++) { //I'm coding blind without a compiler, so I have completely no idea if this will work or not. int waveDepth = ((y + offset) % 10); int waveHorizontalOffset = ((x + (offset/3)) % 20); int waveVerticalOffset = ((x + waveHorizontalOffset) + offset); unsigned colorIndex = (waveDepth + waveVerticalOffset) % 10; WritePixel(x, y, colors[colorIndex], surface); } }}Theres still more for me to look at but this is as far as I've gotten in trying to understand not used any of this yet.

Find content
Not Telling