##### pygame-ce documentation

Pygame-ce Home || Help Contents || Reference Index

Most useful stuff: Color | display | draw | event | font | image | key | locals | mixer | mouse | Rect | Surface | time | music | pygame

Advanced stuff: cursors | joystick | mask | sprite | transform | BufferProxy | freetype | gfxdraw | midi | PixelArray | pixelcopy | sndarray | surfarray | math

Other: camera | controller | examples | scrap | system | tests | touch | typing | version | Window

## src_c/surflock.c

This extension module implements SDL surface locking for the `pygame.Surface` Pygame object for representing images. type.

Header file: src_c/include/pygame.h

void pgSurface_Prep(pgSurfaceObject *surfobj)

  If surfobj is a subsurface, then lock the parent surface with surfobj the owner of the lock.

void pgSurface_Unprep(pgSurfaceObject *surfobj)

  If surfobj is a subsurface, then release its lock on the parent surface.

int pgSurface_Lock(pgSurfaceObject *surfobj)

  Lock pygame surface surfobj, with surfobj owning its own lock.

int pgSurface_LockBy(pgSurfaceObject *surfobj, PyObject *lockobj)

  Lock pygame surface surfobj with Python object lockobj the owning the lock.

  The surface will keep a weak reference to object lockobj, and eventually remove the lock on itself if lockobj is garbage collected. However, it is best if lockobj also keep a reference to the locked surface and call to `pgSurface_UnLockBy()` when finished with the surface.

int pgSurface_UnLock(pgSurfaceObject *surfobj)

  Remove the pygame surface surfobj object's lock on itself.

int pgSurface_UnLockBy(pgSurfaceObject *surfobj, PyObject *lockobj)

  Remove the lock on pygame surface surfobj owned by Python object lockobj.

Edit on GitHub