Skip to content

Move surface to its own directory #3462

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 19 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions buildconfig/Setup.Android.SDL2.in
Original file line number Diff line number Diff line change
Expand Up @@ -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/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) -Isrc_c/include
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)
pixelarray src_c/pixelarray.c $(SDL) $(DEBUG) -Isrc_c/surface
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)
Expand Down
2 changes: 1 addition & 1 deletion buildconfig/Setup.Emscripten.SDL2.in
Original file line number Diff line number Diff line change
Expand Up @@ -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 -Isrc_c/surface

# these should not be altered they already are in static.c merging file above
time src_c/void.c
Expand Down
8 changes: 4 additions & 4 deletions buildconfig/Setup.SDL2.in
Original file line number Diff line number Diff line change
Expand Up @@ -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/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) -Isrc_c/include
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)
pixelarray src_c/pixelarray.c $(SDL) $(DEBUG) -Isrc_c/surface
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)
Expand Down
21 changes: 20 additions & 1 deletion buildconfig/make_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import sys
import os
import subprocess
import glob

rst_dir = 'docs'
rst_source_dir = os.path.join(rst_dir, 'reST')
Expand All @@ -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:]:
Expand All @@ -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?')
Expand Down
2 changes: 1 addition & 1 deletion docs/reST/c_api/surface.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
Expand Down
30 changes: 0 additions & 30 deletions src_c/_surface.h

This file was deleted.

2 changes: 1 addition & 1 deletion src_c/freetype/ft_pixel.h
Original file line number Diff line number Diff line change
Expand Up @@ -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; \
Expand Down
2 changes: 0 additions & 2 deletions src_c/gfxdraw.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@

#include "doc/gfxdraw_doc.h"

#include "surface.h"

#include "pgcompat.h"

#include "SDL_gfx/SDL_gfxPrimitives.h"
Expand Down
File renamed without changes.
2 changes: 0 additions & 2 deletions src_c/simd_shared.h → src_c/include/simd_shared.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
#ifndef SIMD_SHARED_H
#define SIMD_SHARED_H

#include "_surface.h"

int
pg_sse2_at_runtime_but_uncompiled();
int
Expand Down
2 changes: 1 addition & 1 deletion src_c/mask.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
52 changes: 6 additions & 46 deletions src_c/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -86,52 +86,7 @@ rwobject = py.extension_module(

# 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,
)
subdir('surface')
endif

surflock = py.extension_module(
Expand Down Expand Up @@ -182,13 +137,15 @@ 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,
)

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,
)
Expand All @@ -212,6 +169,7 @@ endif
transform = py.extension_module(
'transform',
transform_sources,
include_directories: ['include', 'surface'],
c_args: warnings_error,
link_with: [simd_transform_avx2, simd_transform_sse2],
objects: transform_objs,
Expand Down Expand Up @@ -241,6 +199,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,
Expand All @@ -259,6 +218,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,
Expand Down
2 changes: 1 addition & 1 deletion src_c/simd_transform.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#define NO_PYGAME_C_API
#include "_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
Expand Down
10 changes: 5 additions & 5 deletions src_c/static.c
Original file line number Diff line number Diff line change
Expand Up @@ -427,9 +427,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"

Expand Down Expand Up @@ -492,9 +492,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"
Expand Down
2 changes: 1 addition & 1 deletion src_c/_blit_info.h → src_c/surface/_blit_info.h
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
2 changes: 1 addition & 1 deletion src_c/alphablit.c → src_c/surface/alphablit.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
*/

#define NO_PYGAME_C_API
#include "_surface.h"
#include "surface.h"
#include "simd_shared.h"
#include "simd_blitters.h"

Expand Down
52 changes: 52 additions & 0 deletions src_c/surface/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
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_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,
)

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')
2 changes: 1 addition & 1 deletion src_c/simd_blitters.h → src_c/surface/simd_blitters.h
Original file line number Diff line number Diff line change
@@ -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__)
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
Loading
Loading