[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[pygame] Re: PixelArray vs SurfArray



Actually, I think it might be more useful to go with what I'm trying to do.  I'm not sure how I would go optimizing it--I don't know if it can be.  Here's the code I want to optimize using surfarray/whatever:

for x in xrange(size):
    for y in xrange(size):
        value = permutation[(y+permutation[x]) & (size-1)]
        red   = grad3[value&15][0]*127.5 + 127.5
        green = grad3[value&15][1]*127.5 + 127.5
        blue  = grad3[value&15][2]*127.5 + 127.5
        surf.set_at((x,y),map(rndint,[red,green,blue]))

Note that:

rndint = int(round(x))

that:

grad3 = [[ 0, 1, 1],[ 0, 1,-1],[ 0,-1, 1],[ 0,-1,-1],
         [ 1, 0, 1],[ 1, 0,-1],[-1, 0, 1],[-1, 0,-1],
         [ 1, 1, 0],[ 1,-1, 0],[-1, 1, 0],[-1,-1, 0],
         [ 1, 0,-1],[-1, 0,-1],[ 0,-1, 1],[ 0, 1, 1]]

and that:

permutation = []
for value in xrange(size):
    permutation.append(value)
random.shuffle(permutation)

Any ideas for optimization?

Thanks,
Ian