一个例子是pg_RGBAFromObj,其中实现在base.c中定义,也以base.c(和_pygame.h)导出。

C将pg_RGBAFromObj函数暴露给 c_api 结构:

c_api [12] =Pg_RGBAFromObj;

然后在src_c/Include/_pygame.h中有一个

#定义PG_RGBAFromObj。

同样在_pygame.h中,它需要定义基本模块使用的插槽数量。这是PYGAMEAPI_BASE_NUMSLOTS。因此,如果要添加另一个函数,则需要递增此PYGAMEAPI_BASE_NUMSLOTS编号。

然后,要在其他文件中使用PG_RGBAFromObj,

  1. 包括“pygame.h”文件,

  2. 他们必须确保基础设施的进口带有:

    IMPORT_PYLOG_BASE();

使用pg_RGBAFromObj的示例有:_freetype.c、Color.c、gfxDraw.c和Surface e.c。




Edit on GitHub