src_c/rwobject.c¶
This extension module implements functions for wrapping a Python file like
object in a SDL_RWops
struct for SDL file access.
Header file: src_c/include/pygame.h
-
SDL_RWops*
pgRWops_FromObject
(PyObject *obj)¶ Return a SDL_RWops struct filled to access obj. If obj is a string then let SDL open the file it names. Otherwise, if obj is a Python file-like object then use its
read
,write
,seek
,tell
, andclose
methods. If threads are available, the Python GIL is acquired before calling any of the obj methods. On error raise a Python exception and returnNULL
.
-
SDL_RWops*
pgRWops_FromFileObject
(PyObject *obj)¶ Return a SDL_RWops struct filled to access the Python file-like object obj. Uses its
read
,write
,seek
,tell
, andclose
methods. If threads are available, the Python GIL is acquired before calling any of the obj methods. On error raise a Python exception and returnNULL
.
-
int
pgRWops_CheckObject
(SDL_RWops *rw)¶ Return true if rw is a Python file-like object wrapper returned by
pgRWops_FromObject()
orpgRWops_FromFileObject()
.
-
int
pgRWops_ReleaseObject
(SDL_RWops *context)¶ Free a SDL_RWops struct. If it is attached to a Python file-like object, decrement its refcount. Otherwise, close the file handle. Return 0 on success. On error, raise a Python exception and return a negative value.
-
PyObject*
pg_EncodeFilePath
(PyObject *obj, PyObject *eclass)¶ Return the file path obj as a byte string properly encoded for the OS. Null bytes are forbidden in the encoded file path. On error raise a Python exception and return
NULL
, using eclass as the exception type if it is notNULL
. If obj isNULL
assume an exception was already raised and pass it on.
-
PyObject*
pg_EncodeString
(PyObject *obj, const char *encoding, const char *errors, PyObject *eclass)¶ Return string obj as an encoded byte string. The C string arguments encoding and errors are the same as for
PyUnicode_AsEncodedString()
. On error raise a Python exception and returnNULL
, using eclass as the exception type if it is notNULL
. If obj isNULL
assume an exception was already raised and pass it on.
Edit on GitHub