pygame / test / pixels_ctypes.py

#!/usr/bin/env python

'''
'''

__docformat__ = 'restructuredtext'
__version__ = '$Id: $'

from SDL import *

if __name__ == '__main__':
    print 'Wait a few seconds, this is not very speedy...'

    SDL_Init(SDL_INIT_VIDEO)

    screen = SDL_SetVideoMode(800, 600, 32, SDL_SWSURFACE)
    format = screen.format

    '''
    Draw a 3 colour gradient by setting the pixel values directly.
    '''
    pixels = [0] * len(screen.pixels)
    deltaX = 255 / float(screen.w)
    deltaY = 255 / float(screen.h)
    b = 0
    i = 0
    for y in range(screen.h):
        r, g = 0, 255
        for x in range(screen.w):
            r += deltaX
            g -= deltaX
            pixels[i] = SDL_MapRGB(format, int(r), int(g), int(b))
            i += 1
        b += deltaY
        i += screen.pitch / format.BytesPerPixel - screen.w

    SDL_LockSurface(screen)
    screen.pixels[:] = pixels
    SDL_UnlockSurface(screen)
    SDL_Flip(screen)

    # Keep the window open
    while True:
        pass
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.