Is this for a public C API or just internal to Pygame? I know from experience how much more of a headache it is to build/distribute native extensions that depend on other native extensions' ABIs (numpy, specifically).
Do Pygame Surface/Sound objects support the Buffer Protocol? This would be a convenient way to to read and update object data without needing to compile against Pygame. On Sun, 17 Jun 2018, 12:19 Thomas Kluyver, <tak...@gmail.com> wrote: > I'm not really familiar with C APIs, but I thought that the 0/-1 > inconsistency was necessary because 0 may be a valid return value in some > contexts, and there is no -1 if you're using a unsigned integer type. > Looking quickly at the Python docs, the pattern seems to be that functions > returning a pointer return NULL on error, and the rest use -1 to indicate > an error - though I don't know if that's always followed. > > I would think that API changes don't belong in a 1.9.x release, but that's > not my decision. :-) > > On 15 June 2018 at 23:45, Lenard Lindstrom <le...@telus.net> wrote: > >> Hi everyone, >> >> A part of the preparation for pygame 2 I have documented the functions >> and types exported by various pygame extension modules. For instance, the >> pygame.surface module exports C functions for creating and accessing >> pygame.Surface instances. These are used in other modules, such as >> pygame.display and pygame.image, where surfaces are created. In total, >> twelve extension modules make C functions available for use in other >> extension modules. >> >> While documenting the C API I renamed C types, functions, and variables >> to be consistent with Python's PEP 7. Names starting with 'Py' and 'Pg' >> were changed to use the 'pg' prefix. This avoids conflicts with possible >> future Python C functions as well as make the pygame naming convention >> consistent. I have also found other inconsistencies in the pygame C API. >> Functions that return a Python object are consistent in returning NULL to >> indicate an error. However, for functions that return an error code, some >> may use -1 to indicate an error, while others use 0. Should I make an >> effort to make pygame error handling consistent within the C API? Would it >> make sense to do this before pygame 1.9.4 is released, or wait until pygame >> 2? Python is not much help since it has mixed error codes within its C API. >> >> Lenard Lindstrom >> >> >> >