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
-
pgLifetimeLockObject
¶ -
PyObject *
surface
¶ An SDL locked pygame surface.
-
PyObject *
lockobj
¶ The Python object which owns the lock on the surface. This field does not own a reference to the object.
The lifetime lock type instance. A lifetime lock pairs a locked pygame surface with the Python object that locked the surface for modification. The lock is removed automatically when the lifetime lock instance is garbage collected.
-
PyObject *
-
PyTypeObject *
pgLifetimeLock_Type
¶ The pygame internal surflock lifetime lock object type.
-
int
pgLifetimeLock_Check
(PyObject *x)¶ Return true if Python object x is a
pgLifetimeLock_Type
instance, false otherwise. This will return false onpgLifetimeLock_Type
subclass instances as well.
-
void
pgSurface_Prep
(PyObject *surfobj)¶ If surfobj is a subsurface, then lock the parent surface with surfobj the owner of the lock.
-
void
pgSurface_Unprep
(PyObject *surfobj)¶ If surfobj is a subsurface, then release its lock on the parent surface.
-
int
pgSurface_Lock
(PyObject *surfobj)¶ Lock pygame surface surfobj, with surfobj owning its own lock.
-
int
pgSurface_LockBy
(PyObject *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
(PyObject *surfobj)¶ Remove the pygame surface surfobj object's lock on itself.
-
int
pgSurface_UnLockBy
(PyObject *surfobj, PyObject *lockobj)¶ Remove the lock on pygame surface surfobj owned by Python object lockobj.
-
PyObject *
pgSurface_LockLifetime
(PyObject *surfobj, PyObject *lockobj)¶ Lock pygame surface surfobj for Python object lockobj and return a new
pgLifetimeLock_Type
instance for the lock.This function is not called anywhere within pygame. It and pgLifetimeLock_Type are candidates for removal.
Edit on GitHub