From 6c3544505da522b8a6304f36aca2f2bd36de7120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 2 Jun 2025 22:56:20 +0200 Subject: [PATCH 01/15] Refactor surface --- buildconfig/Setup.Android.SDL2.in | 2 +- buildconfig/Setup.SDL2.in | 2 +- buildconfig/make_docs.py | 21 +++++++- docs/reST/c_api/surface.rst | 2 +- src_c/freetype/ft_pixel.h | 2 +- src_c/gfxdraw.c | 2 +- src_c/{ => include}/palette.h | 0 src_c/{ => include}/simd_shared.h | 2 +- src_c/mask.c | 2 +- src_c/meson.build | 50 +----------------- src_c/pixelarray.c | 2 +- src_c/pixelcopy.c | 2 +- src_c/simd_transform.h | 2 +- src_c/static.c | 6 +-- src_c/{ => surface}/_blit_info.h | 0 src_c/{ => surface}/_surface.h | 2 +- src_c/{ => surface}/alphablit.c | 2 +- src_c/surface/meson.build | 51 +++++++++++++++++++ src_c/{ => surface}/simd_blitters.h | 0 src_c/{ => surface}/simd_blitters_avx2.c | 0 src_c/{ => surface}/simd_blitters_sse2.c | 0 src_c/{ => surface}/simd_fill.h | 0 src_c/{ => surface}/simd_surface_fill_avx2.c | 0 src_c/{ => surface}/simd_surface_fill_sse2.c | 0 src_c/{ => surface}/surface.c | 4 +- src_c/{ => surface}/surface.h | 2 +- .../pygame => src_c/surface}/surface.pyi | 0 src_c/{doc => surface}/surface_doc.h | 0 src_c/{ => surface}/surface_fill.c | 0 src_c/transform.c | 2 +- 30 files changed, 91 insertions(+), 69 deletions(-) rename src_c/{ => include}/palette.h (100%) rename src_c/{ => include}/simd_shared.h (97%) rename src_c/{ => surface}/_blit_info.h (100%) rename src_c/{ => surface}/_surface.h (97%) rename src_c/{ => surface}/alphablit.c (99%) create mode 100644 src_c/surface/meson.build rename src_c/{ => surface}/simd_blitters.h (100%) rename src_c/{ => surface}/simd_blitters_avx2.c (100%) rename src_c/{ => surface}/simd_blitters_sse2.c (100%) rename src_c/{ => surface}/simd_fill.h (100%) rename src_c/{ => surface}/simd_surface_fill_avx2.c (100%) rename src_c/{ => surface}/simd_surface_fill_sse2.c (100%) rename src_c/{ => surface}/surface.c (99%) rename src_c/{ => surface}/surface.h (99%) rename {buildconfig/stubs/pygame => src_c/surface}/surface.pyi (100%) rename src_c/{doc => surface}/surface_doc.h (100%) rename src_c/{ => surface}/surface_fill.c (100%) diff --git a/buildconfig/Setup.Android.SDL2.in b/buildconfig/Setup.Android.SDL2.in index 610d897d8c..9677104a56 100644 --- a/buildconfig/Setup.Android.SDL2.in +++ b/buildconfig/Setup.Android.SDL2.in @@ -48,7 +48,7 @@ key src_c/key.c $(SDL) $(DEBUG) mouse src_c/mouse.c $(SDL) $(DEBUG) rect src_c/rect.c src_c/pgcompat_rect.c $(SDL) $(DEBUG) rwobject src_c/rwobject.c $(SDL) $(DEBUG) -surface src_c/simd_blitters_sse2.c src_c/simd_blitters_avx2.c src_c/surface.c src_c/alphablit.c src_c/surface_fill.c src_c/simd_surface_fill_avx2.c src_c/simd_surface_fill_sse2.c $(SDL) $(DEBUG) +surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) surflock src_c/surflock.c $(SDL) $(DEBUG) time src_c/time.c $(SDL) $(DEBUG) joystick src_c/joystick.c $(SDL) $(DEBUG) diff --git a/buildconfig/Setup.SDL2.in b/buildconfig/Setup.SDL2.in index 0acde7e2fe..632d2dd595 100644 --- a/buildconfig/Setup.SDL2.in +++ b/buildconfig/Setup.SDL2.in @@ -59,7 +59,7 @@ key src_c/key.c $(SDL) $(DEBUG) mouse src_c/mouse.c $(SDL) $(DEBUG) rect src_c/rect.c src_c/pgcompat_rect.c $(SDL) $(DEBUG) rwobject src_c/rwobject.c $(SDL) $(DEBUG) -surface src_c/simd_blitters_sse2.c src_c/simd_blitters_avx2.c src_c/surface.c src_c/alphablit.c src_c/surface_fill.c src_c/simd_surface_fill_avx2.c src_c/simd_surface_fill_sse2.c $(SDL) $(DEBUG) +surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) surflock src_c/surflock.c $(SDL) $(DEBUG) time src_c/time.c $(SDL) $(DEBUG) joystick src_c/joystick.c $(SDL) $(DEBUG) diff --git a/buildconfig/make_docs.py b/buildconfig/make_docs.py index 25664042c9..c80b1b45de 100755 --- a/buildconfig/make_docs.py +++ b/buildconfig/make_docs.py @@ -3,6 +3,7 @@ import sys import os import subprocess +import glob rst_dir = 'docs' rst_source_dir = os.path.join(rst_dir, 'reST') @@ -11,6 +12,20 @@ c_header_dir = os.path.join('src_c', 'doc') +ignore_dirs = ["freetype"] + + +def move_doc_headers(): + for file in glob.glob(f'{c_header_dir}/*.h'): + file_name = file.replace(c_header_dir + os.sep, '') + module_name = file.replace('_doc.h', '').replace(c_header_dir + os.sep, '') + if module_name not in ignore_dirs: + args = ['src_c', module_name] + path = os.path.join(*args) + if os.path.exists(path): + os.replace(file, os.path.join(path, file_name)) + + def run(): full_generation_flag = False for argument in sys.argv[1:]: @@ -27,7 +42,11 @@ def run(): if full_generation_flag: subprocess_args.append('-E') print("Executing sphinx in subprocess with args:", subprocess_args) - return subprocess.run(subprocess_args).returncode + returncode = subprocess.run(subprocess_args).returncode + if returncode != 0: + return returncode + move_doc_headers() + return 0 except Exception: print('---') print('Have you installed sphinx?') diff --git a/docs/reST/c_api/surface.rst b/docs/reST/c_api/surface.rst index a394d629f0..310a098ebe 100644 --- a/docs/reST/c_api/surface.rst +++ b/docs/reST/c_api/surface.rst @@ -6,7 +6,7 @@ Class Surface API exported by pygame.surface ************************************************ -src_c/surface.c +src_c/surface/surface.c =============== This extension module defines Python type :py:class:`pygame.Surface`. diff --git a/src_c/freetype/ft_pixel.h b/src_c/freetype/ft_pixel.h index 46c5b47732..d35df3bcfa 100644 --- a/src_c/freetype/ft_pixel.h +++ b/src_c/freetype/ft_pixel.h @@ -20,7 +20,7 @@ #ifndef _PYGAME_FREETYPE_PIXEL_H_ #define _PYGAME_FREETYPE_PIXEL_H_ -#include "../surface.h" +#include "../surface/surface.h" #define GET_RGB_VALS(pixel, fmt, r, g, b, a) \ (r) = ((pixel) & (fmt)->Rmask) >> (fmt)->Rshift; \ diff --git a/src_c/gfxdraw.c b/src_c/gfxdraw.c index 09cbb050b8..cfa3a03da0 100644 --- a/src_c/gfxdraw.c +++ b/src_c/gfxdraw.c @@ -34,7 +34,7 @@ #include "doc/gfxdraw_doc.h" -#include "surface.h" +#include "surface/surface.h" #include "pgcompat.h" diff --git a/src_c/palette.h b/src_c/include/palette.h similarity index 100% rename from src_c/palette.h rename to src_c/include/palette.h diff --git a/src_c/simd_shared.h b/src_c/include/simd_shared.h similarity index 97% rename from src_c/simd_shared.h rename to src_c/include/simd_shared.h index a697fffb0c..aa0ebba789 100644 --- a/src_c/simd_shared.h +++ b/src_c/include/simd_shared.h @@ -2,7 +2,7 @@ #ifndef SIMD_SHARED_H #define SIMD_SHARED_H -#include "_surface.h" +#include "../surface/_surface.h" int pg_sse2_at_runtime_but_uncompiled(); diff --git a/src_c/mask.c b/src_c/mask.c index b7fef4d874..83898bea76 100644 --- a/src_c/mask.c +++ b/src_c/mask.c @@ -127,7 +127,7 @@ mask_get_size(PyObject *self, PyObject *_null) * Returns: * Rect object or NULL to indicate a fail * - * Ref: src_c/surface.c surf_get_rect() + * Ref: src_c/surface/surface.c surf_get_rect() */ static PyObject * mask_get_rect(PyObject *self, PyObject *args, PyObject *kwargs) diff --git a/src_c/meson.build b/src_c/meson.build index 0c1479a812..b2bff9a463 100644 --- a/src_c/meson.build +++ b/src_c/meson.build @@ -84,55 +84,7 @@ rwobject = py.extension_module( subdir: pg, ) -# TODO: support SDL3 -if sdl_api != 3 -simd_blitters_avx2 = static_library( - 'simd_blitters_avx2', - 'simd_blitters_avx2.c', - dependencies: pg_base_deps, - c_args: simd_avx2_flags + warnings_error, -) - -simd_blitters_sse2 = static_library( - 'simd_blitters_sse2', - 'simd_blitters_sse2.c', - dependencies: pg_base_deps, - c_args: simd_sse2_neon_flags + warnings_error, -) - -simd_surface_fill_avx2 = static_library( - 'simd_surface_fill_avx2', - 'simd_surface_fill_avx2.c', - dependencies: pg_base_deps, - c_args: simd_avx2_flags + warnings_error, -) - -simd_surface_fill_sse2 = static_library( - 'simd_surface_fill_sse2', - 'simd_surface_fill_sse2.c', - dependencies: pg_base_deps, - c_args: simd_sse2_neon_flags + warnings_error, -) - -surface = py.extension_module( - 'surface', - [ - 'surface.c', - 'alphablit.c', - 'surface_fill.c', - ], - c_args: warnings_error, - link_with: [ - simd_blitters_avx2, - simd_blitters_sse2, - simd_surface_fill_avx2, - simd_surface_fill_sse2, - ], - dependencies: pg_base_deps, - install: true, - subdir: pg, -) -endif +subdir('surface') surflock = py.extension_module( 'surflock', diff --git a/src_c/pixelarray.c b/src_c/pixelarray.c index 539b3ae6e7..f8a9aa841e 100644 --- a/src_c/pixelarray.c +++ b/src_c/pixelarray.c @@ -27,7 +27,7 @@ #include "doc/pixelarray_doc.h" -#include "surface.h" +#include "surface/surface.h" #if !defined(BUILD_STATIC) static char FormatUint8[] = "B"; static char FormatUint16[] = "=H"; diff --git a/src_c/pixelcopy.c b/src_c/pixelcopy.c index 0304d7ebce..d50b0907e8 100644 --- a/src_c/pixelcopy.c +++ b/src_c/pixelcopy.c @@ -22,7 +22,7 @@ #include -#include "palette.h" +#include "include/palette.h" #include "pgcompat.h" diff --git a/src_c/simd_transform.h b/src_c/simd_transform.h index 30f0379568..38a954b787 100644 --- a/src_c/simd_transform.h +++ b/src_c/simd_transform.h @@ -1,5 +1,5 @@ #define NO_PYGAME_C_API -#include "_surface.h" +#include "surface/_surface.h" /* TODO: This compat code should probably go in some place like simd_shared.h * That header file however is inconsistently used at the moment and not diff --git a/src_c/static.c b/src_c/static.c index 87c0264d14..2842d37481 100644 --- a/src_c/static.c +++ b/src_c/static.c @@ -365,9 +365,9 @@ PyInit_pygame_static() #undef pgSurface_Type #undef pgSurface_SetSurface -#include "surface.c" -#include "simd_blitters_avx2.c" -#include "simd_blitters_sse2.c" +#include "surface/surface.c" +#include "surface/simd_blitters_avx2.c" +#include "surface/simd_blitters_sse2.c" #include "window.c" diff --git a/src_c/_blit_info.h b/src_c/surface/_blit_info.h similarity index 100% rename from src_c/_blit_info.h rename to src_c/surface/_blit_info.h diff --git a/src_c/_surface.h b/src_c/surface/_surface.h similarity index 97% rename from src_c/_surface.h rename to src_c/surface/_surface.h index bb07437d0f..20d6d05508 100644 --- a/src_c/_surface.h +++ b/src_c/surface/_surface.h @@ -24,7 +24,7 @@ #ifndef _SURFACE_H #define _SURFACE_H -#include "_pygame.h" +#include "../_pygame.h" #include "surface.h" #endif diff --git a/src_c/alphablit.c b/src_c/surface/alphablit.c similarity index 99% rename from src_c/alphablit.c rename to src_c/surface/alphablit.c index f279c50b4b..dada9a01a1 100644 --- a/src_c/alphablit.c +++ b/src_c/surface/alphablit.c @@ -24,7 +24,7 @@ #define NO_PYGAME_C_API #include "_surface.h" -#include "simd_shared.h" +#include "../include/simd_shared.h" #include "simd_blitters.h" static void diff --git a/src_c/surface/meson.build b/src_c/surface/meson.build new file mode 100644 index 0000000000..fb9d650123 --- /dev/null +++ b/src_c/surface/meson.build @@ -0,0 +1,51 @@ +# TODO: support SDL3 +if sdl_api != 3 + simd_blitters_avx2 = static_library( + 'simd_blitters_avx2', + 'simd_blitters_avx2.c', + dependencies: pg_base_deps, + c_args: simd_avx2_flags + warnings_error, + ) + + simd_blitters_sse2 = static_library( + 'simd_blitters_sse2', + 'simd_blitters_sse2.c', + dependencies: pg_base_deps, + c_args: simd_sse2_neon_flags + warnings_error, + ) + + simd_surface_fill_avx2 = static_library( + 'simd_surface_fill_avx2', + 'simd_surface_fill_avx2.c', + dependencies: pg_base_deps, + c_args: simd_avx2_flags + warnings_error, + ) + + simd_surface_fill_sse2 = static_library( + 'simd_surface_fill_sse2', + 'simd_surface_fill_sse2.c', + dependencies: pg_base_deps, + c_args: simd_sse2_neon_flags + warnings_error, + ) + + surface = py.extension_module( + 'surface', + [ + 'surface.c', + 'alphablit.c', + 'surface_fill.c', + ], + include_directories: '../include', + c_args: warnings_error, + link_with: [ + simd_blitters_avx2, + simd_blitters_sse2, + simd_surface_fill_avx2, + simd_surface_fill_sse2, + ], + dependencies: pg_base_deps, + install: true, + subdir: pg, + ) + install_data('surface.pyi', install_dir: pg_dir, install_tag: 'pg-tag') +endif \ No newline at end of file diff --git a/src_c/simd_blitters.h b/src_c/surface/simd_blitters.h similarity index 100% rename from src_c/simd_blitters.h rename to src_c/surface/simd_blitters.h diff --git a/src_c/simd_blitters_avx2.c b/src_c/surface/simd_blitters_avx2.c similarity index 100% rename from src_c/simd_blitters_avx2.c rename to src_c/surface/simd_blitters_avx2.c diff --git a/src_c/simd_blitters_sse2.c b/src_c/surface/simd_blitters_sse2.c similarity index 100% rename from src_c/simd_blitters_sse2.c rename to src_c/surface/simd_blitters_sse2.c diff --git a/src_c/simd_fill.h b/src_c/surface/simd_fill.h similarity index 100% rename from src_c/simd_fill.h rename to src_c/surface/simd_fill.h diff --git a/src_c/simd_surface_fill_avx2.c b/src_c/surface/simd_surface_fill_avx2.c similarity index 100% rename from src_c/simd_surface_fill_avx2.c rename to src_c/surface/simd_surface_fill_avx2.c diff --git a/src_c/simd_surface_fill_sse2.c b/src_c/surface/simd_surface_fill_sse2.c similarity index 100% rename from src_c/simd_surface_fill_sse2.c rename to src_c/surface/simd_surface_fill_sse2.c diff --git a/src_c/surface.c b/src_c/surface/surface.c similarity index 99% rename from src_c/surface.c rename to src_c/surface/surface.c index 80cc21119f..996e539dc1 100644 --- a/src_c/surface.c +++ b/src_c/surface/surface.c @@ -28,8 +28,8 @@ #include "palette.h" #include "structmember.h" -#include "pgcompat.h" -#include "doc/surface_doc.h" +#include "../pgcompat.h" +#include "surface_doc.h" /* stdint.h is missing from some versions of MSVC. */ #ifdef _MSC_VER diff --git a/src_c/surface.h b/src_c/surface/surface.h similarity index 99% rename from src_c/surface.h rename to src_c/surface/surface.h index d3cf9e322b..d33e25fc4c 100644 --- a/src_c/surface.h +++ b/src_c/surface/surface.h @@ -35,7 +35,7 @@ #include #endif -#include "pygame.h" +#include "../pygame.h" /* Blend modes */ #define PYGAME_BLEND_ADD 0x1 diff --git a/buildconfig/stubs/pygame/surface.pyi b/src_c/surface/surface.pyi similarity index 100% rename from buildconfig/stubs/pygame/surface.pyi rename to src_c/surface/surface.pyi diff --git a/src_c/doc/surface_doc.h b/src_c/surface/surface_doc.h similarity index 100% rename from src_c/doc/surface_doc.h rename to src_c/surface/surface_doc.h diff --git a/src_c/surface_fill.c b/src_c/surface/surface_fill.c similarity index 100% rename from src_c/surface_fill.c rename to src_c/surface/surface_fill.c diff --git a/src_c/transform.c b/src_c/transform.c index 8869607b33..5fad625e26 100644 --- a/src_c/transform.c +++ b/src_c/transform.c @@ -33,7 +33,7 @@ #include #include -#include "simd_shared.h" +#include "include/simd_shared.h" #include "simd_transform.h" #include "scale.h" From 9da9106934295ea87c09bbd265b06469a55e641f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 2 Jun 2025 23:08:52 +0200 Subject: [PATCH 02/15] Refactor surface --- .pre-commit-config.yaml | 1 + src_c/surface/meson.build | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a9476d3460..e323081a91 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -42,6 +42,7 @@ repos: (?x)^( ^src_c/_sdl2/.*$ | ^src_c/doc/.*$ + | ^src_c/.+/.*_doc.h$ | docs/reST/_static/script.js | docs/reST/_templates/header.h | src_c/include/sse2neon.h diff --git a/src_c/surface/meson.build b/src_c/surface/meson.build index fb9d650123..ed22d5289b 100644 --- a/src_c/surface/meson.build +++ b/src_c/surface/meson.build @@ -48,4 +48,4 @@ if sdl_api != 3 subdir: pg, ) install_data('surface.pyi', install_dir: pg_dir, install_tag: 'pg-tag') -endif \ No newline at end of file +endif From 1cf66464c5020a6023fb69048d4fcb548db441bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 2 Jun 2025 23:12:56 +0200 Subject: [PATCH 03/15] Refactor surface --- buildconfig/Setup.Android.SDL2.in | 2 +- buildconfig/Setup.SDL2.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildconfig/Setup.Android.SDL2.in b/buildconfig/Setup.Android.SDL2.in index 9677104a56..dbbbaf1afe 100644 --- a/buildconfig/Setup.Android.SDL2.in +++ b/buildconfig/Setup.Android.SDL2.in @@ -48,7 +48,7 @@ key src_c/key.c $(SDL) $(DEBUG) mouse src_c/mouse.c $(SDL) $(DEBUG) rect src_c/rect.c src_c/pgcompat_rect.c $(SDL) $(DEBUG) rwobject src_c/rwobject.c $(SDL) $(DEBUG) -surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) +surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) -Isrc_c/include surflock src_c/surflock.c $(SDL) $(DEBUG) time src_c/time.c $(SDL) $(DEBUG) joystick src_c/joystick.c $(SDL) $(DEBUG) diff --git a/buildconfig/Setup.SDL2.in b/buildconfig/Setup.SDL2.in index 632d2dd595..6246289260 100644 --- a/buildconfig/Setup.SDL2.in +++ b/buildconfig/Setup.SDL2.in @@ -59,7 +59,7 @@ key src_c/key.c $(SDL) $(DEBUG) mouse src_c/mouse.c $(SDL) $(DEBUG) rect src_c/rect.c src_c/pgcompat_rect.c $(SDL) $(DEBUG) rwobject src_c/rwobject.c $(SDL) $(DEBUG) -surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) +surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) -Isrc_c/include surflock src_c/surflock.c $(SDL) $(DEBUG) time src_c/time.c $(SDL) $(DEBUG) joystick src_c/joystick.c $(SDL) $(DEBUG) From 7fa0a8b7326e05e9068a22f4925f94d811788f32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 2 Jun 2025 23:17:22 +0200 Subject: [PATCH 04/15] Refactor surface --- src_c/surface/simd_blitters_sse2.c | 2 +- src_c/surface/simd_surface_fill_sse2.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src_c/surface/simd_blitters_sse2.c b/src_c/surface/simd_blitters_sse2.c index 65bb926721..5f592702af 100644 --- a/src_c/surface/simd_blitters_sse2.c +++ b/src_c/surface/simd_blitters_sse2.c @@ -2,7 +2,7 @@ #if PG_ENABLE_ARM_NEON // sse2neon.h is from here: https://github.com/DLTcollab/sse2neon -#include "include/sse2neon.h" +#include "sse2neon.h" #endif /* PG_ENABLE_ARM_NEON */ /* See if we are compiled 64 bit on GCC or MSVC */ diff --git a/src_c/surface/simd_surface_fill_sse2.c b/src_c/surface/simd_surface_fill_sse2.c index 7e4a80b030..b481af7cce 100644 --- a/src_c/surface/simd_surface_fill_sse2.c +++ b/src_c/surface/simd_surface_fill_sse2.c @@ -2,7 +2,7 @@ #if PG_ENABLE_ARM_NEON // sse2neon.h is from here: https://github.com/DLTcollab/sse2neon -#include "include/sse2neon.h" +#include "sse2neon.h" #endif /* PG_ENABLE_ARM_NEON */ #define BAD_SSE2_FUNCTION_CALL \ From dbb195213c765fd43f8e0cdf7b29fcad860628e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 2 Jun 2025 23:25:18 +0200 Subject: [PATCH 05/15] Refactor surface --- src_c/surface/meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src_c/surface/meson.build b/src_c/surface/meson.build index ed22d5289b..06eef2feaf 100644 --- a/src_c/surface/meson.build +++ b/src_c/surface/meson.build @@ -3,6 +3,7 @@ if sdl_api != 3 simd_blitters_avx2 = static_library( 'simd_blitters_avx2', 'simd_blitters_avx2.c', + include_directories: '../include', dependencies: pg_base_deps, c_args: simd_avx2_flags + warnings_error, ) @@ -10,6 +11,7 @@ if sdl_api != 3 simd_blitters_sse2 = static_library( 'simd_blitters_sse2', 'simd_blitters_sse2.c', + include_directories: '../include', dependencies: pg_base_deps, c_args: simd_sse2_neon_flags + warnings_error, ) @@ -17,6 +19,7 @@ if sdl_api != 3 simd_surface_fill_avx2 = static_library( 'simd_surface_fill_avx2', 'simd_surface_fill_avx2.c', + include_directories: '../include', dependencies: pg_base_deps, c_args: simd_avx2_flags + warnings_error, ) @@ -24,6 +27,7 @@ if sdl_api != 3 simd_surface_fill_sse2 = static_library( 'simd_surface_fill_sse2', 'simd_surface_fill_sse2.c', + include_directories: '../include', dependencies: pg_base_deps, c_args: simd_sse2_neon_flags + warnings_error, ) From 63685661bbba29fc385ddb4f9db99c9c3d94fc71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 2 Jun 2025 23:28:19 +0200 Subject: [PATCH 06/15] Refactor surface --- buildconfig/Setup.Emscripten.SDL2.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildconfig/Setup.Emscripten.SDL2.in b/buildconfig/Setup.Emscripten.SDL2.in index 9c465102f1..7f99449772 100644 --- a/buildconfig/Setup.Emscripten.SDL2.in +++ b/buildconfig/Setup.Emscripten.SDL2.in @@ -33,7 +33,7 @@ math src_c/math.c $(SDL) $(DEBUG) GFX = src_c/SDL_gfx/SDL_gfxPrimitives.c -static src_c/static.c $(SDL) $(FREETYPE) $(FONT) $(MIXER) $(IMAGE) $(PNG) $(JPEG) $(DEBUG) +static src_c/static.c $(SDL) $(FREETYPE) $(FONT) $(MIXER) $(IMAGE) $(PNG) $(JPEG) $(DEBUG) -Isrc_c/include # these should not be altered they already are in static.c merging file above time src_c/void.c From 0a5e452fa5f38bf4bc329991476b37e3e6ae5ac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 2 Jun 2025 23:32:40 +0200 Subject: [PATCH 07/15] Refactor surface --- src_c/static.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src_c/static.c b/src_c/static.c index 2842d37481..926aaa9c02 100644 --- a/src_c/static.c +++ b/src_c/static.c @@ -430,9 +430,9 @@ PyInit_pygame_static() #include "gfxdraw.c" -#include "alphablit.c" +#include "surface/alphablit.c" -#include "surface_fill.c" +#include "surface/surface_fill.c" #include "pixelarray.c" #include "pixelcopy.c" #include "newbuffer.c" From 8ac529db27d259b3fb0078593d1dfa1346706460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 9 Jun 2025 11:52:58 +0200 Subject: [PATCH 08/15] Refactor surface --- src_c/meson.build | 6 +++++- src_c/pixelcopy.c | 2 +- src_c/surface/alphablit.c | 2 +- src_c/transform.c | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src_c/meson.build b/src_c/meson.build index b2bff9a463..e6081bb29d 100644 --- a/src_c/meson.build +++ b/src_c/meson.build @@ -84,7 +84,9 @@ rwobject = py.extension_module( subdir: pg, ) -subdir('surface') +if sdl_api != 3 + subdir('surface') +endif surflock = py.extension_module( 'surflock', @@ -164,6 +166,7 @@ endif transform = py.extension_module( 'transform', transform_sources, + include_directories: 'include', c_args: warnings_error, link_with: [simd_transform_avx2, simd_transform_sse2], objects: transform_objs, @@ -211,6 +214,7 @@ math = py.extension_module( pixelcopy = py.extension_module( 'pixelcopy', 'pixelcopy.c', + include_directories: 'include', c_args: warnings_error, dependencies: pg_base_deps, install: true, diff --git a/src_c/pixelcopy.c b/src_c/pixelcopy.c index d50b0907e8..0304d7ebce 100644 --- a/src_c/pixelcopy.c +++ b/src_c/pixelcopy.c @@ -22,7 +22,7 @@ #include -#include "include/palette.h" +#include "palette.h" #include "pgcompat.h" diff --git a/src_c/surface/alphablit.c b/src_c/surface/alphablit.c index dada9a01a1..f279c50b4b 100644 --- a/src_c/surface/alphablit.c +++ b/src_c/surface/alphablit.c @@ -24,7 +24,7 @@ #define NO_PYGAME_C_API #include "_surface.h" -#include "../include/simd_shared.h" +#include "simd_shared.h" #include "simd_blitters.h" static void diff --git a/src_c/transform.c b/src_c/transform.c index 4441163029..810c32865b 100644 --- a/src_c/transform.c +++ b/src_c/transform.c @@ -33,7 +33,7 @@ #include #include -#include "include/simd_shared.h" +#include "simd_shared.h" #include "simd_transform.h" #include "scale.h" From 16155686e3c29d1216eafce36764ef884e3ec1e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 9 Jun 2025 12:20:52 +0200 Subject: [PATCH 09/15] Refactor surface --- src_c/gfxdraw.c | 2 -- src_c/include/simd_shared.h | 2 -- 2 files changed, 4 deletions(-) diff --git a/src_c/gfxdraw.c b/src_c/gfxdraw.c index cfa3a03da0..6d1b1a1ec1 100644 --- a/src_c/gfxdraw.c +++ b/src_c/gfxdraw.c @@ -34,8 +34,6 @@ #include "doc/gfxdraw_doc.h" -#include "surface/surface.h" - #include "pgcompat.h" #include "SDL_gfx/SDL_gfxPrimitives.h" diff --git a/src_c/include/simd_shared.h b/src_c/include/simd_shared.h index aa0ebba789..02f7257351 100644 --- a/src_c/include/simd_shared.h +++ b/src_c/include/simd_shared.h @@ -2,8 +2,6 @@ #ifndef SIMD_SHARED_H #define SIMD_SHARED_H -#include "../surface/_surface.h" - int pg_sse2_at_runtime_but_uncompiled(); int From e1df1ce83abcb2117a4b8694b03f500f64b71783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 9 Jun 2025 12:31:57 +0200 Subject: [PATCH 10/15] Refactor surface --- buildconfig/Setup.Android.SDL2.in | 6 +++--- buildconfig/Setup.SDL2.in | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/buildconfig/Setup.Android.SDL2.in b/buildconfig/Setup.Android.SDL2.in index dbbbaf1afe..0542c351a6 100644 --- a/buildconfig/Setup.Android.SDL2.in +++ b/buildconfig/Setup.Android.SDL2.in @@ -48,18 +48,18 @@ key src_c/key.c $(SDL) $(DEBUG) mouse src_c/mouse.c $(SDL) $(DEBUG) rect src_c/rect.c src_c/pgcompat_rect.c $(SDL) $(DEBUG) rwobject src_c/rwobject.c $(SDL) $(DEBUG) -surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) -Isrc_c/include +surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) surflock src_c/surflock.c $(SDL) $(DEBUG) time src_c/time.c $(SDL) $(DEBUG) joystick src_c/joystick.c $(SDL) $(DEBUG) draw src_c/draw.c $(SDL) $(DEBUG) image src_c/image.c $(SDL) $(DEBUG) -transform src_c/simd_transform_sse2.c src_c/simd_transform_avx2.c src_c/transform.c src_c/rotozoom.c src_c/scale2x.c src_c/scale_mmx.c $(SDL) $(DEBUG) -D_NO_MMX_FOR_X86_64 +transform src_c/simd_transform_sse2.c src_c/simd_transform_avx2.c src_c/transform.c src_c/rotozoom.c src_c/scale2x.c src_c/scale_mmx.c $(SDL) $(DEBUG) -D_NO_MMX_FOR_X86_64 -Isrc_c/include mask src_c/mask.c src_c/bitmask.c $(SDL) $(DEBUG) bufferproxy src_c/bufferproxy.c $(SDL) $(DEBUG) pixelarray src_c/pixelarray.c $(SDL) $(DEBUG) math src_c/math.c $(SDL) $(DEBUG) -pixelcopy src_c/pixelcopy.c $(SDL) $(DEBUG) +pixelcopy src_c/pixelcopy.c $(SDL) $(DEBUG) -Isrc_c/include newbuffer src_c/newbuffer.c $(SDL) $(DEBUG) window src_c/window.c $(SDL) $(DEBUG) _render src_c/render.c $(SDL) $(DEBUG) diff --git a/buildconfig/Setup.SDL2.in b/buildconfig/Setup.SDL2.in index 6246289260..b859fd450f 100644 --- a/buildconfig/Setup.SDL2.in +++ b/buildconfig/Setup.SDL2.in @@ -59,18 +59,18 @@ key src_c/key.c $(SDL) $(DEBUG) mouse src_c/mouse.c $(SDL) $(DEBUG) rect src_c/rect.c src_c/pgcompat_rect.c $(SDL) $(DEBUG) rwobject src_c/rwobject.c $(SDL) $(DEBUG) -surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) -Isrc_c/include +surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) surflock src_c/surflock.c $(SDL) $(DEBUG) time src_c/time.c $(SDL) $(DEBUG) joystick src_c/joystick.c $(SDL) $(DEBUG) draw src_c/draw.c $(SDL) $(DEBUG) image src_c/image.c $(SDL) $(DEBUG) -transform src_c/simd_transform_sse2.c src_c/simd_transform_avx2.c src_c/transform.c src_c/rotozoom.c src_c/scale2x.c src_c/scale_mmx.c $(SDL) $(DEBUG) +transform src_c/simd_transform_sse2.c src_c/simd_transform_avx2.c src_c/transform.c src_c/rotozoom.c src_c/scale2x.c src_c/scale_mmx.c $(SDL) $(DEBUG) -Isrc_c/include mask src_c/mask.c src_c/bitmask.c $(SDL) $(DEBUG) bufferproxy src_c/bufferproxy.c $(SDL) $(DEBUG) pixelarray src_c/pixelarray.c $(SDL) $(DEBUG) math src_c/math.c $(SDL) $(DEBUG) -pixelcopy src_c/pixelcopy.c $(SDL) $(DEBUG) +pixelcopy src_c/pixelcopy.c $(SDL) $(DEBUG) -Isrc_c/include newbuffer src_c/newbuffer.c $(SDL) $(DEBUG) system src_c/system.c $(SDL) $(DEBUG) geometry src_c/geometry.c $(SDL) $(DEBUG) From 1b0635dfa7b76512db3907fa862e13259090c6c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 9 Jun 2025 12:45:59 +0200 Subject: [PATCH 11/15] Refactor surface --- buildconfig/Setup.Android.SDL2.in | 2 +- buildconfig/Setup.SDL2.in | 2 +- src_c/simd_transform.h | 2 +- src_c/surface/_blit_info.h | 2 +- src_c/surface/_surface.h | 30 ------------------------------ src_c/surface/alphablit.c | 2 +- src_c/surface/simd_blitters.h | 2 +- src_c/surface/simd_fill.h | 2 +- src_c/surface/surface.h | 6 ------ 9 files changed, 7 insertions(+), 43 deletions(-) delete mode 100644 src_c/surface/_surface.h diff --git a/buildconfig/Setup.Android.SDL2.in b/buildconfig/Setup.Android.SDL2.in index 0542c351a6..987e32fe23 100644 --- a/buildconfig/Setup.Android.SDL2.in +++ b/buildconfig/Setup.Android.SDL2.in @@ -48,7 +48,7 @@ key src_c/key.c $(SDL) $(DEBUG) mouse src_c/mouse.c $(SDL) $(DEBUG) rect src_c/rect.c src_c/pgcompat_rect.c $(SDL) $(DEBUG) rwobject src_c/rwobject.c $(SDL) $(DEBUG) -surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) +surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) -Isrc_c/include surflock src_c/surflock.c $(SDL) $(DEBUG) time src_c/time.c $(SDL) $(DEBUG) joystick src_c/joystick.c $(SDL) $(DEBUG) diff --git a/buildconfig/Setup.SDL2.in b/buildconfig/Setup.SDL2.in index b859fd450f..aaa479b62a 100644 --- a/buildconfig/Setup.SDL2.in +++ b/buildconfig/Setup.SDL2.in @@ -59,7 +59,7 @@ key src_c/key.c $(SDL) $(DEBUG) mouse src_c/mouse.c $(SDL) $(DEBUG) rect src_c/rect.c src_c/pgcompat_rect.c $(SDL) $(DEBUG) rwobject src_c/rwobject.c $(SDL) $(DEBUG) -surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) +surface src_c/surface/simd_blitters_sse2.c src_c/surface/simd_blitters_avx2.c src_c/surface/surface.c src_c/surface/alphablit.c src_c/surface/surface_fill.c src_c/surface/simd_surface_fill_avx2.c src_c/surface/simd_surface_fill_sse2.c $(SDL) $(DEBUG) -Isrc_c/include surflock src_c/surflock.c $(SDL) $(DEBUG) time src_c/time.c $(SDL) $(DEBUG) joystick src_c/joystick.c $(SDL) $(DEBUG) diff --git a/src_c/simd_transform.h b/src_c/simd_transform.h index 38a954b787..23bac295a5 100644 --- a/src_c/simd_transform.h +++ b/src_c/simd_transform.h @@ -1,5 +1,5 @@ #define NO_PYGAME_C_API -#include "surface/_surface.h" +#include "surface/surface.h" /* TODO: This compat code should probably go in some place like simd_shared.h * That header file however is inconsistently used at the moment and not diff --git a/src_c/surface/_blit_info.h b/src_c/surface/_blit_info.h index 0bd289dec9..fa78d11ba5 100644 --- a/src_c/surface/_blit_info.h +++ b/src_c/surface/_blit_info.h @@ -1,7 +1,7 @@ #ifndef _BLIT_INFO_H #define _BLIT_INFO_H #define NO_PYGAME_C_API -#include "_surface.h" +#include "surface.h" /* The structure passed to the low level blit functions */ typedef struct { diff --git a/src_c/surface/_surface.h b/src_c/surface/_surface.h deleted file mode 100644 index 20d6d05508..0000000000 --- a/src_c/surface/_surface.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - pygame-ce - Python Game Library - Copyright (C) 2000-2001 Pete Shinners - Copyright (C) 2007 Marcus von Appen - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - Pete Shinners - pete@shinners.org -*/ - -#ifndef _SURFACE_H -#define _SURFACE_H - -#include "../_pygame.h" -#include "surface.h" - -#endif diff --git a/src_c/surface/alphablit.c b/src_c/surface/alphablit.c index f279c50b4b..719560a3cb 100644 --- a/src_c/surface/alphablit.c +++ b/src_c/surface/alphablit.c @@ -23,7 +23,7 @@ */ #define NO_PYGAME_C_API -#include "_surface.h" +#include "surface.h" #include "simd_shared.h" #include "simd_blitters.h" diff --git a/src_c/surface/simd_blitters.h b/src_c/surface/simd_blitters.h index 0c02207c26..5967227b96 100644 --- a/src_c/surface/simd_blitters.h +++ b/src_c/surface/simd_blitters.h @@ -1,5 +1,5 @@ #define NO_PYGAME_C_API -#include "_surface.h" +#include "surface.h" #include "_blit_info.h" #if !defined(PG_ENABLE_ARM_NEON) && defined(__aarch64__) diff --git a/src_c/surface/simd_fill.h b/src_c/surface/simd_fill.h index db80008c1d..7d134879fd 100644 --- a/src_c/surface/simd_fill.h +++ b/src_c/surface/simd_fill.h @@ -1,5 +1,5 @@ #define NO_PYGAME_C_API -#include "_surface.h" +#include "surface.h" #if !defined(PG_ENABLE_ARM_NEON) && defined(__aarch64__) // arm64 has neon optimisations enabled by default, even when fpu=neon is not diff --git a/src_c/surface/surface.h b/src_c/surface/surface.h index d33e25fc4c..ff8fd8ddbe 100644 --- a/src_c/surface/surface.h +++ b/src_c/surface/surface.h @@ -29,12 +29,6 @@ #undef _POSIX_C_SOURCE #endif -#ifdef PG_SDL3 -#include -#else -#include -#endif - #include "../pygame.h" /* Blend modes */ From 4239e92252a38cd8bc53788d5f87540a14c1bfba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 9 Jun 2025 12:53:36 +0200 Subject: [PATCH 12/15] Refactor surface --- src_c/meson.build | 1 + src_c/pixelarray.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src_c/meson.build b/src_c/meson.build index e6081bb29d..3561b61238 100644 --- a/src_c/meson.build +++ b/src_c/meson.build @@ -196,6 +196,7 @@ bufferproxy = py.extension_module( pixelarray = py.extension_module( 'pixelarray', 'pixelarray.c', + include_directories: 'surface', c_args: warnings_error, dependencies: pg_base_deps, install: true, diff --git a/src_c/pixelarray.c b/src_c/pixelarray.c index 96216bd52b..9523b05e36 100644 --- a/src_c/pixelarray.c +++ b/src_c/pixelarray.c @@ -27,7 +27,7 @@ #include "doc/pixelarray_doc.h" -#include "surface/surface.h" +#include "surface.h" #if !defined(BUILD_STATIC) static char FormatUint8[] = "B"; static char FormatUint16[] = "=H"; From cbbf4fd036a59a16ec3fae8465723d09da90af40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 9 Jun 2025 13:04:13 +0200 Subject: [PATCH 13/15] Refactor surface --- buildconfig/Setup.Android.SDL2.in | 2 +- buildconfig/Setup.SDL2.in | 2 +- src_c/meson.build | 4 +++- src_c/simd_transform.h | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/buildconfig/Setup.Android.SDL2.in b/buildconfig/Setup.Android.SDL2.in index 987e32fe23..4c76330ee5 100644 --- a/buildconfig/Setup.Android.SDL2.in +++ b/buildconfig/Setup.Android.SDL2.in @@ -57,7 +57,7 @@ image src_c/image.c $(SDL) $(DEBUG) transform src_c/simd_transform_sse2.c src_c/simd_transform_avx2.c src_c/transform.c src_c/rotozoom.c src_c/scale2x.c src_c/scale_mmx.c $(SDL) $(DEBUG) -D_NO_MMX_FOR_X86_64 -Isrc_c/include mask src_c/mask.c src_c/bitmask.c $(SDL) $(DEBUG) bufferproxy src_c/bufferproxy.c $(SDL) $(DEBUG) -pixelarray src_c/pixelarray.c $(SDL) $(DEBUG) +pixelarray src_c/pixelarray.c $(SDL) $(DEBUG) -Isrc_c/surface math src_c/math.c $(SDL) $(DEBUG) pixelcopy src_c/pixelcopy.c $(SDL) $(DEBUG) -Isrc_c/include newbuffer src_c/newbuffer.c $(SDL) $(DEBUG) diff --git a/buildconfig/Setup.SDL2.in b/buildconfig/Setup.SDL2.in index aaa479b62a..3356753d32 100644 --- a/buildconfig/Setup.SDL2.in +++ b/buildconfig/Setup.SDL2.in @@ -68,7 +68,7 @@ image src_c/image.c $(SDL) $(DEBUG) transform src_c/simd_transform_sse2.c src_c/simd_transform_avx2.c src_c/transform.c src_c/rotozoom.c src_c/scale2x.c src_c/scale_mmx.c $(SDL) $(DEBUG) -Isrc_c/include mask src_c/mask.c src_c/bitmask.c $(SDL) $(DEBUG) bufferproxy src_c/bufferproxy.c $(SDL) $(DEBUG) -pixelarray src_c/pixelarray.c $(SDL) $(DEBUG) +pixelarray src_c/pixelarray.c $(SDL) $(DEBUG) -Isrc_c/surface math src_c/math.c $(SDL) $(DEBUG) pixelcopy src_c/pixelcopy.c $(SDL) $(DEBUG) -Isrc_c/include newbuffer src_c/newbuffer.c $(SDL) $(DEBUG) diff --git a/src_c/meson.build b/src_c/meson.build index 3561b61238..2c95e9e6c2 100644 --- a/src_c/meson.build +++ b/src_c/meson.build @@ -136,6 +136,7 @@ image = py.extension_module( simd_transform_avx2 = static_library( 'simd_transform_avx2', 'simd_transform_avx2.c', + include_directories: 'surface', dependencies: pg_base_deps, c_args: simd_avx2_flags + warnings_error, ) @@ -143,6 +144,7 @@ simd_transform_avx2 = static_library( simd_transform_sse2 = static_library( 'simd_transform_sse2', 'simd_transform_sse2.c', + include_directories: 'surface', dependencies: pg_base_deps, c_args: simd_sse2_neon_flags + warnings_error, ) @@ -166,7 +168,7 @@ endif transform = py.extension_module( 'transform', transform_sources, - include_directories: 'include', + include_directories: ['include', 'surface'], c_args: warnings_error, link_with: [simd_transform_avx2, simd_transform_sse2], objects: transform_objs, diff --git a/src_c/simd_transform.h b/src_c/simd_transform.h index 23bac295a5..011d910f87 100644 --- a/src_c/simd_transform.h +++ b/src_c/simd_transform.h @@ -1,5 +1,5 @@ #define NO_PYGAME_C_API -#include "surface/surface.h" +#include "surface.h" /* TODO: This compat code should probably go in some place like simd_shared.h * That header file however is inconsistently used at the moment and not From 8739e82375b3acb142a5eb6190f208c90630ada5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 9 Jun 2025 13:10:22 +0200 Subject: [PATCH 14/15] Refactor surface --- buildconfig/Setup.Emscripten.SDL2.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildconfig/Setup.Emscripten.SDL2.in b/buildconfig/Setup.Emscripten.SDL2.in index 7f99449772..7163bc7cdd 100644 --- a/buildconfig/Setup.Emscripten.SDL2.in +++ b/buildconfig/Setup.Emscripten.SDL2.in @@ -33,7 +33,7 @@ math src_c/math.c $(SDL) $(DEBUG) GFX = src_c/SDL_gfx/SDL_gfxPrimitives.c -static src_c/static.c $(SDL) $(FREETYPE) $(FONT) $(MIXER) $(IMAGE) $(PNG) $(JPEG) $(DEBUG) -Isrc_c/include +static src_c/static.c $(SDL) $(FREETYPE) $(FONT) $(MIXER) $(IMAGE) $(PNG) $(JPEG) $(DEBUG) -Isrc_c/include -Isrc_c/surface # these should not be altered they already are in static.c merging file above time src_c/void.c From 5e1a244b0667b31445725b0d98a9a905a358b66b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20Komljenovi=C4=87?= Date: Mon, 9 Jun 2025 13:39:12 +0200 Subject: [PATCH 15/15] Refactor surface --- src_c/meson.build | 1 + src_c/surface/meson.build | 99 +++++++++++++++++++-------------------- 2 files changed, 49 insertions(+), 51 deletions(-) diff --git a/src_c/meson.build b/src_c/meson.build index 2c95e9e6c2..156d057f01 100644 --- a/src_c/meson.build +++ b/src_c/meson.build @@ -84,6 +84,7 @@ rwobject = py.extension_module( subdir: pg, ) +# TODO: support SDL3 if sdl_api != 3 subdir('surface') endif diff --git a/src_c/surface/meson.build b/src_c/surface/meson.build index 06eef2feaf..9a3685d547 100644 --- a/src_c/surface/meson.build +++ b/src_c/surface/meson.build @@ -1,55 +1,52 @@ -# TODO: support SDL3 -if sdl_api != 3 - simd_blitters_avx2 = static_library( - 'simd_blitters_avx2', - 'simd_blitters_avx2.c', - include_directories: '../include', - dependencies: pg_base_deps, - c_args: simd_avx2_flags + warnings_error, - ) +simd_blitters_avx2 = static_library( + 'simd_blitters_avx2', + 'simd_blitters_avx2.c', + include_directories: '../include', + dependencies: pg_base_deps, + c_args: simd_avx2_flags + warnings_error, +) - simd_blitters_sse2 = static_library( - 'simd_blitters_sse2', - 'simd_blitters_sse2.c', - include_directories: '../include', - dependencies: pg_base_deps, - c_args: simd_sse2_neon_flags + warnings_error, - ) +simd_blitters_sse2 = static_library( + 'simd_blitters_sse2', + 'simd_blitters_sse2.c', + include_directories: '../include', + dependencies: pg_base_deps, + c_args: simd_sse2_neon_flags + warnings_error, +) - simd_surface_fill_avx2 = static_library( - 'simd_surface_fill_avx2', - 'simd_surface_fill_avx2.c', - include_directories: '../include', - dependencies: pg_base_deps, - c_args: simd_avx2_flags + warnings_error, - ) +simd_surface_fill_avx2 = static_library( + 'simd_surface_fill_avx2', + 'simd_surface_fill_avx2.c', + include_directories: '../include', + dependencies: pg_base_deps, + c_args: simd_avx2_flags + warnings_error, +) - simd_surface_fill_sse2 = static_library( - 'simd_surface_fill_sse2', - 'simd_surface_fill_sse2.c', - include_directories: '../include', - dependencies: pg_base_deps, - c_args: simd_sse2_neon_flags + warnings_error, - ) +simd_surface_fill_sse2 = static_library( + 'simd_surface_fill_sse2', + 'simd_surface_fill_sse2.c', + include_directories: '../include', + dependencies: pg_base_deps, + c_args: simd_sse2_neon_flags + warnings_error, +) - surface = py.extension_module( - 'surface', - [ - 'surface.c', - 'alphablit.c', - 'surface_fill.c', - ], - include_directories: '../include', - c_args: warnings_error, - link_with: [ - simd_blitters_avx2, - simd_blitters_sse2, - simd_surface_fill_avx2, - simd_surface_fill_sse2, - ], - dependencies: pg_base_deps, - install: true, - subdir: pg, - ) - install_data('surface.pyi', install_dir: pg_dir, install_tag: 'pg-tag') -endif +surface = py.extension_module( + 'surface', + [ + 'surface.c', + 'alphablit.c', + 'surface_fill.c', + ], + include_directories: '../include', + c_args: warnings_error, + link_with: [ + simd_blitters_avx2, + simd_blitters_sse2, + simd_surface_fill_avx2, + simd_surface_fill_sse2, + ], + dependencies: pg_base_deps, + install: true, + subdir: pg, +) +install_data('surface.pyi', install_dir: pg_dir, install_tag: 'pg-tag')