[SDL] Blitting algos...

Matt Bentley moc.pophot at hotpop.com
Wed Aug 23 01:35:20 PDT 2006


Arr, a few things I got wrong (had to look at code on unplugged machine-):

    SDL_Surface *screen;
	screen = SDL_SetVideoMode(etc etc etc

    Uint32 *screen_buffer_pointer = (Uint32 *)screen->pixels;
    Uint32 *initial_screen_buffer_pointer = screen_buffer_pointer;
    SDL_PixelFormat *screen_format = screen->format;


Then proceed with the for loop, substituting the above- you don't need 
the color variable I mentioned earlier.
Cheers,
M at t

Simon wrote:
> Hi there,
>    first I'd like to apologize for my lack of understanding of the 
> blitting process with SDL.  Since I've been using SDL for a long time, 
> just to jump into opengl.  I've been using SDL only for window 
> management, user input and networking (using sdl_net).  Now, I got my 
> hands on some data I need to draw on screen, it consists of points of 
> colors, pixels if you like, but they may not be together, rather 
> randomly placed on the whole surface.  The result might remind one of 
> some falling snow, except that the snow of pixels will be coming in 
> waves and at a very high rate.  At this rate, opengl is not making it 
> into the competition, i need faster access and I know sdl can be much 
> better in some 2D circumtances.
> 
>    At every iteration some points will appear and others will disappear, 
> now, I'm wondering what is the best way to implement a refresh screen 
> algorythm.  The problem is that some of these algos will work better 
> than the other depending on the amount of changing pixels.
> 
>    The first algo i will use, which will probably be what I'll base 
> myself on when comparing other algorythms, the first one will be using 
> the putpixel function, one pixel at a time, then probably calling a 
> refresh on the whole screen for simplicity.
> 
>    For my next algo, I was thinking on pasting all that on a surface and 
> making a mask for this surface before blitting the surface on the screen 
> surface.   Now I've never done any of this and I'll probably have a hard 
> time to deal with my data.  Maybe I can have my function spit out the 
> pixels in the surface with the correct format already.  Right now it is 
> a one dimensional array of unsigned char[WIDTH * HEIGHT * 3], and the 
> colors are aligned as {RGBRGBRGB...} one byte per color, 3 bytes per pixel.
> 
>    Best would be to find a way to get this alignment for the pixels of 
> the screen surface, and then I can forget about blitting and simply 
> write the output of my calculation at the right place in the screen's 
> pixels.
> 
> I'll probably need a lot of help, so if you've got any experience of 
> this kind of process, please share what you think.
> 
> Thanks,
>    Simon
> 
> _______________________________________________
> SDL mailing list
> SDL at libsdl.org
> http://www.libsdl.org/mailman/listinfo/sdl
> 
> 




More information about the SDL mailing list