From cee68fa1d1f964a5859a0b09fa4aad902273567f Mon Sep 17 00:00:00 2001 From: Ankith Date: Thu, 28 Dec 2023 23:25:58 +0530 Subject: [PATCH 01/31] Call PyObject_GetBuffer directly, fix pypy fail --- src_c/base.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src_c/base.c b/src_c/base.c index a9cd9d7286..97d22c0a04 100644 --- a/src_c/base.c +++ b/src_c/base.c @@ -1148,12 +1148,9 @@ pgObject_GetBuffer(PyObject *obj, pg_buffer *pg_view_p, int flags) flags |= PyBUF_PYGAME; #endif - if (PyObject_CheckBuffer(obj)) { + if (PyObject_GetBuffer(obj, view_p, flags) == 0) { char *fchar_p; - if (PyObject_GetBuffer(obj, view_p, flags)) { - return -1; - } pg_view_p->release_buffer = PyBuffer_Release; /* Check the format is a numeric type or pad bytes @@ -1225,6 +1222,9 @@ pgObject_GetBuffer(PyObject *obj, pg_buffer *pg_view_p, int flags) } success = 1; } + else { + PyErr_Clear(); + } if (!success && pgGetArrayStruct(obj, &cobj, &inter_p) == 0) { if (pgArrayStruct_AsBuffer(pg_view_p, cobj, inter_p, flags)) { From 4356e63f3489a004e5c0070989a7f75b9708d620 Mon Sep 17 00:00:00 2001 From: Ankith Date: Mon, 1 Jan 2024 15:18:15 +0530 Subject: [PATCH 02/31] 2.4.0 --- docs/reST/conf.py | 2 +- setup.py | 2 +- src_c/include/_pygame.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/reST/conf.py b/docs/reST/conf.py index 21843744f2..e50622eb50 100644 --- a/docs/reST/conf.py +++ b/docs/reST/conf.py @@ -49,7 +49,7 @@ # The short X.Y version. version = '2.4.0' # The full version, including alpha/beta/rc tags. -release = '2.4.0.dev5' +release = '2.4.0' # Format strings for the version directives versionadded_format = 'New in pygame-ce %s' diff --git a/setup.py b/setup.py index 5297e73d70..909b7ba412 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ METADATA = { "name": "pygame-ce", - "version": "2.4.0.dev5", + "version": "2.4.0", "license": "LGPL", "url": "https://pyga.me", "author": "A community project.", diff --git a/src_c/include/_pygame.h b/src_c/include/_pygame.h index 96387585c7..df0e9173a6 100644 --- a/src_c/include/_pygame.h +++ b/src_c/include/_pygame.h @@ -60,7 +60,7 @@ #define PG_PATCH_VERSION 0 /* The below is of the form ".devX" for dev releases, and "" (empty) for full * releases */ -#define PG_VERSION_TAG ".dev5" +#define PG_VERSION_TAG "" #define PG_VERSIONNUM(MAJOR, MINOR, PATCH) \ (1000 * (MAJOR) + 100 * (MINOR) + (PATCH)) #define PG_VERSION_ATLEAST(MAJOR, MINOR, PATCH) \ From ac880038e1adc5f4058041a0dcbd573cbbde0339 Mon Sep 17 00:00:00 2001 From: Starbuck5 <46412508+Starbuck5@users.noreply.github.com> Date: Sun, 18 Feb 2024 13:38:45 -0800 Subject: [PATCH 03/31] Start 2.4.1 --- docs/reST/conf.py | 4 ++-- setup.py | 2 +- src_c/include/_pygame.h | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/reST/conf.py b/docs/reST/conf.py index e50622eb50..d46d567db9 100644 --- a/docs/reST/conf.py +++ b/docs/reST/conf.py @@ -47,9 +47,9 @@ # built documents. # # The short X.Y version. -version = '2.4.0' +version = '2.4.1' # The full version, including alpha/beta/rc tags. -release = '2.4.0' +release = '2.4.1.dev1' # Format strings for the version directives versionadded_format = 'New in pygame-ce %s' diff --git a/setup.py b/setup.py index 909b7ba412..0e2f7441d5 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ METADATA = { "name": "pygame-ce", - "version": "2.4.0", + "version": "2.4.1.dev1", "license": "LGPL", "url": "https://pyga.me", "author": "A community project.", diff --git a/src_c/include/_pygame.h b/src_c/include/_pygame.h index df0e9173a6..c937862494 100644 --- a/src_c/include/_pygame.h +++ b/src_c/include/_pygame.h @@ -57,10 +57,10 @@ /* version macros (defined since version 1.9.5) */ #define PG_MAJOR_VERSION 2 #define PG_MINOR_VERSION 4 -#define PG_PATCH_VERSION 0 +#define PG_PATCH_VERSION 1 /* The below is of the form ".devX" for dev releases, and "" (empty) for full * releases */ -#define PG_VERSION_TAG "" +#define PG_VERSION_TAG ".dev1" #define PG_VERSIONNUM(MAJOR, MINOR, PATCH) \ (1000 * (MAJOR) + 100 * (MINOR) + (PATCH)) #define PG_VERSION_ATLEAST(MAJOR, MINOR, PATCH) \ From f2a7600005f1be3a02ab5ca5a048ecab0f00ccec Mon Sep 17 00:00:00 2001 From: zoldalma999 <46655437+zoldalma999@users.noreply.github.com> Date: Sat, 30 Dec 2023 16:42:12 +0100 Subject: [PATCH 04/31] Merge pull request #2640 from pygame-community/ankith26-newbuf-check Remove `HAVE_NEWBUF` checks in tests --- src_c/_pygame.h | 6 ---- src_c/mixer.c | 3 +- src_c/pgcompat.h | 4 --- test/base_test.py | 8 ++--- test/bufferproxy_test.py | 1 - test/color_test.py | 1 - test/freetype_test.py | 1 - test/mixer_test.py | 2 -- test/pixelarray_test.py | 4 +-- test/pixelcopy_test.py | 68 ++++++++++++++++++------------------- test/surface_test.py | 6 ---- test/test_utils/buftools.py | 3 -- 12 files changed, 37 insertions(+), 70 deletions(-) diff --git a/src_c/_pygame.h b/src_c/_pygame.h index 090e9ee1e7..4f99b9a64a 100644 --- a/src_c/_pygame.h +++ b/src_c/_pygame.h @@ -349,12 +349,6 @@ typedef enum { PGS_PREALLOC = 0x01000000 } PygameSurfaceFlags; -// TODO Implement check below in a way that does not break CI -/* New buffer protocol (PEP 3118) implemented on all supported Py versions. -#if !defined(Py_TPFLAGS_HAVE_NEWBUFFER) -#error No support for PEP 3118/Py_TPFLAGS_HAVE_NEWBUFFER. Please use a -supported Python version. #endif */ - #define RAISE(x, y) (PyErr_SetString((x), (y)), NULL) #define RAISERETURN(x, y, r) \ PyErr_SetString((x), (y)); \ diff --git a/src_c/mixer.c b/src_c/mixer.c index 78e3a91671..51097bbab8 100644 --- a/src_c/mixer.c +++ b/src_c/mixer.c @@ -1005,8 +1005,7 @@ static PyTypeObject pgSound_Type = { .tp_basicsize = sizeof(pgSoundObject), .tp_dealloc = (destructor)sound_dealloc, .tp_as_buffer = sound_as_buffer, - .tp_flags = - (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_NEWBUFFER), + .tp_flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE), .tp_doc = DOC_MIXER_SOUND, .tp_weaklistoffset = offsetof(pgSoundObject, weakreflist), .tp_methods = sound_methods, diff --git a/src_c/pgcompat.h b/src_c/pgcompat.h index fc0b32e050..f2f1c8787e 100644 --- a/src_c/pgcompat.h +++ b/src_c/pgcompat.h @@ -17,8 +17,4 @@ #define RELATIVE_MODULE(m) ("." m) -#ifndef Py_TPFLAGS_HAVE_NEWBUFFER -#define Py_TPFLAGS_HAVE_NEWBUFFER 0 -#endif - #endif /* ~PGCOMPAT_INTERNAL_H */ diff --git a/test/base_test.py b/test/base_test.py index 1ba8934f99..0959295338 100644 --- a/test/base_test.py +++ b/test/base_test.py @@ -193,8 +193,7 @@ def get__array_struct__(self): o = Exporter(shape, typechar, itemsize) self.assertEqual(getrefcount(o.__array_struct__), 1) - if pygame.HAVE_NEWBUF: - from pygame.tests.test_utils import buftools + from pygame.tests.test_utils import buftools def NEWBUF_assertSame(self, proxy, exp): buftools = self.buftools @@ -209,7 +208,6 @@ def NEWBUF_assertSame(self, proxy, exp): self.assertEqual(imp.strides, exp.strides) self.assertTrue(imp.suboffsets is None) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") @unittest.skipIf(IS_PYPY, "pypy no likey") def test_newbuf(self): from pygame.bufferproxy import BufferProxy @@ -250,7 +248,6 @@ def test_newbuf(self): v = BufferProxy(o) self.NEWBUF_assertSame(v, o) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") def test_bad_format(self): from pygame.bufferproxy import BufferProxy from pygame.newbuffer import BufferMixin @@ -280,7 +277,6 @@ def test_bad_format(self): b = BufferProxy(exp) self.assertRaises(ValueError, Importer, b, PyBUF_FORMAT) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") @unittest.skipIf(IS_PYPY, "fails on pypy") def test_PgDict_AsBuffer_PyBUF_flags(self): from pygame.bufferproxy import BufferProxy @@ -382,7 +378,7 @@ def test_PgDict_AsBuffer_PyBUF_flags(self): self.assertEqual(b.buf, 1000000) self.assertRaises(BufferError, Importer, a, buftools.PyBUF_FULL) - @unittest.skipIf(IS_PYPY or (not pygame.HAVE_NEWBUF), "newbuf with ctypes") + @unittest.skipIf(IS_PYPY, "newbuf with ctypes") def test_PgObject_AsBuffer_PyBUF_flags(self): from pygame.bufferproxy import BufferProxy import ctypes diff --git a/test/bufferproxy_test.py b/test/bufferproxy_test.py index e7aab63855..bd0b22f4c3 100644 --- a/test/bufferproxy_test.py +++ b/test/bufferproxy_test.py @@ -255,7 +255,6 @@ def __repr__(self): self.assertEqual(r[:2], "*<") self.assertEqual(r[-2:], ">*") - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") def NEWBUF_test_newbuf(self): from ctypes import string_at diff --git a/test/color_test.py b/test/color_test.py index 8c637fba97..546d25ca7a 100644 --- a/test/color_test.py +++ b/test/color_test.py @@ -1088,7 +1088,6 @@ def test_arraystruct(self): for j in range(i): self.assertEqual(data[j], c[j]) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") def test_newbuf(self): from pygame.tests.test_utils import buftools from ctypes import cast, POINTER, c_uint8 diff --git a/test/freetype_test.py b/test/freetype_test.py index 3aebb49d8d..6c7f06b1cd 100644 --- a/test/freetype_test.py +++ b/test/freetype_test.py @@ -1246,7 +1246,6 @@ def test_freetype_Font_bgcolor(self): self.assertRaises(AttributeError, setattr, f, "bgcolor", None) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") @unittest.skipIf(IS_PYPY, "pypy no likey") def test_newbuf(self): from pygame.tests.test_utils import buftools diff --git a/test/mixer_test.py b/test/mixer_test.py index 1808b2f894..3400c375dd 100644 --- a/test/mixer_test.py +++ b/test/mixer_test.py @@ -359,13 +359,11 @@ def test_array_interface(self): self.assertEqual(d["strides"], (2,)) self.assertEqual(d["data"], (snd._samples_address, False)) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") @unittest.skipIf(IS_PYPY, "pypy no likey") def test_newbuf__one_channel(self): mixer.init(22050, -16, 1) self._NEWBUF_export_check() - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") @unittest.skipIf(IS_PYPY, "pypy no likey") def test_newbuf__twho_channel(self): mixer.init(22050, -16, 2) diff --git a/test/pixelarray_test.py b/test/pixelarray_test.py index c097e7e1f3..c070dfe188 100644 --- a/test/pixelarray_test.py +++ b/test/pixelarray_test.py @@ -1450,11 +1450,9 @@ def test_slicing(self): self.assert_surfaces_equal(sf3, sf2) -@unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") @unittest.skipIf(IS_PYPY, "pypy having issues") class PixelArrayNewBufferTest(unittest.TestCase, TestMixin): - if pygame.HAVE_NEWBUF: - from pygame.tests.test_utils import buftools + from pygame.tests.test_utils import buftools bitsize_to_format = {8: "B", 16: "=H", 24: "3x", 32: "=I"} diff --git a/test/pixelcopy_test.py b/test/pixelcopy_test.py index 6510fd99e1..b0541952b9 100644 --- a/test/pixelcopy_test.py +++ b/test/pixelcopy_test.py @@ -593,43 +593,41 @@ def test_map_array(self): del numpy -@unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") @unittest.skipIf(IS_PYPY, "pypy having illegal instruction on mac") class PixelCopyTestWithArrayNewBuf(unittest.TestCase): - if pygame.HAVE_NEWBUF: - from pygame.tests.test_utils import buftools - - class Array2D(buftools.Exporter): - def __init__(self, initializer): - from ctypes import cast, POINTER, c_uint32 - - Array2D = PixelCopyTestWithArrayNewBuf.Array2D - super().__init__((3, 5), format="=I", strides=(20, 4)) - self.content = cast(self.buf, POINTER(c_uint32)) - for i, v in enumerate(initializer): - self.content[i] = v - - def __getitem__(self, key): - byte_index = key[0] * 5 + key[1] - if not (0 <= byte_index < 15): - raise IndexError("%s is out of range", key) - return self.content[byte_index] - - class Array3D(buftools.Exporter): - def __init__(self, initializer): - from ctypes import cast, POINTER, c_uint8 - - Array3D = PixelCopyTestWithArrayNewBuf.Array3D - super().__init__((3, 5, 3), format="B", strides=(20, 4, 1)) - self.content = cast(self.buf, POINTER(c_uint8)) - for i, v in enumerate(initializer): - self.content[i] = v - - def __getitem__(self, key): - byte_index = key[0] * 20 + key[1] * 4 + key[2] - if not (0 <= byte_index < 60): - raise IndexError("%s is out of range", key) - return self.content[byte_index] + from pygame.tests.test_utils import buftools + + class Array2D(buftools.Exporter): + def __init__(self, initializer): + from ctypes import cast, POINTER, c_uint32 + + Array2D = PixelCopyTestWithArrayNewBuf.Array2D + super().__init__((3, 5), format="=I", strides=(20, 4)) + self.content = cast(self.buf, POINTER(c_uint32)) + for i, v in enumerate(initializer): + self.content[i] = v + + def __getitem__(self, key): + byte_index = key[0] * 5 + key[1] + if not (0 <= byte_index < 15): + raise IndexError("%s is out of range", key) + return self.content[byte_index] + + class Array3D(buftools.Exporter): + def __init__(self, initializer): + from ctypes import cast, POINTER, c_uint8 + + Array3D = PixelCopyTestWithArrayNewBuf.Array3D + super().__init__((3, 5, 3), format="B", strides=(20, 4, 1)) + self.content = cast(self.buf, POINTER(c_uint8)) + for i, v in enumerate(initializer): + self.content[i] = v + + def __getitem__(self, key): + byte_index = key[0] * 20 + key[1] * 4 + key[2] + if not (0 <= byte_index < 60): + raise IndexError("%s is out of range", key) + return self.content[byte_index] surface = pygame.Surface((3, 5), 0, 32) diff --git a/test/surface_test.py b/test/surface_test.py index 1314f723fb..fd64ac1e19 100644 --- a/test/surface_test.py +++ b/test/surface_test.py @@ -3001,7 +3001,6 @@ def test_array_interface_rgb(self): s = pygame.Surface((4, 2), 0, 32) self._check_interface_rgba(s, plane) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") def test_newbuf_PyBUF_flags_bytes(self): from pygame.tests.test_utils import buftools @@ -3061,7 +3060,6 @@ def test_newbuf_PyBUF_flags_bytes(self): self.assertEqual(b.ndim, 1) self.assertEqual(b.strides, (1,)) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") def test_newbuf_PyBUF_flags_0D(self): # This is the same handler as used by get_buffer(), so just # confirm that it succeeds for one case. @@ -3081,7 +3079,6 @@ def test_newbuf_PyBUF_flags_0D(self): self.assertFalse(b.readonly) self.assertEqual(b.buf, s._pixels_address) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") def test_newbuf_PyBUF_flags_1D(self): from pygame.tests.test_utils import buftools @@ -3120,7 +3117,6 @@ def test_newbuf_PyBUF_flags_1D(self): self.assertTrue(b.format is None) self.assertEqual(b.strides, (s.get_bytesize(),)) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") def test_newbuf_PyBUF_flags_2D(self): from pygame.tests.test_utils import buftools @@ -3191,7 +3187,6 @@ def test_newbuf_PyBUF_flags_2D(self): self.assertRaises(BufferError, Importer, a, buftools.PyBUF_F_CONTIGUOUS) self.assertRaises(BufferError, Importer, a, buftools.PyBUF_ANY_CONTIGUOUS) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") def test_newbuf_PyBUF_flags_3D(self): from pygame.tests.test_utils import buftools @@ -3242,7 +3237,6 @@ def test_newbuf_PyBUF_flags_3D(self): self.assertRaises(BufferError, Importer, a, buftools.PyBUF_F_CONTIGUOUS) self.assertRaises(BufferError, Importer, a, buftools.PyBUF_ANY_CONTIGUOUS) - @unittest.skipIf(not pygame.HAVE_NEWBUF, "newbuf not implemented") def test_newbuf_PyBUF_flags_rgba(self): # All color plane views are handled by the same routine, # so only one plane need be checked. diff --git a/test/test_utils/buftools.py b/test/test_utils/buftools.py index 19ae89057d..9c26002760 100644 --- a/test/test_utils/buftools.py +++ b/test/test_utils/buftools.py @@ -21,9 +21,6 @@ """ import pygame -if not pygame.HAVE_NEWBUF: - emsg = "This Pygame build does not support the new buffer protocol" - raise ImportError(emsg) import pygame.newbuffer from pygame.newbuffer import ( PyBUF_SIMPLE, From ac0307b1d263676ed1fea69b47806b7b37c2fdbf Mon Sep 17 00:00:00 2001 From: Charlie Hayden <46412508+Starbuck5@users.noreply.github.com> Date: Thu, 4 Jan 2024 00:32:36 -0800 Subject: [PATCH 05/31] Merge pull request #2641 from pygame-community/ankith26-mp3-obj-test Add mp3 file-like object tests --- test/mixer_music_test.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/mixer_music_test.py b/test/mixer_music_test.py index 8f0d7ad30b..8cdb5f27ac 100644 --- a/test/mixer_music_test.py +++ b/test/mixer_music_test.py @@ -55,6 +55,9 @@ def music_load(self, filename): def test_load_object(self): """test loading music from file-like objects.""" filenames = ["house_lo.ogg", "house_lo.wav", "surfonasinewave.xm"] + if pygame.mixer.get_sdl_mixer_version() >= (2, 6, 0): + filenames.append("house_lo.mp3") + data_fname = example_path("data") for file in filenames: path = os.path.join(data_fname, file) @@ -68,6 +71,9 @@ def test_load_object(self): def test_object_namehint(self): """test loading & queuing music from file-like objects with namehint argument.""" filenames = ["house_lo.ogg", "house_lo.wav", "surfonasinewave.xm"] + if pygame.mixer.get_sdl_mixer_version() >= (2, 6, 0): + filenames.append("house_lo.mp3") + data_fname = example_path("data") for file in filenames: path = os.path.join(data_fname, file) From c3e60198873168826686e4da1c3ac1248bb26c60 Mon Sep 17 00:00:00 2001 From: Dan Lawrence Date: Fri, 5 Jan 2024 08:30:38 +0000 Subject: [PATCH 06/31] Merge pull request #2647 from pygame-community/ankith26-optional-tests Don't skip tests if "optional" modules are absent --- test/freetype_tags.py | 11 ----------- test/freetype_test.py | 6 +----- test/ftfont_tags.py | 11 ----------- test/image_tags.py | 7 ------- test/imageext_tags.py | 7 ------- test/mixer_music_tags.py | 7 ------- test/mixer_tags.py | 7 ------- test/sndarray_tags.py | 1 - test/surfarray_tags.py | 5 ----- 9 files changed, 1 insertion(+), 61 deletions(-) delete mode 100644 test/freetype_tags.py delete mode 100644 test/ftfont_tags.py delete mode 100644 test/image_tags.py delete mode 100644 test/imageext_tags.py delete mode 100644 test/mixer_music_tags.py delete mode 100644 test/mixer_tags.py diff --git a/test/freetype_tags.py b/test/freetype_tags.py deleted file mode 100644 index d84cbb77a3..0000000000 --- a/test/freetype_tags.py +++ /dev/null @@ -1,11 +0,0 @@ -__tags__ = ["development"] - -exclude = False - -try: - import pygame.freetype -except ImportError: - exclude = True - -if exclude: - __tags__.extend(["ignore", "subprocess_ignore"]) diff --git a/test/freetype_test.py b/test/freetype_test.py index 6c7f06b1cd..e5c766ef5e 100644 --- a/test/freetype_test.py +++ b/test/freetype_test.py @@ -17,11 +17,7 @@ import pygame -try: - import pygame.freetype as ft -except ImportError: - ft = None - +import pygame.freetype as ft FONTDIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "fixtures", "fonts") diff --git a/test/ftfont_tags.py b/test/ftfont_tags.py deleted file mode 100644 index 0d538f476b..0000000000 --- a/test/ftfont_tags.py +++ /dev/null @@ -1,11 +0,0 @@ -__tags__ = ["development"] - -exclude = False - -try: - import pygame.ftfont -except ImportError: - exclude = True - -if exclude: - __tags__.extend(["ignore", "subprocess_ignore"]) diff --git a/test/image_tags.py b/test/image_tags.py deleted file mode 100644 index d847903d10..0000000000 --- a/test/image_tags.py +++ /dev/null @@ -1,7 +0,0 @@ -__tags__ = [] - -import pygame -import sys - -if "pygame.image" not in sys.modules: - __tags__.extend(("ignore", "subprocess_ignore")) diff --git a/test/imageext_tags.py b/test/imageext_tags.py deleted file mode 100644 index 25cff74380..0000000000 --- a/test/imageext_tags.py +++ /dev/null @@ -1,7 +0,0 @@ -__tags__ = [] - -import pygame -import sys - -if "pygame.imageext" not in sys.modules: - __tags__.extend(("ignore", "subprocess_ignore")) diff --git a/test/mixer_music_tags.py b/test/mixer_music_tags.py deleted file mode 100644 index 30f68937ce..0000000000 --- a/test/mixer_music_tags.py +++ /dev/null @@ -1,7 +0,0 @@ -__tags__ = [] - -import pygame -import sys - -if "pygame.mixer_music" not in sys.modules: - __tags__.extend(("ignore", "subprocess_ignore")) diff --git a/test/mixer_tags.py b/test/mixer_tags.py deleted file mode 100644 index 06a9de2a73..0000000000 --- a/test/mixer_tags.py +++ /dev/null @@ -1,7 +0,0 @@ -__tags__ = [] - -import pygame -import sys - -if "pygame.mixer" not in sys.modules: - __tags__.extend(("ignore", "subprocess_ignore")) diff --git a/test/sndarray_tags.py b/test/sndarray_tags.py index 68fa7a5bdd..5e24b93580 100644 --- a/test/sndarray_tags.py +++ b/test/sndarray_tags.py @@ -3,7 +3,6 @@ exclude = False try: - import pygame.mixer import numpy except ImportError: exclude = True diff --git a/test/surfarray_tags.py b/test/surfarray_tags.py index baa535cef8..5e24b93580 100644 --- a/test/surfarray_tags.py +++ b/test/surfarray_tags.py @@ -6,11 +6,6 @@ import numpy except ImportError: exclude = True -else: - try: - import pygame.pixelcopy - except ImportError: - exclude = True if exclude: __tags__.extend(("ignore", "subprocess_ignore")) From a1617d8eebd8c70cb46b9e831d89c030f72bc4e4 Mon Sep 17 00:00:00 2001 From: Ankith Date: Sat, 6 Jan 2024 19:11:45 +0530 Subject: [PATCH 07/31] Merge pull request #2653 from pygame-community/Setup-png-jpeg support emsdk >3.1.51 --- buildconfig/Setup.Emscripten.SDL2.in | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/buildconfig/Setup.Emscripten.SDL2.in b/buildconfig/Setup.Emscripten.SDL2.in index 0bd60a3023..23b22f5766 100644 --- a/buildconfig/Setup.Emscripten.SDL2.in +++ b/buildconfig/Setup.Emscripten.SDL2.in @@ -7,6 +7,10 @@ #SCRAP = #FREETYPE = -lfreetype -lharfbuzz +# png and jpeg are needed for decoders in SDL_image, when not using emscripten preload api because its async +# which is the case for both pygbag or wasi (no browser, no emscripten js api emulation) +PNG = -lpng +JPEG = -ljpeg DEBUG = # these can build alone and object files merged with ar From e251f3f6b069db1b4936b85d713c38e6eb2dbb8a Mon Sep 17 00:00:00 2001 From: Ankith Date: Sat, 6 Jan 2024 21:12:07 +0530 Subject: [PATCH 08/31] Merge pull request #2612 from pygame-community/dependabot/github_actions/actions/upload-artifact-4 Bump actions/upload-artifact from 3 to 4 --- .github/workflows/build-emsdk.yml | 2 +- .github/workflows/build-macos.yml | 7 ++++--- .github/workflows/build-manylinux.yml | 5 +++-- .github/workflows/build-ubuntu-sdist.yml | 3 ++- .github/workflows/build-windows.yml | 5 +++-- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-emsdk.yml b/.github/workflows/build-emsdk.yml index cde87316b7..b00730dd52 100644 --- a/.github/workflows/build-emsdk.yml +++ b/.github/workflows/build-emsdk.yml @@ -89,7 +89,7 @@ jobs: # Upload the generated files under github actions assets section - name: Upload dist - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pygame-wasm-dist path: ./dist/* diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 2ccd8a9637..b919f49754 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -68,7 +68,7 @@ jobs: # Uncomment when you want to manually verify the deps by downloading them # - name: Upload Mac deps - # uses: actions/upload-artifact@v3 + # uses: actions/upload-artifact@v4 # with: # name: pygame-mac-deps-${{ matrix.macarch }} # path: ${{ github.workspace }}/pygame_mac_deps_${{ matrix.macarch }} @@ -179,8 +179,9 @@ jobs: - name: Build and test wheels uses: pypa/cibuildwheel@v2.16.2 - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: - name: pygame-wheels-macos + name: pygame-wheels-macos-${{ matrix.name }} path: ./wheelhouse/*.whl + compression-level: 0 # wheels are already zip files, no need for more compression diff --git a/.github/workflows/build-manylinux.yml b/.github/workflows/build-manylinux.yml index 05059546da..62530dab72 100644 --- a/.github/workflows/build-manylinux.yml +++ b/.github/workflows/build-manylinux.yml @@ -122,8 +122,9 @@ jobs: # We upload the generated files under github actions assets - name: Upload dist - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: pygame-wheels-manylinux + name: pygame-wheels-manylinux-${{ matrix.arch }} path: ./wheelhouse/*.whl + compression-level: 0 # wheels are already zip files, no need for more compression diff --git a/.github/workflows/build-ubuntu-sdist.yml b/.github/workflows/build-ubuntu-sdist.yml index 31638913a7..c7d64ac8be 100644 --- a/.github/workflows/build-ubuntu-sdist.yml +++ b/.github/workflows/build-ubuntu-sdist.yml @@ -88,8 +88,9 @@ jobs: # We upload the generated files under github actions assets - name: Upload sdist if: matrix.os == 'ubuntu-20.04' # upload sdist only once - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pygame-wheels-sdist path: dist/*.tar.gz + compression-level: 0 # already compressed, no need for more compression diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 3f02f21164..1cd46b2844 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -161,7 +161,8 @@ jobs: python -m pip --disable-pip-version-check install cibuildwheel==2.16.2 python -m cibuildwheel --output-dir wheelhouse - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: - name: pygame-wheels-windows + name: pygame-wheels-windows-${{ matrix.name }} path: ./wheelhouse/*.whl + compression-level: 0 # wheels are already zip files, no need for more compression From 01998b2fcfd070959c3e502252f2c6c285f203e1 Mon Sep 17 00:00:00 2001 From: Ankith Date: Sat, 6 Jan 2024 21:12:24 +0530 Subject: [PATCH 09/31] Merge pull request #2613 from pygame-community/dependabot/github_actions/actions/download-artifact-4 Bump actions/download-artifact from 3 to 4 --- .github/workflows/release-gh-draft.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release-gh-draft.yml b/.github/workflows/release-gh-draft.yml index 4c7a705c62..a88ddbe21f 100644 --- a/.github/workflows/release-gh-draft.yml +++ b/.github/workflows/release-gh-draft.yml @@ -36,7 +36,10 @@ jobs: - uses: actions/checkout@v4.1.1 - name: Download all artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 + with: + path: pygame-wheels + merge-multiple: true - name: Download manylinux-aarch64 artifacts from CircleCI continue-on-error: true # incase things don't work here, can manually handle it @@ -44,7 +47,7 @@ jobs: python3 buildconfig/ci/circleci/pull_circleci_artifacts.py ${{ secrets.CCI_TOKEN }} ${{ needs.manylinux-aarch64.outputs.pipeline_id }} - pygame-wheels-manylinux + pygame-wheels # Strips 'release/' from the ref_name, this helps us access the version # name as 'steps.ver.outputs.VER' @@ -57,7 +60,7 @@ jobs: with: draft: true prerelease: ${{ contains(steps.ver.outputs.VER, 'dev') }} - files: pygame-wheels-*/* + files: pygame-wheels/* name: '${{ steps.ver.outputs.VER }} - {TODO put a title here} [DRAFTED BY CI]' tag_name: ${{ steps.ver.outputs.VER }} target_commitish: ${{ github.ref_name }} From 8d58c99bece209452af85cc0f474359f4fcceb6e Mon Sep 17 00:00:00 2001 From: Ankith Date: Sat, 13 Jan 2024 22:53:56 +0530 Subject: [PATCH 10/31] Merge pull request #2663 from pygame-community/dependabot/github_actions/docker/metadata-action-5.5.0 Bump docker/metadata-action from 5.4.0 to 5.5.0 --- .github/workflows/build-manylinux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-manylinux.yml b/.github/workflows/build-manylinux.yml index 62530dab72..0bc38c7727 100644 --- a/.github/workflows/build-manylinux.yml +++ b/.github/workflows/build-manylinux.yml @@ -95,7 +95,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@31cebacef4805868f9ce9a0cb03ee36c32df2ac4 + uses: docker/metadata-action@dbef88086f6cef02e264edb7dbf63250c17cef6c with: images: ghcr.io/${{ github.repository }}_${{ matrix.arch }} tags: type=raw,value=${{ hashFiles('buildconfig/manylinux-build/**') }} From dbea7ad504124f477b6ce7208e746735ecc372b9 Mon Sep 17 00:00:00 2001 From: Charlie Hayden <46412508+Starbuck5@users.noreply.github.com> Date: Mon, 15 Jan 2024 00:05:34 -0800 Subject: [PATCH 11/31] Merge pull request #2671 from pygame-community/dependabot/github_actions/actions/cache-3.3.3 Bump actions/cache from 3.3.2 to 3.3.3 --- .github/workflows/build-emsdk.yml | 2 +- .github/workflows/build-macos.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-emsdk.yml b/.github/workflows/build-emsdk.yml index b00730dd52..26208e6c84 100644 --- a/.github/workflows/build-emsdk.yml +++ b/.github/workflows/build-emsdk.yml @@ -51,7 +51,7 @@ jobs: - name: Cache Cython id: cache-cython - uses: actions/cache@v3.3.2 + uses: actions/cache@v3.3.3 with: path: ${{ env.WHEELHOUSE_CYTHON }} key: wasm-ubuntu-cython-${{ env.LATEST_CYTHON_COMMIT }}-path-${{ env.WHEELHOUSE_CYTHON }} diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index b919f49754..7ccb2bdc54 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -49,7 +49,7 @@ jobs: - name: Test for Mac Deps cache hit id: macdep-cache - uses: actions/cache@v3.3.2 + uses: actions/cache@v3.3.3 with: path: ${{ github.workspace }}/pygame_mac_deps_${{ matrix.macarch }} # The hash of all files in buildconfig manylinux-build and macdependencies is @@ -163,14 +163,14 @@ jobs: - uses: actions/checkout@v4.1.1 - name: pip cache - uses: actions/cache@v3.3.2 + uses: actions/cache@v3.3.3 with: path: ~/Library/Caches/pip # This cache path is only right on mac key: pip-cache-${{ matrix.name }} - name: Fetch Mac deps id: macdep-cache - uses: actions/cache@v3.3.2 + uses: actions/cache@v3.3.3 with: path: ${{ github.workspace }}/pygame_mac_deps_${{ matrix.macarch }} key: macdep-${{ hashFiles('buildconfig/manylinux-build/**') }}-${{ hashFiles('buildconfig/macdependencies/*.sh') }}-${{ matrix.macarch }} From c5bacc0c6ebec1163e131cc64ef171a90843ceb0 Mon Sep 17 00:00:00 2001 From: Ankith Date: Mon, 15 Jan 2024 23:31:48 +0530 Subject: [PATCH 12/31] Merge pull request #2669 from Matiiss/matiiss-update-bug-report-template Update bug report template --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index db5980bbcf..e80e9c9c0c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -16,7 +16,7 @@ You can get some of this info from the text that pops up in the console when you - **Operating system** (e.g. Windows, Linux(Debian), Linux(Ubuntu), Mac): - **Python version** (e.g. 3.11.1, 3.8.5) : - **SDL version** (e.g. SDL 2.0.12): -- **PyGame version** (e.g. 2.0.0.dev10, 1.9.6): +- **pygame-ce version** (e.g. 2.4.0.dev4, 2.1.3): - **Relevant hardware** (e.g. if reporting a bug about a controller, tell us the brand & name of it): **Current behavior:** From a673cbea24dc390b23b69677e185fe4e3b8accac Mon Sep 17 00:00:00 2001 From: Charlie Hayden <46412508+Starbuck5@users.noreply.github.com> Date: Wed, 17 Jan 2024 00:12:13 -0800 Subject: [PATCH 13/31] Merge pull request #2633 from Matiiss/matiiss-improve-window-flip-err-msg Improved `Window.flip` error message when no surface is associated with the `Window` --- src_c/window.c | 9 ++++++++- test/window_test.py | 9 +++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src_c/window.c b/src_c/window.c index fddbc6f374..0c4ce65cb1 100644 --- a/src_c/window.c +++ b/src_c/window.c @@ -183,11 +183,18 @@ window_flip(pgWindowObject *self) { int result; + if (!self->surf) { + return RAISE(pgExc_SDLError, + "the Window has no surface associated with it, did " + "you forget to call Window.get_surface()"); + } + Py_BEGIN_ALLOW_THREADS; result = SDL_UpdateWindowSurface(self->_win); Py_END_ALLOW_THREADS; - if (result) + if (result) { return RAISE(pgExc_SDLError, SDL_GetError()); + } Py_RETURN_NONE; } diff --git a/test/window_test.py b/test/window_test.py index 4b6b9fdd3a..302ccc78a4 100644 --- a/test/window_test.py +++ b/test/window_test.py @@ -360,6 +360,15 @@ def test_window_flip(self): self.assertIs(win.flip(), None) win.destroy() + # creates a new window with no surface associated + win = Window(size=(640, 480)) + self.assertRaisesRegex( + pygame.error, + "the Window has no surface associated with it, did you forget to call Window.get_surface()", + win.flip, + ) + win.destroy() + def tearDown(self): self.win.destroy() From d7ecc2964696d98aa07ce7e66356445e27eec642 Mon Sep 17 00:00:00 2001 From: Ankith Date: Fri, 19 Jan 2024 10:24:55 +0530 Subject: [PATCH 14/31] Merge pull request #2667 from Matiiss/matiiss-fix-fblits-segfault Fix segfault in `surface.fblits` --- src_c/surface.c | 10 +++++++--- test/blit_test.py | 3 +++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src_c/surface.c b/src_c/surface.c index dc5f6e91a8..a123e3d5c8 100644 --- a/src_c/surface.c +++ b/src_c/surface.c @@ -2145,6 +2145,7 @@ surf_fblits(pgSurfaceObject *self, PyObject *const *args, Py_ssize_t nargs) PyObject *blit_sequence, *item, *src_surf, *blit_pos; int blend_flags = 0; /* Default flag is 0, opaque */ int error = 0; + int is_generator = 0; if (nargs == 0 || nargs > 2) { error = FBLITS_ERR_INCORRECT_ARGS_NUM; @@ -2216,11 +2217,11 @@ surf_fblits(pgSurfaceObject *self, PyObject *const *args, Py_ssize_t nargs) } /* Generator path */ else if (PyIter_Check(blit_sequence)) { + is_generator = 1; while ((item = PyIter_Next(blit_sequence))) { /* Check that the item is a tuple of length 2 */ if (!PyTuple_Check(item) || PyTuple_GET_SIZE(item) != 2) { error = FBLITS_ERR_TUPLE_REQUIRED; - Py_DECREF(item); goto on_error; } @@ -2229,8 +2230,6 @@ surf_fblits(pgSurfaceObject *self, PyObject *const *args, Py_ssize_t nargs) src_surf = PyTuple_GET_ITEM(item, 0); blit_pos = PyTuple_GET_ITEM(item, 1); - Py_DECREF(item); - /* Check that the source is a Surface */ if (!pgSurface_Check(src_surf)) { error = BLITS_ERR_SOURCE_NOT_SURFACE; @@ -2262,6 +2261,8 @@ surf_fblits(pgSurfaceObject *self, PyObject *const *args, Py_ssize_t nargs) error = BLITS_ERR_BLIT_FAIL; goto on_error; } + + Py_DECREF(item); } } else { @@ -2272,6 +2273,9 @@ surf_fblits(pgSurfaceObject *self, PyObject *const *args, Py_ssize_t nargs) Py_RETURN_NONE; on_error: + if (is_generator) { + Py_XDECREF(item); + } switch (error) { case BLITS_ERR_SEQUENCE_REQUIRED: return RAISE( diff --git a/test/blit_test.py b/test/blit_test.py index 2ff96a9bfe..7d02093ba5 100644 --- a/test/blit_test.py +++ b/test/blit_test.py @@ -163,6 +163,9 @@ def blits(blit_list): self.assertEqual(dst.fblits(blit_list, 0), None) self.assertEqual(dst.fblits(blit_list, 1), dst.blits(blit_list, doreturn=0)) + # make sure this doesn't segfault + dst.fblits((dst, dst.get_rect().topleft) for _ in range(1)) + t0 = time() results = blits(blit_list) t1 = time() From a8a89497bb8f09e07daec492d0d0eb5f679f6af0 Mon Sep 17 00:00:00 2001 From: Ankith Date: Fri, 19 Jan 2024 11:36:32 +0530 Subject: [PATCH 15/31] Merge pull request #2674 from pygame-community/sdl-image-2.8.2 Update to SDL_image 2.8.2 --- buildconfig/download_win_prebuilt.py | 8 ++++---- .../docker_base/sdl_libs/build-sdl2-libs.sh | 2 +- .../manylinux-build/docker_base/sdl_libs/sdl2.sha512 | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/buildconfig/download_win_prebuilt.py b/buildconfig/download_win_prebuilt.py index 276bc59793..cfd6346f5e 100644 --- a/buildconfig/download_win_prebuilt.py +++ b/buildconfig/download_win_prebuilt.py @@ -82,8 +82,8 @@ def get_urls(x86=True, x64=True): '7469e9ea44d30a48b0510328cd94b25596e0aa0f', ], [ - 'https://github.com/pygame-community/SDL_image/releases/download/2.8.0-pgce/SDL2_image-devel-2.8.0-VCpgce.zip', - 'da6b6a18f1c53baa775394e769059404925e98d7' + 'https://github.com/pygame-community/SDL_image/releases/download/2.8.2-pgce/SDL2_image-devel-2.8.2-VCpgce.zip', + '983484dd816abf25cdd5bce88ac69dbca1ea713a' ], [ 'https://github.com/libsdl-org/SDL_ttf/releases/download/release-2.20.2/SDL2_ttf-devel-2.20.2-VC.zip', @@ -201,12 +201,12 @@ def copy(src, dst): copy( os.path.join( temp_dir, - 'SDL2_image-devel-2.8.0-VCpgce/SDL2_image-2.8.0' + 'SDL2_image-devel-2.8.2-VCpgce/SDL2_image-2.8.2' ), os.path.join( move_to_dir, prebuilt_dir, - 'SDL2_image-2.8.0' + 'SDL2_image-2.8.2' ) ) copy( diff --git a/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh b/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh index a7ba8d55a6..7df3a14167 100644 --- a/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh +++ b/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh @@ -4,7 +4,7 @@ set -e -x cd $(dirname `readlink -f "$0"`) SDL2="SDL2-2.28.5" -IMG2="SDL2_image-2.8.0" +IMG2="SDL2_image-2.8.2" TTF2="SDL2_ttf-2.20.2" MIX2="SDL2_mixer-2.6.3" diff --git a/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 b/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 index 98b828dce6..7aeac6178d 100644 --- a/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 +++ b/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 @@ -1,4 +1,4 @@ 12593eb78fcca877a8dfb78cf21a4e6feba7dc87c964de378ac462b36d8e41ecb587222cb41d5f56dd35b838e1b9867b8ae0cf2f4d2a01afaf23ac8c11edc84d SDL2-2.28.5.tar.gz -b58eb45e5d80a4467ca58672dd74ccf99cc84b9546ad5a3b6fca8caa4cd81351e611eef8aa98e5592f21d326358afe120a9b89e747274d7efa5f5e2c39504ff6 SDL2_image-2.8.0.tar.gz +0ff345824f95158dfa72f83f9d4a540601c178cd759334bf849c14a2920b5330d0763413b58c08b3deba8d3a4ccb6ea2a8159f87efe4cbb0e8ea850f63d09454 SDL2_image-2.8.2.tar.gz 2e9da045d2fdab97236c3901b3d441834a67a47c8851ddfb817c9db6f23ed9fb355a5ef8d2158d0c9959a83934e8cd1b95db8a69eaddf8f7fcca115f01818740 SDL2_mixer-2.6.3.tar.gz b54e93b100712e3764cd80d4e4b16cd4c2a6853620f675941a4214320b0ee29a583d57ad56cd5fdb5c7a32d7615cbf43bc3fa55337b01623cee7219ebb43667c SDL2_ttf-2.20.2.tar.gz From 57c3ee7c7699ce5df24c2e4d872a0d0c7ab70834 Mon Sep 17 00:00:00 2001 From: Ankith Date: Sun, 21 Jan 2024 00:16:19 +0530 Subject: [PATCH 16/31] Merge pull request #2678 from Starbuck5/fix-sysfont-bold-italic Fix sysfont bold italic --- src_py/sysfont.py | 2 +- test/sysfont_test.py | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src_py/sysfont.py b/src_py/sysfont.py index 403c84548b..f7577a76d5 100644 --- a/src_py/sysfont.py +++ b/src_py/sysfont.py @@ -466,7 +466,7 @@ def SysFont(name, size, bold=False, italic=False, constructor=None): name[idx] = single_name.decode() for single_name in name: - fontname, gotbold, gotitalic = _load_single_font(single_name) + fontname, gotbold, gotitalic = _load_single_font(single_name, bold, italic) if fontname: break diff --git a/test/sysfont_test.py b/test/sysfont_test.py index 774654a5e3..4b45f018ef 100644 --- a/test/sysfont_test.py +++ b/test/sysfont_test.py @@ -31,6 +31,29 @@ def test_sysfont(self): pygame.font.SysFont(None, 40) + @unittest.skipIf("Windows" not in platform.platform(), "Just for windows") + def test_sysfont_settings(self): + import pygame.font + + pygame.font.init() + + # The idea of this test is that we know we can expect Arial bold, Arial italic + # Arial, and Arial italic bold to load different fonts on Windows. If that + # isn't happening it may indicate a problem like + # https://github.com/pygame-community/pygame-ce/issues/2677 + + arial = pygame.font.SysFont("Arial", 40) + arial_bold = pygame.font.SysFont("Arial", 40, bold=True) + arial_italic = pygame.font.SysFont("Arial", 40, italic=True) + arial_bold_italic = pygame.font.SysFont("Arial", 40, bold=True, italic=True) + + self.assertNotEqual(arial.style_name, arial_bold.style_name) + self.assertNotEqual(arial.style_name, arial_italic.style_name) + self.assertNotEqual(arial.style_name, arial_bold_italic.style_name) + self.assertNotEqual(arial_bold.style_name, arial_italic.style_name) + self.assertNotEqual(arial_italic.style_name, arial_bold_italic.style_name) + self.assertNotEqual(arial_bold.style_name, arial_bold_italic.style_name) + @unittest.skipIf( ("Darwin" in platform.platform() or "Windows" in platform.platform()), "Not unix we skip.", From 98622b3f9cdcbce620933b26ce37ee08ba92e5cb Mon Sep 17 00:00:00 2001 From: Charlie Hayden <46412508+Starbuck5@users.noreply.github.com> Date: Tue, 23 Jan 2024 21:25:03 -0800 Subject: [PATCH 17/31] Merge pull request #2688 from pygame-community/matiiss-upgrade-sdl-ttf-2.22.0 Upgrade `SDL_ttf `to `2.22.0`, add test for a bugfix --- buildconfig/download_win_prebuilt.py | 8 ++++---- .../docker_base/sdl_libs/build-sdl2-libs.sh | 2 +- .../docker_base/sdl_libs/sdl2.sha512 | 2 +- test/font_test.py | 19 +++++++++++++++++++ 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/buildconfig/download_win_prebuilt.py b/buildconfig/download_win_prebuilt.py index cfd6346f5e..da37382218 100644 --- a/buildconfig/download_win_prebuilt.py +++ b/buildconfig/download_win_prebuilt.py @@ -86,8 +86,8 @@ def get_urls(x86=True, x64=True): '983484dd816abf25cdd5bce88ac69dbca1ea713a' ], [ - 'https://github.com/libsdl-org/SDL_ttf/releases/download/release-2.20.2/SDL2_ttf-devel-2.20.2-VC.zip', - 'dee48e9c5184c139aa8bcab34a937d1b3df4f503' + 'https://github.com/libsdl-org/SDL_ttf/releases/download/release-2.22.0/SDL2_ttf-devel-2.22.0-VC.zip', + '2d4f131909af2985b5ebc5ed296d28628c87c243' ], [ 'https://github.com/libsdl-org/SDL_mixer/releases/download/release-2.6.2/SDL2_mixer-devel-2.6.2-VC.zip', @@ -223,12 +223,12 @@ def copy(src, dst): copy( os.path.join( temp_dir, - 'SDL2_ttf-devel-2.20.2-VC/SDL2_ttf-2.20.2' + 'SDL2_ttf-devel-2.22.0-VC/SDL2_ttf-2.22.0' ), os.path.join( move_to_dir, prebuilt_dir, - 'SDL2_ttf-2.20.2' + 'SDL2_ttf-2.22.0' ) ) copy( diff --git a/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh b/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh index 7df3a14167..1e0b82e628 100644 --- a/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh +++ b/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh @@ -5,7 +5,7 @@ cd $(dirname `readlink -f "$0"`) SDL2="SDL2-2.28.5" IMG2="SDL2_image-2.8.2" -TTF2="SDL2_ttf-2.20.2" +TTF2="SDL2_ttf-2.22.0" MIX2="SDL2_mixer-2.6.3" diff --git a/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 b/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 index 7aeac6178d..71b3e49e4e 100644 --- a/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 +++ b/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 @@ -1,4 +1,4 @@ 12593eb78fcca877a8dfb78cf21a4e6feba7dc87c964de378ac462b36d8e41ecb587222cb41d5f56dd35b838e1b9867b8ae0cf2f4d2a01afaf23ac8c11edc84d SDL2-2.28.5.tar.gz 0ff345824f95158dfa72f83f9d4a540601c178cd759334bf849c14a2920b5330d0763413b58c08b3deba8d3a4ccb6ea2a8159f87efe4cbb0e8ea850f63d09454 SDL2_image-2.8.2.tar.gz 2e9da045d2fdab97236c3901b3d441834a67a47c8851ddfb817c9db6f23ed9fb355a5ef8d2158d0c9959a83934e8cd1b95db8a69eaddf8f7fcca115f01818740 SDL2_mixer-2.6.3.tar.gz -b54e93b100712e3764cd80d4e4b16cd4c2a6853620f675941a4214320b0ee29a583d57ad56cd5fdb5c7a32d7615cbf43bc3fa55337b01623cee7219ebb43667c SDL2_ttf-2.20.2.tar.gz +34a1d210d8f1b1e802139d65ba47e36033bb7881e75a8862c1b1c515565bef85e3d81ee42e952aa664de043debef387ba60088a9cf3ba3297413db39a13af912 SDL2_ttf-2.22.0.tar.gz diff --git a/test/font_test.py b/test/font_test.py index 258506c281..ffc9e5024c 100644 --- a/test/font_test.py +++ b/test/font_test.py @@ -318,6 +318,25 @@ def test_render_multiline(self): two_lines = f.render("hello\nworld", False, "black", None, 200) self.assertGreater(two_lines.get_height(), one_line.get_height()) + @unittest.skipIf( + pygame.font.get_sdl_ttf_version() < (2, 22, 0), "bug fixed in SDL_ttf 2.22.0" + ) + def test_render_multiple_newlines(self): + if pygame_font.__name__ == "pygame.ftfont": + return + + f = pygame_font.Font(None, 20) + one_newline = f.render("\n", True, "black", "white") + two_newlines = f.render("\n\n", True, "black", "white") + three_newlines = f.render("\n\n\n", True, "black", "white") + self.assertTrue( + one_newline.get_height() + < two_newlines.get_height() + < three_newlines.get_height() + ) + self.assertEqual(one_newline.get_height() * 2, two_newlines.get_height()) + self.assertEqual(one_newline.get_height() * 3, three_newlines.get_height()) + @unittest.skipIf(IS_PYPY, "pypy skip known failure") # TODO class FontTypeTest(unittest.TestCase): From e0affc047db1135adabeefd97e023ad49cf1237a Mon Sep 17 00:00:00 2001 From: Matiiss <83066658+Matiiss@users.noreply.github.com> Date: Sun, 28 Jan 2024 12:14:23 +0200 Subject: [PATCH 18/31] Decref an object because cython increfed it [memory leak] (#2665) * Decref an object because cython increfed it Tests for good measure Added a comment to clarify DECREF usage Skip test on pypy --- src_c/_sdl2/video.c | 3751 ++++++++++++++------------- src_c/cython/pygame/_sdl2/video.pyx | 6 + test/video_test.py | 16 + 3 files changed, 1902 insertions(+), 1871 deletions(-) diff --git a/src_c/_sdl2/video.c b/src_c/_sdl2/video.c index 7bd5fdcfca..0e403f5f41 100644 --- a/src_c/_sdl2/video.c +++ b/src_c/_sdl2/video.c @@ -1415,11 +1415,11 @@ static const char *__pyx_filename; static const char *__pyx_f[] = { "src_c\\\\cython\\\\pygame\\\\_sdl2\\\\video.pyx", - "contextvars.pxd", + "venv\\\\lib\\\\site-packages\\\\Cython\\\\Includes\\\\cpython\\\\contextvars.pxd", "src_c\\\\cython\\\\pygame\\\\_sdl2\\\\video.pxd", - "type.pxd", - "bool.pxd", - "complex.pxd", + "venv\\\\lib\\\\site-packages\\\\Cython\\\\Includes\\\\cpython\\\\type.pxd", + "venv\\\\lib\\\\site-packages\\\\Cython\\\\Includes\\\\cpython\\\\bool.pxd", + "venv\\\\lib\\\\site-packages\\\\Cython\\\\Includes\\\\cpython\\\\complex.pxd", }; /* #### Code section: utility_code_proto_before_types ### */ /* #### Code section: numeric_typedefs ### */ @@ -1560,7 +1560,7 @@ struct __pyx_obj_6pygame_5_sdl2_5video_Image { }; -/* "pygame/_sdl2/video.pyx":36 +/* "pygame/_sdl2/video.pyx":37 * ) * * def get_drivers(): # <<<<<<<<<<<<<< @@ -1578,7 +1578,7 @@ struct __pyx_obj_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers { -/* "pygame/_sdl2/video.pyx":749 +/* "pygame/_sdl2/video.pyx":750 * # disable auto_pickle since it causes stubcheck error * @cython.auto_pickle(False) * cdef class Renderer: # <<<<<<<<<<<<<< @@ -1593,7 +1593,7 @@ struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Renderer { static struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Renderer *__pyx_vtabptr_6pygame_5_sdl2_5video_Renderer; -/* "pygame/_sdl2/video.pyx":171 +/* "pygame/_sdl2/video.pyx":172 * # disable auto_pickle since it causes stubcheck error * @cython.auto_pickle(False) * cdef class Texture: # <<<<<<<<<<<<<< @@ -1607,7 +1607,7 @@ struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Texture { static struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Texture *__pyx_vtabptr_6pygame_5_sdl2_5video_Texture; -/* "pygame/_sdl2/video.pyx":623 +/* "pygame/_sdl2/video.pyx":624 * # disable auto_pickle since it causes stubcheck error * @cython.auto_pickle(False) * cdef class Image: # <<<<<<<<<<<<<< @@ -5018,7 +5018,7 @@ static CYTHON_INLINE PyObject *__pyx_f_7cpython_11contextvars_get_value_no_defau return __pyx_r; } -/* "pygame/_sdl2/video.pyx":26 +/* "pygame/_sdl2/video.pyx":27 * * class RendererDriverInfo: * def __repr__(self): # <<<<<<<<<<<<<< @@ -5068,12 +5068,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 27, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__repr__") < 0)) __PYX_ERR(0, 26, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__repr__") < 0)) __PYX_ERR(0, 27, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; @@ -5084,7 +5084,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 26, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 27, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.RendererDriverInfo.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -5112,7 +5112,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_18RendererDriverInfo___repr__(CY int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); - /* "pygame/_sdl2/video.pyx":27 + /* "pygame/_sdl2/video.pyx":28 * class RendererDriverInfo: * def __repr__(self): * return "<%s(name: %s, flags: 0x%02x, num_texture_formats: %d, max_texture_width: %d, max_texture_height: %d)>" % ( # <<<<<<<<<<<<<< @@ -5121,77 +5121,77 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_18RendererDriverInfo___repr__(CY */ __Pyx_XDECREF(__pyx_r); - /* "pygame/_sdl2/video.pyx":28 + /* "pygame/_sdl2/video.pyx":29 * def __repr__(self): * return "<%s(name: %s, flags: 0x%02x, num_texture_formats: %d, max_texture_width: %d, max_texture_height: %d)>" % ( * self.__class__.__name__, # <<<<<<<<<<<<<< * self.name, * self.flags, */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":29 + /* "pygame/_sdl2/video.pyx":30 * return "<%s(name: %s, flags: 0x%02x, num_texture_formats: %d, max_texture_width: %d, max_texture_height: %d)>" % ( * self.__class__.__name__, * self.name, # <<<<<<<<<<<<<< * self.flags, * self.num_texture_formats, */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - /* "pygame/_sdl2/video.pyx":30 + /* "pygame/_sdl2/video.pyx":31 * self.__class__.__name__, * self.name, * self.flags, # <<<<<<<<<<<<<< * self.num_texture_formats, * self.max_texture_width, */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 30, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - /* "pygame/_sdl2/video.pyx":31 + /* "pygame/_sdl2/video.pyx":32 * self.name, * self.flags, * self.num_texture_formats, # <<<<<<<<<<<<<< * self.max_texture_width, * self.max_texture_height, */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_num_texture_formats); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 31, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_num_texture_formats); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "pygame/_sdl2/video.pyx":32 + /* "pygame/_sdl2/video.pyx":33 * self.flags, * self.num_texture_formats, * self.max_texture_width, # <<<<<<<<<<<<<< * self.max_texture_height, * ) */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_max_texture_width); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 32, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_max_texture_width); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - /* "pygame/_sdl2/video.pyx":33 + /* "pygame/_sdl2/video.pyx":34 * self.num_texture_formats, * self.max_texture_width, * self.max_texture_height, # <<<<<<<<<<<<<< * ) * */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_max_texture_height); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 33, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_max_texture_height); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - /* "pygame/_sdl2/video.pyx":28 + /* "pygame/_sdl2/video.pyx":29 * def __repr__(self): * return "<%s(name: %s, flags: 0x%02x, num_texture_formats: %d, max_texture_width: %d, max_texture_height: %d)>" % ( * self.__class__.__name__, # <<<<<<<<<<<<<< * self.name, * self.flags, */ - __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 28, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); @@ -5212,21 +5212,21 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_18RendererDriverInfo___repr__(CY __pyx_t_5 = 0; __pyx_t_6 = 0; - /* "pygame/_sdl2/video.pyx":27 + /* "pygame/_sdl2/video.pyx":28 * class RendererDriverInfo: * def __repr__(self): * return "<%s(name: %s, flags: 0x%02x, num_texture_formats: %d, max_texture_width: %d, max_texture_height: %d)>" % ( # <<<<<<<<<<<<<< * self.__class__.__name__, * self.name, */ - __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_s_name_s_flags_0x_02x_num_textu, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 27, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_s_name_s_flags_0x_02x_num_textu, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":26 + /* "pygame/_sdl2/video.pyx":27 * * class RendererDriverInfo: * def __repr__(self): # <<<<<<<<<<<<<< @@ -5252,7 +5252,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_18RendererDriverInfo___repr__(CY } static PyObject *__pyx_gb_6pygame_5_sdl2_5video_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */ -/* "pygame/_sdl2/video.pyx":36 +/* "pygame/_sdl2/video.pyx":37 * ) * * def get_drivers(): # <<<<<<<<<<<<<< @@ -5288,12 +5288,12 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_get_drivers(CYTHON_UNUSED PyObje if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers *)Py_None); __Pyx_INCREF(Py_None); - __PYX_ERR(0, 36, __pyx_L1_error) + __PYX_ERR(0, 37, __pyx_L1_error) } else { __Pyx_GOTREF((PyObject *)__pyx_cur_scope); } { - __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6pygame_5_sdl2_5video_2generator, __pyx_codeobj_, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_drivers, __pyx_n_s_get_drivers, __pyx_n_s_pygame__sdl2_video); if (unlikely(!gen)) __PYX_ERR(0, 36, __pyx_L1_error) + __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6pygame_5_sdl2_5video_2generator, __pyx_codeobj_, (PyObject *) __pyx_cur_scope, __pyx_n_s_get_drivers, __pyx_n_s_get_drivers, __pyx_n_s_pygame__sdl2_video); if (unlikely(!gen)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; @@ -5332,9 +5332,9 @@ static PyObject *__pyx_gb_6pygame_5_sdl2_5video_2generator(__pyx_CoroutineObject return NULL; } __pyx_L3_first_run:; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 36, __pyx_L1_error) + if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 37, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":39 + /* "pygame/_sdl2/video.pyx":40 * """Yield info about the rendering drivers available for Renderer objects * """ * cdef int num = SDL_GetNumRenderDrivers() # <<<<<<<<<<<<<< @@ -5343,7 +5343,7 @@ static PyObject *__pyx_gb_6pygame_5_sdl2_5video_2generator(__pyx_CoroutineObject */ __pyx_cur_scope->__pyx_v_num = SDL_GetNumRenderDrivers(); - /* "pygame/_sdl2/video.pyx":42 + /* "pygame/_sdl2/video.pyx":43 * cdef SDL_RendererInfo info * cdef int ind * for ind from 0 <= ind < num: # <<<<<<<<<<<<<< @@ -5353,7 +5353,7 @@ static PyObject *__pyx_gb_6pygame_5_sdl2_5video_2generator(__pyx_CoroutineObject __pyx_t_1 = __pyx_cur_scope->__pyx_v_num; for (__pyx_cur_scope->__pyx_v_ind = 0; __pyx_cur_scope->__pyx_v_ind < __pyx_t_1; __pyx_cur_scope->__pyx_v_ind++) { - /* "pygame/_sdl2/video.pyx":43 + /* "pygame/_sdl2/video.pyx":44 * cdef int ind * for ind from 0 <= ind < num: * SDL_GetRenderDriverInfo(ind, &info) # <<<<<<<<<<<<<< @@ -5362,14 +5362,14 @@ static PyObject *__pyx_gb_6pygame_5_sdl2_5video_2generator(__pyx_CoroutineObject */ (void)(SDL_GetRenderDriverInfo(__pyx_cur_scope->__pyx_v_ind, (&__pyx_cur_scope->__pyx_v_info))); - /* "pygame/_sdl2/video.pyx":44 + /* "pygame/_sdl2/video.pyx":45 * for ind from 0 <= ind < num: * SDL_GetRenderDriverInfo(ind, &info) * ret = RendererDriverInfo() # <<<<<<<<<<<<<< * ret.name = info.name.decode("utf-8") * ret.flags = info.flags */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_RendererDriverInfo); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 44, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_RendererDriverInfo); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -5387,7 +5387,7 @@ static PyObject *__pyx_gb_6pygame_5_sdl2_5video_2generator(__pyx_CoroutineObject PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } @@ -5396,7 +5396,7 @@ static PyObject *__pyx_gb_6pygame_5_sdl2_5video_2generator(__pyx_CoroutineObject __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":45 + /* "pygame/_sdl2/video.pyx":46 * SDL_GetRenderDriverInfo(ind, &info) * ret = RendererDriverInfo() * ret.name = info.name.decode("utf-8") # <<<<<<<<<<<<<< @@ -5404,60 +5404,60 @@ static PyObject *__pyx_gb_6pygame_5_sdl2_5video_2generator(__pyx_CoroutineObject * ret.num_texture_formats = info.num_texture_formats */ __pyx_t_6 = __pyx_cur_scope->__pyx_v_info.name; - __pyx_t_2 = __Pyx_decode_c_string(__pyx_t_6, 0, strlen(__pyx_t_6), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) + __pyx_t_2 = __Pyx_decode_c_string(__pyx_t_6, 0, strlen(__pyx_t_6), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_ret, __pyx_n_s_name_2, __pyx_t_2) < 0) __PYX_ERR(0, 45, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_ret, __pyx_n_s_name_2, __pyx_t_2) < 0) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":46 + /* "pygame/_sdl2/video.pyx":47 * ret = RendererDriverInfo() * ret.name = info.name.decode("utf-8") * ret.flags = info.flags # <<<<<<<<<<<<<< * ret.num_texture_formats = info.num_texture_formats * ret.max_texture_width = info.max_texture_width */ - __pyx_t_2 = __Pyx_PyInt_From_Uint32(__pyx_cur_scope->__pyx_v_info.flags); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_Uint32(__pyx_cur_scope->__pyx_v_info.flags); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_ret, __pyx_n_s_flags, __pyx_t_2) < 0) __PYX_ERR(0, 46, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_ret, __pyx_n_s_flags, __pyx_t_2) < 0) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":47 + /* "pygame/_sdl2/video.pyx":48 * ret.name = info.name.decode("utf-8") * ret.flags = info.flags * ret.num_texture_formats = info.num_texture_formats # <<<<<<<<<<<<<< * ret.max_texture_width = info.max_texture_width * ret.max_texture_height = info.max_texture_height */ - __pyx_t_2 = __Pyx_PyInt_From_Uint32(__pyx_cur_scope->__pyx_v_info.num_texture_formats); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_Uint32(__pyx_cur_scope->__pyx_v_info.num_texture_formats); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_ret, __pyx_n_s_num_texture_formats, __pyx_t_2) < 0) __PYX_ERR(0, 47, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_ret, __pyx_n_s_num_texture_formats, __pyx_t_2) < 0) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":48 + /* "pygame/_sdl2/video.pyx":49 * ret.flags = info.flags * ret.num_texture_formats = info.num_texture_formats * ret.max_texture_width = info.max_texture_width # <<<<<<<<<<<<<< * ret.max_texture_height = info.max_texture_height * yield ret */ - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_info.max_texture_width); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_info.max_texture_width); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_ret, __pyx_n_s_max_texture_width, __pyx_t_2) < 0) __PYX_ERR(0, 48, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_ret, __pyx_n_s_max_texture_width, __pyx_t_2) < 0) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":49 + /* "pygame/_sdl2/video.pyx":50 * ret.num_texture_formats = info.num_texture_formats * ret.max_texture_width = info.max_texture_width * ret.max_texture_height = info.max_texture_height # <<<<<<<<<<<<<< * yield ret * */ - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_info.max_texture_height); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_info.max_texture_height); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_ret, __pyx_n_s_max_texture_height, __pyx_t_2) < 0) __PYX_ERR(0, 49, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_ret, __pyx_n_s_max_texture_height, __pyx_t_2) < 0) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":50 + /* "pygame/_sdl2/video.pyx":51 * ret.max_texture_width = info.max_texture_width * ret.max_texture_height = info.max_texture_height * yield ret # <<<<<<<<<<<<<< @@ -5475,11 +5475,11 @@ static PyObject *__pyx_gb_6pygame_5_sdl2_5video_2generator(__pyx_CoroutineObject return __pyx_r; __pyx_L6_resume_from_yield:; __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; - if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 50, __pyx_L1_error) + if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 51, __pyx_L1_error) } CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); - /* "pygame/_sdl2/video.pyx":36 + /* "pygame/_sdl2/video.pyx":37 * ) * * def get_drivers(): # <<<<<<<<<<<<<< @@ -5507,7 +5507,7 @@ static PyObject *__pyx_gb_6pygame_5_sdl2_5video_2generator(__pyx_CoroutineObject return __pyx_r; } -/* "pygame/_sdl2/video.pyx":53 +/* "pygame/_sdl2/video.pyx":54 * * * def get_grabbed_window(): # <<<<<<<<<<<<<< @@ -5539,7 +5539,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_3get_grabbed_window(CYTHON_UNUSE int __pyx_t_1; __Pyx_RefNannySetupContext("get_grabbed_window", 0); - /* "pygame/_sdl2/video.pyx":59 + /* "pygame/_sdl2/video.pyx":60 * otherwise ``None`` is returned. * """ * cdef SDL_Window *win = SDL_GetGrabbedWindow() # <<<<<<<<<<<<<< @@ -5548,7 +5548,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_3get_grabbed_window(CYTHON_UNUSE */ __pyx_v_win = SDL_GetGrabbedWindow(); - /* "pygame/_sdl2/video.pyx":61 + /* "pygame/_sdl2/video.pyx":62 * cdef SDL_Window *win = SDL_GetGrabbedWindow() * cdef void *ptr * if win: # <<<<<<<<<<<<<< @@ -5558,7 +5558,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_3get_grabbed_window(CYTHON_UNUSE __pyx_t_1 = (__pyx_v_win != 0); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":62 + /* "pygame/_sdl2/video.pyx":63 * cdef void *ptr * if win: * ptr = SDL_GetWindowData(win, "pg_window") # <<<<<<<<<<<<<< @@ -5567,7 +5567,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_3get_grabbed_window(CYTHON_UNUSE */ __pyx_v_ptr = SDL_GetWindowData(__pyx_v_win, ((char const *)"pg_window")); - /* "pygame/_sdl2/video.pyx":63 + /* "pygame/_sdl2/video.pyx":64 * if win: * ptr = SDL_GetWindowData(win, "pg_window") * if not ptr: # <<<<<<<<<<<<<< @@ -5577,7 +5577,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_3get_grabbed_window(CYTHON_UNUSE __pyx_t_1 = (!(__pyx_v_ptr != 0)); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":64 + /* "pygame/_sdl2/video.pyx":65 * ptr = SDL_GetWindowData(win, "pg_window") * if not ptr: * return None # <<<<<<<<<<<<<< @@ -5588,7 +5588,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_3get_grabbed_window(CYTHON_UNUSE __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":63 + /* "pygame/_sdl2/video.pyx":64 * if win: * ptr = SDL_GetWindowData(win, "pg_window") * if not ptr: # <<<<<<<<<<<<<< @@ -5597,7 +5597,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_3get_grabbed_window(CYTHON_UNUSE */ } - /* "pygame/_sdl2/video.pyx":65 + /* "pygame/_sdl2/video.pyx":66 * if not ptr: * return None * return ptr # <<<<<<<<<<<<<< @@ -5609,7 +5609,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_3get_grabbed_window(CYTHON_UNUSE __pyx_r = ((PyObject *)__pyx_v_ptr); goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":61 + /* "pygame/_sdl2/video.pyx":62 * cdef SDL_Window *win = SDL_GetGrabbedWindow() * cdef void *ptr * if win: # <<<<<<<<<<<<<< @@ -5618,7 +5618,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_3get_grabbed_window(CYTHON_UNUSE */ } - /* "pygame/_sdl2/video.pyx":66 + /* "pygame/_sdl2/video.pyx":67 * return None * return ptr * return None # <<<<<<<<<<<<<< @@ -5629,7 +5629,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_3get_grabbed_window(CYTHON_UNUSE __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":53 + /* "pygame/_sdl2/video.pyx":54 * * * def get_grabbed_window(): # <<<<<<<<<<<<<< @@ -5644,7 +5644,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_3get_grabbed_window(CYTHON_UNUSE return __pyx_r; } -/* "pygame/_sdl2/video.pyx":68 +/* "pygame/_sdl2/video.pyx":69 * return None * * def messagebox(title, message, # <<<<<<<<<<<<<< @@ -5692,7 +5692,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject **__pyx_pyargnames[] = {&__pyx_n_s_title,&__pyx_n_s_message,&__pyx_n_s_window,&__pyx_n_s_info,&__pyx_n_s_warn,&__pyx_n_s_error,&__pyx_n_s_buttons,&__pyx_n_s_return_button,&__pyx_n_s_escape_button,0}; PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; - /* "pygame/_sdl2/video.pyx":69 + /* "pygame/_sdl2/video.pyx":70 * * def messagebox(title, message, * Window window=None, # <<<<<<<<<<<<<< @@ -5701,7 +5701,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ values[2] = (PyObject *)((pgWindowObject *)((PyObject *)Py_None)); - /* "pygame/_sdl2/video.pyx":73 + /* "pygame/_sdl2/video.pyx":74 * bint warn=False, * bint error=False, * buttons=('OK', ), # <<<<<<<<<<<<<< @@ -5739,68 +5739,68 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_title)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_message)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("messagebox", 0, 2, 9, 1); __PYX_ERR(0, 68, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("messagebox", 0, 2, 9, 1); __PYX_ERR(0, 69, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_window); if (value) { values[2] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_info); if (value) { values[3] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_warn); if (value) { values[4] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_error); if (value) { values[5] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_buttons); if (value) { values[6] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_return_button); if (value) { values[7] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_escape_button); if (value) { values[8] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "messagebox") < 0)) __PYX_ERR(0, 68, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "messagebox") < 0)) __PYX_ERR(0, 69, __pyx_L3_error) } } else { switch (__pyx_nargs) { @@ -5828,10 +5828,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_message = values[1]; __pyx_v_window = ((pgWindowObject *)values[2]); if (values[3]) { - __pyx_v_info = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_info == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 70, __pyx_L3_error) + __pyx_v_info = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_info == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error) } else { - /* "pygame/_sdl2/video.pyx":70 + /* "pygame/_sdl2/video.pyx":71 * def messagebox(title, message, * Window window=None, * bint info=False, # <<<<<<<<<<<<<< @@ -5841,10 +5841,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_info = ((int)((int)0)); } if (values[4]) { - __pyx_v_warn = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_warn == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L3_error) + __pyx_v_warn = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_warn == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 72, __pyx_L3_error) } else { - /* "pygame/_sdl2/video.pyx":71 + /* "pygame/_sdl2/video.pyx":72 * Window window=None, * bint info=False, * bint warn=False, # <<<<<<<<<<<<<< @@ -5854,10 +5854,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_warn = ((int)((int)0)); } if (values[5]) { - __pyx_v_error = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_error == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 72, __pyx_L3_error) + __pyx_v_error = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_error == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 73, __pyx_L3_error) } else { - /* "pygame/_sdl2/video.pyx":72 + /* "pygame/_sdl2/video.pyx":73 * bint info=False, * bint warn=False, * bint error=False, # <<<<<<<<<<<<<< @@ -5872,16 +5872,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("messagebox", 0, 2, 9, __pyx_nargs); __PYX_ERR(0, 68, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("messagebox", 0, 2, 9, __pyx_nargs); __PYX_ERR(0, 69, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.messagebox", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_window), __pyx_ptype_6pygame_5_sdl2_5video_Window, 1, "window", 0))) __PYX_ERR(0, 69, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_window), __pyx_ptype_6pygame_5_sdl2_5video_Window, 1, "window", 0))) __PYX_ERR(0, 70, __pyx_L1_error) __pyx_r = __pyx_pf_6pygame_5_sdl2_5video_5messagebox(__pyx_self, __pyx_v_title, __pyx_v_message, __pyx_v_window, __pyx_v_info, __pyx_v_warn, __pyx_v_error, __pyx_v_buttons, __pyx_v_return_button, __pyx_v_escape_button); - /* "pygame/_sdl2/video.pyx":68 + /* "pygame/_sdl2/video.pyx":69 * return None * * def messagebox(title, message, # <<<<<<<<<<<<<< @@ -5931,7 +5931,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje __Pyx_INCREF(__pyx_v_title); __Pyx_INCREF(__pyx_v_message); - /* "pygame/_sdl2/video.pyx":92 + /* "pygame/_sdl2/video.pyx":93 * # TODO: type check * # TODO: color scheme * cdef SDL_MessageBoxButtonData* c_buttons = NULL # <<<<<<<<<<<<<< @@ -5940,7 +5940,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_c_buttons = NULL; - /* "pygame/_sdl2/video.pyx":95 + /* "pygame/_sdl2/video.pyx":96 * * cdef SDL_MessageBoxData data * data.flags = 0 # <<<<<<<<<<<<<< @@ -5949,7 +5949,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_data.flags = 0; - /* "pygame/_sdl2/video.pyx":96 + /* "pygame/_sdl2/video.pyx":97 * cdef SDL_MessageBoxData data * data.flags = 0 * if warn: # <<<<<<<<<<<<<< @@ -5958,7 +5958,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ if (__pyx_v_warn) { - /* "pygame/_sdl2/video.pyx":97 + /* "pygame/_sdl2/video.pyx":98 * data.flags = 0 * if warn: * data.flags |= _SDL_MESSAGEBOX_WARNING # <<<<<<<<<<<<<< @@ -5967,7 +5967,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_data.flags = (__pyx_v_data.flags | SDL_MESSAGEBOX_WARNING); - /* "pygame/_sdl2/video.pyx":96 + /* "pygame/_sdl2/video.pyx":97 * cdef SDL_MessageBoxData data * data.flags = 0 * if warn: # <<<<<<<<<<<<<< @@ -5976,7 +5976,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ } - /* "pygame/_sdl2/video.pyx":98 + /* "pygame/_sdl2/video.pyx":99 * if warn: * data.flags |= _SDL_MESSAGEBOX_WARNING * if error: # <<<<<<<<<<<<<< @@ -5985,7 +5985,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ if (__pyx_v_error) { - /* "pygame/_sdl2/video.pyx":99 + /* "pygame/_sdl2/video.pyx":100 * data.flags |= _SDL_MESSAGEBOX_WARNING * if error: * data.flags |= _SDL_MESSAGEBOX_ERROR # <<<<<<<<<<<<<< @@ -5994,7 +5994,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_data.flags = (__pyx_v_data.flags | SDL_MESSAGEBOX_ERROR); - /* "pygame/_sdl2/video.pyx":98 + /* "pygame/_sdl2/video.pyx":99 * if warn: * data.flags |= _SDL_MESSAGEBOX_WARNING * if error: # <<<<<<<<<<<<<< @@ -6003,7 +6003,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ } - /* "pygame/_sdl2/video.pyx":100 + /* "pygame/_sdl2/video.pyx":101 * if error: * data.flags |= _SDL_MESSAGEBOX_ERROR * if info: # <<<<<<<<<<<<<< @@ -6012,7 +6012,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ if (__pyx_v_info) { - /* "pygame/_sdl2/video.pyx":101 + /* "pygame/_sdl2/video.pyx":102 * data.flags |= _SDL_MESSAGEBOX_ERROR * if info: * data.flags |= _SDL_MESSAGEBOX_INFORMATION # <<<<<<<<<<<<<< @@ -6021,7 +6021,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_data.flags = (__pyx_v_data.flags | SDL_MESSAGEBOX_INFORMATION); - /* "pygame/_sdl2/video.pyx":100 + /* "pygame/_sdl2/video.pyx":101 * if error: * data.flags |= _SDL_MESSAGEBOX_ERROR * if info: # <<<<<<<<<<<<<< @@ -6030,18 +6030,18 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ } - /* "pygame/_sdl2/video.pyx":102 + /* "pygame/_sdl2/video.pyx":103 * if info: * data.flags |= _SDL_MESSAGEBOX_INFORMATION * if not window: # <<<<<<<<<<<<<< * data.window = NULL * else: */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_window)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 102, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_window)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 103, __pyx_L1_error) __pyx_t_2 = (!__pyx_t_1); if (__pyx_t_2) { - /* "pygame/_sdl2/video.pyx":103 + /* "pygame/_sdl2/video.pyx":104 * data.flags |= _SDL_MESSAGEBOX_INFORMATION * if not window: * data.window = NULL # <<<<<<<<<<<<<< @@ -6050,7 +6050,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_data.window = NULL; - /* "pygame/_sdl2/video.pyx":102 + /* "pygame/_sdl2/video.pyx":103 * if info: * data.flags |= _SDL_MESSAGEBOX_INFORMATION * if not window: # <<<<<<<<<<<<<< @@ -6060,7 +6060,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje goto __pyx_L6; } - /* "pygame/_sdl2/video.pyx":105 + /* "pygame/_sdl2/video.pyx":106 * data.window = NULL * else: * data.window = window._win # <<<<<<<<<<<<<< @@ -6073,7 +6073,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje } __pyx_L6:; - /* "pygame/_sdl2/video.pyx":106 + /* "pygame/_sdl2/video.pyx":107 * else: * data.window = window._win * if title is not None: # <<<<<<<<<<<<<< @@ -6083,14 +6083,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje __pyx_t_2 = (__pyx_v_title != Py_None); if (__pyx_t_2) { - /* "pygame/_sdl2/video.pyx":107 + /* "pygame/_sdl2/video.pyx":108 * data.window = window._win * if title is not None: * title = title.encode('utf8') # <<<<<<<<<<<<<< * data.title = title * else: */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_title, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 107, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_title, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; @@ -6108,24 +6108,24 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_n_s_utf8}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 107, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF_SET(__pyx_v_title, __pyx_t_4); __pyx_t_4 = 0; - /* "pygame/_sdl2/video.pyx":108 + /* "pygame/_sdl2/video.pyx":109 * if title is not None: * title = title.encode('utf8') * data.title = title # <<<<<<<<<<<<<< * else: * data.title = NULL */ - __pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_title); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 108, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_title); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 109, __pyx_L1_error) __pyx_v_data.title = __pyx_t_8; - /* "pygame/_sdl2/video.pyx":106 + /* "pygame/_sdl2/video.pyx":107 * else: * data.window = window._win * if title is not None: # <<<<<<<<<<<<<< @@ -6135,7 +6135,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje goto __pyx_L7; } - /* "pygame/_sdl2/video.pyx":110 + /* "pygame/_sdl2/video.pyx":111 * data.title = title * else: * data.title = NULL # <<<<<<<<<<<<<< @@ -6147,14 +6147,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje } __pyx_L7:; - /* "pygame/_sdl2/video.pyx":111 + /* "pygame/_sdl2/video.pyx":112 * else: * data.title = NULL * message = message.encode('utf8') # <<<<<<<<<<<<<< * data.message = message * data.colorScheme = NULL */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_message, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 111, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_message, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; @@ -6172,24 +6172,24 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_n_s_utf8}; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 111, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF_SET(__pyx_v_message, __pyx_t_4); __pyx_t_4 = 0; - /* "pygame/_sdl2/video.pyx":112 + /* "pygame/_sdl2/video.pyx":113 * data.title = NULL * message = message.encode('utf8') * data.message = message # <<<<<<<<<<<<<< * data.colorScheme = NULL * */ - __pyx_t_9 = __Pyx_PyObject_AsString(__pyx_v_message); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_AsString(__pyx_v_message); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) __PYX_ERR(0, 113, __pyx_L1_error) __pyx_v_data.message = __pyx_t_9; - /* "pygame/_sdl2/video.pyx":113 + /* "pygame/_sdl2/video.pyx":114 * message = message.encode('utf8') * data.message = message * data.colorScheme = NULL # <<<<<<<<<<<<<< @@ -6198,18 +6198,18 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_data.colorScheme = NULL; - /* "pygame/_sdl2/video.pyx":116 + /* "pygame/_sdl2/video.pyx":117 * * cdef SDL_MessageBoxButtonData button * if not buttons: # <<<<<<<<<<<<<< * button.flags = _SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT |\ * _SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_buttons); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 116, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_buttons); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 117, __pyx_L1_error) __pyx_t_1 = (!__pyx_t_2); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":117 + /* "pygame/_sdl2/video.pyx":118 * cdef SDL_MessageBoxButtonData button * if not buttons: * button.flags = _SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT |\ # <<<<<<<<<<<<<< @@ -6218,7 +6218,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_button.flags = (SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT | SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT); - /* "pygame/_sdl2/video.pyx":119 + /* "pygame/_sdl2/video.pyx":120 * button.flags = _SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT |\ * _SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT * button.buttonid = 0 # <<<<<<<<<<<<<< @@ -6227,7 +6227,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_button.buttonid = 0; - /* "pygame/_sdl2/video.pyx":120 + /* "pygame/_sdl2/video.pyx":121 * _SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT * button.buttonid = 0 * button.text = "OK" # <<<<<<<<<<<<<< @@ -6236,7 +6236,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_button.text = ((char const *)"OK"); - /* "pygame/_sdl2/video.pyx":121 + /* "pygame/_sdl2/video.pyx":122 * button.buttonid = 0 * button.text = "OK" * data.buttons = &button # <<<<<<<<<<<<<< @@ -6245,7 +6245,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_data.buttons = (&__pyx_v_button); - /* "pygame/_sdl2/video.pyx":122 + /* "pygame/_sdl2/video.pyx":123 * button.text = "OK" * data.buttons = &button * data.numbuttons = 1 # <<<<<<<<<<<<<< @@ -6254,7 +6254,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_data.numbuttons = 1; - /* "pygame/_sdl2/video.pyx":116 + /* "pygame/_sdl2/video.pyx":117 * * cdef SDL_MessageBoxButtonData button * if not buttons: # <<<<<<<<<<<<<< @@ -6264,7 +6264,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje goto __pyx_L8; } - /* "pygame/_sdl2/video.pyx":124 + /* "pygame/_sdl2/video.pyx":125 * data.numbuttons = 1 * else: * buttons_utf8 = [s.encode('utf8') for s in buttons] # <<<<<<<<<<<<<< @@ -6273,32 +6273,32 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ /*else*/ { { /* enter inner scope */ - __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 124, __pyx_L11_error) + __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 125, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_4); if (likely(PyList_CheckExact(__pyx_v_buttons)) || PyTuple_CheckExact(__pyx_v_buttons)) { __pyx_t_5 = __pyx_v_buttons; __Pyx_INCREF(__pyx_t_5); __pyx_t_10 = 0; __pyx_t_11 = NULL; } else { - __pyx_t_10 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_buttons); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 124, __pyx_L11_error) + __pyx_t_10 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_buttons); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 125, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 124, __pyx_L11_error) + __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 125, __pyx_L11_error) } for (;;) { if (likely(!__pyx_t_11)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 124, __pyx_L11_error) + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 125, __pyx_L11_error) #else - __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 124, __pyx_L11_error) + __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 125, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 124, __pyx_L11_error) + __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 125, __pyx_L11_error) #else - __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 124, __pyx_L11_error) + __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 125, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_6); #endif } @@ -6308,7 +6308,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 124, __pyx_L11_error) + else __PYX_ERR(0, 125, __pyx_L11_error) } break; } @@ -6316,7 +6316,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje } __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_s, __pyx_t_6); __pyx_t_6 = 0; - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_s, __pyx_n_s_encode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 124, __pyx_L11_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_s, __pyx_n_s_encode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 125, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = NULL; __pyx_t_7 = 0; @@ -6334,11 +6334,11 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_n_s_utf8}; __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 124, __pyx_L11_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 125, __pyx_L11_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_6))) __PYX_ERR(0, 124, __pyx_L11_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_6))) __PYX_ERR(0, 125, __pyx_L11_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -6352,17 +6352,17 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje __pyx_v_buttons_utf8 = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "pygame/_sdl2/video.pyx":125 + /* "pygame/_sdl2/video.pyx":126 * else: * buttons_utf8 = [s.encode('utf8') for s in buttons] * data.numbuttons = len(buttons) # <<<<<<<<<<<<<< * c_buttons =\ * malloc(data.numbuttons * sizeof(SDL_MessageBoxButtonData)) */ - __pyx_t_10 = PyObject_Length(__pyx_v_buttons); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 125, __pyx_L1_error) + __pyx_t_10 = PyObject_Length(__pyx_v_buttons); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 126, __pyx_L1_error) __pyx_v_data.numbuttons = ((int)__pyx_t_10); - /* "pygame/_sdl2/video.pyx":127 + /* "pygame/_sdl2/video.pyx":128 * data.numbuttons = len(buttons) * c_buttons =\ * malloc(data.numbuttons * sizeof(SDL_MessageBoxButtonData)) # <<<<<<<<<<<<<< @@ -6371,7 +6371,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ __pyx_v_c_buttons = ((SDL_MessageBoxButtonData *)malloc((__pyx_v_data.numbuttons * (sizeof(SDL_MessageBoxButtonData))))); - /* "pygame/_sdl2/video.pyx":128 + /* "pygame/_sdl2/video.pyx":129 * c_buttons =\ * malloc(data.numbuttons * sizeof(SDL_MessageBoxButtonData)) * if not c_buttons: # <<<<<<<<<<<<<< @@ -6381,16 +6381,16 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje __pyx_t_1 = (!(__pyx_v_c_buttons != 0)); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":129 + /* "pygame/_sdl2/video.pyx":130 * malloc(data.numbuttons * sizeof(SDL_MessageBoxButtonData)) * if not c_buttons: * raise MemoryError() # <<<<<<<<<<<<<< * for i, but in enumerate(reversed(buttons_utf8)): * c_buttons[i].flags = 0 */ - PyErr_NoMemory(); __PYX_ERR(0, 129, __pyx_L1_error) + PyErr_NoMemory(); __PYX_ERR(0, 130, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":128 + /* "pygame/_sdl2/video.pyx":129 * c_buttons =\ * malloc(data.numbuttons * sizeof(SDL_MessageBoxButtonData)) * if not c_buttons: # <<<<<<<<<<<<<< @@ -6399,7 +6399,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ } - /* "pygame/_sdl2/video.pyx":130 + /* "pygame/_sdl2/video.pyx":131 * if not c_buttons: * raise MemoryError() * for i, but in enumerate(reversed(buttons_utf8)): # <<<<<<<<<<<<<< @@ -6413,78 +6413,78 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje if (__pyx_t_10 < 0) break; if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10--; if (unlikely((0 < 0))) __PYX_ERR(0, 130, __pyx_L1_error) + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10--; if (unlikely((0 < 0))) __PYX_ERR(0, 131, __pyx_L1_error) #else - __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10--; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 130, __pyx_L1_error) + __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10--; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_XDECREF_SET(__pyx_v_but, __pyx_t_6); __pyx_t_6 = 0; __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4); - __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 130, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = __pyx_t_6; __pyx_t_6 = 0; - /* "pygame/_sdl2/video.pyx":131 + /* "pygame/_sdl2/video.pyx":132 * raise MemoryError() * for i, but in enumerate(reversed(buttons_utf8)): * c_buttons[i].flags = 0 # <<<<<<<<<<<<<< * c_buttons[i].buttonid = data.numbuttons - i - 1 * if c_buttons[i].buttonid == return_button: */ - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 131, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 132, __pyx_L1_error) (__pyx_v_c_buttons[__pyx_t_14]).flags = 0; - /* "pygame/_sdl2/video.pyx":132 + /* "pygame/_sdl2/video.pyx":133 * for i, but in enumerate(reversed(buttons_utf8)): * c_buttons[i].flags = 0 * c_buttons[i].buttonid = data.numbuttons - i - 1 # <<<<<<<<<<<<<< * if c_buttons[i].buttonid == return_button: * c_buttons[i].flags |= _SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT */ - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_data.numbuttons); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_data.numbuttons); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_12 = PyNumber_Subtract(__pyx_t_6, __pyx_v_i); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_12 = PyNumber_Subtract(__pyx_t_6, __pyx_v_i); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_SubtractObjC(__pyx_t_12, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_SubtractObjC(__pyx_t_12, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L1_error) (__pyx_v_c_buttons[__pyx_t_14]).buttonid = __pyx_t_7; - /* "pygame/_sdl2/video.pyx":133 + /* "pygame/_sdl2/video.pyx":134 * c_buttons[i].flags = 0 * c_buttons[i].buttonid = data.numbuttons - i - 1 * if c_buttons[i].buttonid == return_button: # <<<<<<<<<<<<<< * c_buttons[i].flags |= _SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT * if c_buttons[i].buttonid == escape_button: */ - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L1_error) - __pyx_t_6 = __Pyx_PyInt_From_int((__pyx_v_c_buttons[__pyx_t_14]).buttonid); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_From_int((__pyx_v_c_buttons[__pyx_t_14]).buttonid); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_12 = PyObject_RichCompare(__pyx_t_6, __pyx_v_return_button, Py_EQ); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_12 = PyObject_RichCompare(__pyx_t_6, __pyx_v_return_button, Py_EQ); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":134 + /* "pygame/_sdl2/video.pyx":135 * c_buttons[i].buttonid = data.numbuttons - i - 1 * if c_buttons[i].buttonid == return_button: * c_buttons[i].flags |= _SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT # <<<<<<<<<<<<<< * if c_buttons[i].buttonid == escape_button: * c_buttons[i].flags |= _SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT */ - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 135, __pyx_L1_error) (__pyx_v_c_buttons[__pyx_t_14]).flags = ((__pyx_v_c_buttons[__pyx_t_14]).flags | SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT); - /* "pygame/_sdl2/video.pyx":133 + /* "pygame/_sdl2/video.pyx":134 * c_buttons[i].flags = 0 * c_buttons[i].buttonid = data.numbuttons - i - 1 * if c_buttons[i].buttonid == return_button: # <<<<<<<<<<<<<< @@ -6493,33 +6493,33 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ } - /* "pygame/_sdl2/video.pyx":135 + /* "pygame/_sdl2/video.pyx":136 * if c_buttons[i].buttonid == return_button: * c_buttons[i].flags |= _SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT * if c_buttons[i].buttonid == escape_button: # <<<<<<<<<<<<<< * c_buttons[i].flags |= _SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT * c_buttons[i].text = but */ - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 135, __pyx_L1_error) - __pyx_t_12 = __Pyx_PyInt_From_int((__pyx_v_c_buttons[__pyx_t_14]).buttonid); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyInt_From_int((__pyx_v_c_buttons[__pyx_t_14]).buttonid); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_12, __pyx_v_escape_button, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_t_12, __pyx_v_escape_button, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":136 + /* "pygame/_sdl2/video.pyx":137 * c_buttons[i].flags |= _SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT * if c_buttons[i].buttonid == escape_button: * c_buttons[i].flags |= _SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT # <<<<<<<<<<<<<< * c_buttons[i].text = but * data.buttons = c_buttons */ - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L1_error) (__pyx_v_c_buttons[__pyx_t_14]).flags = ((__pyx_v_c_buttons[__pyx_t_14]).flags | SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT); - /* "pygame/_sdl2/video.pyx":135 + /* "pygame/_sdl2/video.pyx":136 * if c_buttons[i].buttonid == return_button: * c_buttons[i].flags |= _SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT * if c_buttons[i].buttonid == escape_button: # <<<<<<<<<<<<<< @@ -6528,18 +6528,18 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ } - /* "pygame/_sdl2/video.pyx":137 + /* "pygame/_sdl2/video.pyx":138 * if c_buttons[i].buttonid == escape_button: * c_buttons[i].flags |= _SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT * c_buttons[i].text = but # <<<<<<<<<<<<<< * data.buttons = c_buttons * */ - __pyx_t_15 = __Pyx_PyObject_AsString(__pyx_v_but); if (unlikely((!__pyx_t_15) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L1_error) - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyObject_AsString(__pyx_v_but); if (unlikely((!__pyx_t_15) && PyErr_Occurred())) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 138, __pyx_L1_error) (__pyx_v_c_buttons[__pyx_t_14]).text = __pyx_t_15; - /* "pygame/_sdl2/video.pyx":130 + /* "pygame/_sdl2/video.pyx":131 * if not c_buttons: * raise MemoryError() * for i, but in enumerate(reversed(buttons_utf8)): # <<<<<<<<<<<<<< @@ -6550,7 +6550,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pygame/_sdl2/video.pyx":138 + /* "pygame/_sdl2/video.pyx":139 * c_buttons[i].flags |= _SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT * c_buttons[i].text = but * data.buttons = c_buttons # <<<<<<<<<<<<<< @@ -6561,7 +6561,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje } __pyx_L8:; - /* "pygame/_sdl2/video.pyx":141 + /* "pygame/_sdl2/video.pyx":142 * * cdef int buttonid * if SDL_ShowMessageBox(&data, &buttonid): # <<<<<<<<<<<<<< @@ -6571,7 +6571,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje __pyx_t_1 = (SDL_ShowMessageBox((&__pyx_v_data), (&__pyx_v_buttonid)) != 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":142 + /* "pygame/_sdl2/video.pyx":143 * cdef int buttonid * if SDL_ShowMessageBox(&data, &buttonid): * free(c_buttons) # <<<<<<<<<<<<<< @@ -6580,14 +6580,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ free(__pyx_v_c_buttons); - /* "pygame/_sdl2/video.pyx":143 + /* "pygame/_sdl2/video.pyx":144 * if SDL_ShowMessageBox(&data, &buttonid): * free(c_buttons) * raise errorfnc() # <<<<<<<<<<<<<< * * free(c_buttons) */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_errorfnc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_errorfnc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; @@ -6605,15 +6605,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 143, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 143, __pyx_L1_error) + __PYX_ERR(0, 144, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":141 + /* "pygame/_sdl2/video.pyx":142 * * cdef int buttonid * if SDL_ShowMessageBox(&data, &buttonid): # <<<<<<<<<<<<<< @@ -6622,7 +6622,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ } - /* "pygame/_sdl2/video.pyx":145 + /* "pygame/_sdl2/video.pyx":146 * raise errorfnc() * * free(c_buttons) # <<<<<<<<<<<<<< @@ -6631,7 +6631,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje */ free(__pyx_v_c_buttons); - /* "pygame/_sdl2/video.pyx":146 + /* "pygame/_sdl2/video.pyx":147 * * free(c_buttons) * return buttonid # <<<<<<<<<<<<<< @@ -6639,13 +6639,13 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje * globals()["Window"] = Window */ __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_buttonid); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 146, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_buttonid); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":68 + /* "pygame/_sdl2/video.pyx":69 * return None * * def messagebox(title, message, # <<<<<<<<<<<<<< @@ -6674,7 +6674,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5messagebox(CYTHON_UNUSED PyObje return __pyx_r; } -/* "pygame/_sdl2/video.pyx":151 +/* "pygame/_sdl2/video.pyx":152 * _Window = Window * * cdef Uint32 format_from_depth(int depth): # <<<<<<<<<<<<<< @@ -6695,7 +6695,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) int __pyx_clineno = 0; __Pyx_RefNannySetupContext("format_from_depth", 0); - /* "pygame/_sdl2/video.pyx":153 + /* "pygame/_sdl2/video.pyx":154 * cdef Uint32 format_from_depth(int depth): * cdef Uint32 Rmask, Gmask, Bmask, Amask * if depth == 16: # <<<<<<<<<<<<<< @@ -6705,7 +6705,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) switch (__pyx_v_depth) { case 16: - /* "pygame/_sdl2/video.pyx":154 + /* "pygame/_sdl2/video.pyx":155 * cdef Uint32 Rmask, Gmask, Bmask, Amask * if depth == 16: * Rmask = 0xF << 8 # <<<<<<<<<<<<<< @@ -6714,7 +6714,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) */ __pyx_v_Rmask = 0xF00; - /* "pygame/_sdl2/video.pyx":155 + /* "pygame/_sdl2/video.pyx":156 * if depth == 16: * Rmask = 0xF << 8 * Gmask = 0xF << 4 # <<<<<<<<<<<<<< @@ -6723,7 +6723,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) */ __pyx_v_Gmask = 0xF0; - /* "pygame/_sdl2/video.pyx":156 + /* "pygame/_sdl2/video.pyx":157 * Rmask = 0xF << 8 * Gmask = 0xF << 4 * Bmask = 0xF # <<<<<<<<<<<<<< @@ -6732,7 +6732,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) */ __pyx_v_Bmask = 0xF; - /* "pygame/_sdl2/video.pyx":157 + /* "pygame/_sdl2/video.pyx":158 * Gmask = 0xF << 4 * Bmask = 0xF * Amask = 0xF << 12 # <<<<<<<<<<<<<< @@ -6741,7 +6741,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) */ __pyx_v_Amask = 0xF000; - /* "pygame/_sdl2/video.pyx":153 + /* "pygame/_sdl2/video.pyx":154 * cdef Uint32 format_from_depth(int depth): * cdef Uint32 Rmask, Gmask, Bmask, Amask * if depth == 16: # <<<<<<<<<<<<<< @@ -6751,7 +6751,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) break; case 0: - /* "pygame/_sdl2/video.pyx":158 + /* "pygame/_sdl2/video.pyx":159 * Bmask = 0xF * Amask = 0xF << 12 * elif depth in (0, 32): # <<<<<<<<<<<<<< @@ -6760,7 +6760,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) */ case 32: - /* "pygame/_sdl2/video.pyx":159 + /* "pygame/_sdl2/video.pyx":160 * Amask = 0xF << 12 * elif depth in (0, 32): * Rmask = 0xFF << 16 # <<<<<<<<<<<<<< @@ -6769,7 +6769,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) */ __pyx_v_Rmask = 0xFF0000; - /* "pygame/_sdl2/video.pyx":160 + /* "pygame/_sdl2/video.pyx":161 * elif depth in (0, 32): * Rmask = 0xFF << 16 * Gmask = 0xFF << 8 # <<<<<<<<<<<<<< @@ -6778,7 +6778,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) */ __pyx_v_Gmask = 0xFF00; - /* "pygame/_sdl2/video.pyx":161 + /* "pygame/_sdl2/video.pyx":162 * Rmask = 0xFF << 16 * Gmask = 0xFF << 8 * Bmask = 0xFF # <<<<<<<<<<<<<< @@ -6787,7 +6787,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) */ __pyx_v_Bmask = 0xFF; - /* "pygame/_sdl2/video.pyx":162 + /* "pygame/_sdl2/video.pyx":163 * Gmask = 0xFF << 8 * Bmask = 0xFF * Amask = 0xFF << 24 # <<<<<<<<<<<<<< @@ -6796,7 +6796,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) */ __pyx_v_Amask = 0xFF000000; - /* "pygame/_sdl2/video.pyx":158 + /* "pygame/_sdl2/video.pyx":159 * Bmask = 0xF * Amask = 0xF << 12 * elif depth in (0, 32): # <<<<<<<<<<<<<< @@ -6806,22 +6806,22 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) break; default: - /* "pygame/_sdl2/video.pyx":164 + /* "pygame/_sdl2/video.pyx":165 * Amask = 0xFF << 24 * else: * raise ValueError("no standard masks exist for given bitdepth with alpha") # <<<<<<<<<<<<<< * return SDL_MasksToPixelFormatEnum(depth, * Rmask, Gmask, Bmask, Amask) */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 164, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 164, __pyx_L1_error) + __PYX_ERR(0, 165, __pyx_L1_error) break; } - /* "pygame/_sdl2/video.pyx":165 + /* "pygame/_sdl2/video.pyx":166 * else: * raise ValueError("no standard masks exist for given bitdepth with alpha") * return SDL_MasksToPixelFormatEnum(depth, # <<<<<<<<<<<<<< @@ -6831,7 +6831,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) __pyx_r = SDL_MasksToPixelFormatEnum(__pyx_v_depth, __pyx_v_Rmask, __pyx_v_Gmask, __pyx_v_Bmask, __pyx_v_Amask); goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":151 + /* "pygame/_sdl2/video.pyx":152 * _Window = Window * * cdef Uint32 format_from_depth(int depth): # <<<<<<<<<<<<<< @@ -6849,7 +6849,7 @@ static Uint32 __pyx_f_6pygame_5_sdl2_5video_format_from_depth(int __pyx_v_depth) return __pyx_r; } -/* "pygame/_sdl2/video.pyx":173 +/* "pygame/_sdl2/video.pyx":174 * cdef class Texture: * * def __init__(self, # <<<<<<<<<<<<<< @@ -6883,7 +6883,7 @@ static int __pyx_pw_6pygame_5_sdl2_5video_7Texture_1__init__(PyObject *__pyx_v_s PyObject **__pyx_pyargnames[] = {&__pyx_n_s_renderer,&__pyx_n_s_size,&__pyx_n_s_depth,&__pyx_n_s_static,&__pyx_n_s_streaming,&__pyx_n_s_target,&__pyx_n_s_scale_quality,0}; PyObject* values[7] = {0,0,0,0,0,0,0}; - /* "pygame/_sdl2/video.pyx":176 + /* "pygame/_sdl2/video.pyx":177 * Renderer renderer, * size, int depth=0, * static=False, streaming=False, # <<<<<<<<<<<<<< @@ -6893,7 +6893,7 @@ static int __pyx_pw_6pygame_5_sdl2_5video_7Texture_1__init__(PyObject *__pyx_v_s values[3] = ((PyObject *)Py_False); values[4] = ((PyObject *)Py_False); - /* "pygame/_sdl2/video.pyx":177 + /* "pygame/_sdl2/video.pyx":178 * size, int depth=0, * static=False, streaming=False, * target=False, scale_quality=None): # <<<<<<<<<<<<<< @@ -6926,54 +6926,54 @@ static int __pyx_pw_6pygame_5_sdl2_5video_7Texture_1__init__(PyObject *__pyx_v_s switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_renderer)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 173, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_size)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 173, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 7, 1); __PYX_ERR(0, 173, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 7, 1); __PYX_ERR(0, 174, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_depth); if (value) { values[2] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 173, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_static); if (value) { values[3] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 173, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_streaming); if (value) { values[4] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 173, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_target); if (value) { values[5] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 173, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_scale_quality); if (value) { values[6] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 173, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 173, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 174, __pyx_L3_error) } } else { switch (__pyx_nargs) { @@ -6996,7 +6996,7 @@ static int __pyx_pw_6pygame_5_sdl2_5video_7Texture_1__init__(PyObject *__pyx_v_s __pyx_v_renderer = ((struct __pyx_obj_6pygame_5_sdl2_5video_Renderer *)values[0]); __pyx_v_size = values[1]; if (values[2]) { - __pyx_v_depth = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_depth == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 175, __pyx_L3_error) + __pyx_v_depth = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_depth == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 176, __pyx_L3_error) } else { __pyx_v_depth = ((int)0); } @@ -7007,16 +7007,16 @@ static int __pyx_pw_6pygame_5_sdl2_5video_7Texture_1__init__(PyObject *__pyx_v_s } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 7, __pyx_nargs); __PYX_ERR(0, 173, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 7, __pyx_nargs); __PYX_ERR(0, 174, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Texture.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_renderer), __pyx_ptype_6pygame_5_sdl2_5video_Renderer, 1, "renderer", 0))) __PYX_ERR(0, 174, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_renderer), __pyx_ptype_6pygame_5_sdl2_5video_Renderer, 1, "renderer", 0))) __PYX_ERR(0, 175, __pyx_L1_error) __pyx_r = __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_v_self), __pyx_v_renderer, __pyx_v_size, __pyx_v_depth, __pyx_v_static, __pyx_v_streaming, __pyx_v_target, __pyx_v_scale_quality); - /* "pygame/_sdl2/video.pyx":173 + /* "pygame/_sdl2/video.pyx":174 * cdef class Texture: * * def __init__(self, # <<<<<<<<<<<<<< @@ -7069,7 +7069,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "pygame/_sdl2/video.pyx":222 + /* "pygame/_sdl2/video.pyx":223 * # TODO: masks * cdef Uint32 format * try: # <<<<<<<<<<<<<< @@ -7085,17 +7085,17 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - /* "pygame/_sdl2/video.pyx":223 + /* "pygame/_sdl2/video.pyx":224 * cdef Uint32 format * try: * format = format_from_depth(depth) # <<<<<<<<<<<<<< * except ValueError as e: * raise e */ - __pyx_t_4 = __pyx_f_6pygame_5_sdl2_5video_format_from_depth(__pyx_v_depth); if (unlikely(__pyx_t_4 == ((Uint32)-1) && PyErr_Occurred())) __PYX_ERR(0, 223, __pyx_L3_error) + __pyx_t_4 = __pyx_f_6pygame_5_sdl2_5video_format_from_depth(__pyx_v_depth); if (unlikely(__pyx_t_4 == ((Uint32)-1) && PyErr_Occurred())) __PYX_ERR(0, 224, __pyx_L3_error) __pyx_v_format = __pyx_t_4; - /* "pygame/_sdl2/video.pyx":222 + /* "pygame/_sdl2/video.pyx":223 * # TODO: masks * cdef Uint32 format * try: # <<<<<<<<<<<<<< @@ -7109,7 +7109,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py goto __pyx_L8_try_end; __pyx_L3_error:; - /* "pygame/_sdl2/video.pyx":224 + /* "pygame/_sdl2/video.pyx":225 * try: * format = format_from_depth(depth) * except ValueError as e: # <<<<<<<<<<<<<< @@ -7119,7 +7119,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); if (__pyx_t_5) { __Pyx_AddTraceback("pygame._sdl2.video.Texture.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(0, 224, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(0, 225, __pyx_L5_except_error) __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); @@ -7127,7 +7127,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py __pyx_v_e = __pyx_t_7; /*try:*/ { - /* "pygame/_sdl2/video.pyx":225 + /* "pygame/_sdl2/video.pyx":226 * format = format_from_depth(depth) * except ValueError as e: * raise e # <<<<<<<<<<<<<< @@ -7135,10 +7135,10 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py * cdef int width, height */ __Pyx_Raise(__pyx_v_e, 0, 0, 0); - __PYX_ERR(0, 225, __pyx_L14_error) + __PYX_ERR(0, 226, __pyx_L14_error) } - /* "pygame/_sdl2/video.pyx":224 + /* "pygame/_sdl2/video.pyx":225 * try: * format = format_from_depth(depth) * except ValueError as e: # <<<<<<<<<<<<<< @@ -7181,7 +7181,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py } goto __pyx_L5_except_error; - /* "pygame/_sdl2/video.pyx":222 + /* "pygame/_sdl2/video.pyx":223 * # TODO: masks * cdef Uint32 format * try: # <<<<<<<<<<<<<< @@ -7197,31 +7197,31 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py __pyx_L8_try_end:; } - /* "pygame/_sdl2/video.pyx":228 + /* "pygame/_sdl2/video.pyx":229 * * cdef int width, height * if len(size) != 2: # <<<<<<<<<<<<<< * raise ValueError('size must have two elements') * width, height = size[0], size[1] */ - __pyx_t_17 = PyObject_Length(__pyx_v_size); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 228, __pyx_L1_error) + __pyx_t_17 = PyObject_Length(__pyx_v_size); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 229, __pyx_L1_error) __pyx_t_18 = (__pyx_t_17 != 2); if (unlikely(__pyx_t_18)) { - /* "pygame/_sdl2/video.pyx":229 + /* "pygame/_sdl2/video.pyx":230 * cdef int width, height * if len(size) != 2: * raise ValueError('size must have two elements') # <<<<<<<<<<<<<< * width, height = size[0], size[1] * if width <= 0 or height <= 0: */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 229, __pyx_L1_error) + __PYX_ERR(0, 230, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":228 + /* "pygame/_sdl2/video.pyx":229 * * cdef int width, height * if len(size) != 2: # <<<<<<<<<<<<<< @@ -7230,25 +7230,25 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ } - /* "pygame/_sdl2/video.pyx":230 + /* "pygame/_sdl2/video.pyx":231 * if len(size) != 2: * raise ValueError('size must have two elements') * width, height = size[0], size[1] # <<<<<<<<<<<<<< * if width <= 0 or height <= 0: * raise ValueError('size must contain two positive values') */ - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_size, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_size, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_size, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_size, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_width = __pyx_t_9; __pyx_v_height = __pyx_t_5; - /* "pygame/_sdl2/video.pyx":231 + /* "pygame/_sdl2/video.pyx":232 * raise ValueError('size must have two elements') * width, height = size[0], size[1] * if width <= 0 or height <= 0: # <<<<<<<<<<<<<< @@ -7266,20 +7266,20 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py __pyx_L22_bool_binop_done:; if (unlikely(__pyx_t_18)) { - /* "pygame/_sdl2/video.pyx":232 + /* "pygame/_sdl2/video.pyx":233 * width, height = size[0], size[1] * if width <= 0 or height <= 0: * raise ValueError('size must contain two positive values') # <<<<<<<<<<<<<< * * cdef int access */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 232, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 232, __pyx_L1_error) + __PYX_ERR(0, 233, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":231 + /* "pygame/_sdl2/video.pyx":232 * raise ValueError('size must have two elements') * width, height = size[0], size[1] * if width <= 0 or height <= 0: # <<<<<<<<<<<<<< @@ -7288,48 +7288,48 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ } - /* "pygame/_sdl2/video.pyx":235 + /* "pygame/_sdl2/video.pyx":236 * * cdef int access * if static: # <<<<<<<<<<<<<< * if streaming or target: * raise ValueError('only one of static, streaming, or target can be true') */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_static); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_static); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 236, __pyx_L1_error) if (__pyx_t_18) { - /* "pygame/_sdl2/video.pyx":236 + /* "pygame/_sdl2/video.pyx":237 * cdef int access * if static: * if streaming or target: # <<<<<<<<<<<<<< * raise ValueError('only one of static, streaming, or target can be true') * access = _SDL_TEXTUREACCESS_STATIC */ - __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_streaming); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_streaming); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 237, __pyx_L1_error) if (!__pyx_t_19) { } else { __pyx_t_18 = __pyx_t_19; goto __pyx_L26_bool_binop_done; } - __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_target); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_target); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 237, __pyx_L1_error) __pyx_t_18 = __pyx_t_19; __pyx_L26_bool_binop_done:; if (unlikely(__pyx_t_18)) { - /* "pygame/_sdl2/video.pyx":237 + /* "pygame/_sdl2/video.pyx":238 * if static: * if streaming or target: * raise ValueError('only one of static, streaming, or target can be true') # <<<<<<<<<<<<<< * access = _SDL_TEXTUREACCESS_STATIC * elif streaming: */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 237, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 237, __pyx_L1_error) + __PYX_ERR(0, 238, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":236 + /* "pygame/_sdl2/video.pyx":237 * cdef int access * if static: * if streaming or target: # <<<<<<<<<<<<<< @@ -7338,7 +7338,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ } - /* "pygame/_sdl2/video.pyx":238 + /* "pygame/_sdl2/video.pyx":239 * if streaming or target: * raise ValueError('only one of static, streaming, or target can be true') * access = _SDL_TEXTUREACCESS_STATIC # <<<<<<<<<<<<<< @@ -7347,7 +7347,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ __pyx_v_access = SDL_TEXTUREACCESS_STATIC; - /* "pygame/_sdl2/video.pyx":235 + /* "pygame/_sdl2/video.pyx":236 * * cdef int access * if static: # <<<<<<<<<<<<<< @@ -7357,48 +7357,48 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py goto __pyx_L24; } - /* "pygame/_sdl2/video.pyx":239 + /* "pygame/_sdl2/video.pyx":240 * raise ValueError('only one of static, streaming, or target can be true') * access = _SDL_TEXTUREACCESS_STATIC * elif streaming: # <<<<<<<<<<<<<< * if static or target: * raise ValueError('only one of static, streaming, or target can be true') */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_streaming); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 239, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_streaming); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 240, __pyx_L1_error) if (__pyx_t_18) { - /* "pygame/_sdl2/video.pyx":240 + /* "pygame/_sdl2/video.pyx":241 * access = _SDL_TEXTUREACCESS_STATIC * elif streaming: * if static or target: # <<<<<<<<<<<<<< * raise ValueError('only one of static, streaming, or target can be true') * access = _SDL_TEXTUREACCESS_STREAMING */ - __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_static); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 240, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_static); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 241, __pyx_L1_error) if (!__pyx_t_19) { } else { __pyx_t_18 = __pyx_t_19; goto __pyx_L29_bool_binop_done; } - __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_target); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 240, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_target); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 241, __pyx_L1_error) __pyx_t_18 = __pyx_t_19; __pyx_L29_bool_binop_done:; if (unlikely(__pyx_t_18)) { - /* "pygame/_sdl2/video.pyx":241 + /* "pygame/_sdl2/video.pyx":242 * elif streaming: * if static or target: * raise ValueError('only one of static, streaming, or target can be true') # <<<<<<<<<<<<<< * access = _SDL_TEXTUREACCESS_STREAMING * elif target: */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 241, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 241, __pyx_L1_error) + __PYX_ERR(0, 242, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":240 + /* "pygame/_sdl2/video.pyx":241 * access = _SDL_TEXTUREACCESS_STATIC * elif streaming: * if static or target: # <<<<<<<<<<<<<< @@ -7407,7 +7407,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ } - /* "pygame/_sdl2/video.pyx":242 + /* "pygame/_sdl2/video.pyx":243 * if static or target: * raise ValueError('only one of static, streaming, or target can be true') * access = _SDL_TEXTUREACCESS_STREAMING # <<<<<<<<<<<<<< @@ -7416,7 +7416,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ __pyx_v_access = SDL_TEXTUREACCESS_STREAMING; - /* "pygame/_sdl2/video.pyx":239 + /* "pygame/_sdl2/video.pyx":240 * raise ValueError('only one of static, streaming, or target can be true') * access = _SDL_TEXTUREACCESS_STATIC * elif streaming: # <<<<<<<<<<<<<< @@ -7426,48 +7426,48 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py goto __pyx_L24; } - /* "pygame/_sdl2/video.pyx":243 + /* "pygame/_sdl2/video.pyx":244 * raise ValueError('only one of static, streaming, or target can be true') * access = _SDL_TEXTUREACCESS_STREAMING * elif target: # <<<<<<<<<<<<<< * if streaming or static: * raise ValueError('only one of static, streaming, or target can be true') */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_target); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_target); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 244, __pyx_L1_error) if (__pyx_t_18) { - /* "pygame/_sdl2/video.pyx":244 + /* "pygame/_sdl2/video.pyx":245 * access = _SDL_TEXTUREACCESS_STREAMING * elif target: * if streaming or static: # <<<<<<<<<<<<<< * raise ValueError('only one of static, streaming, or target can be true') * access = _SDL_TEXTUREACCESS_TARGET */ - __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_streaming); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 244, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_streaming); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 245, __pyx_L1_error) if (!__pyx_t_19) { } else { __pyx_t_18 = __pyx_t_19; goto __pyx_L32_bool_binop_done; } - __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_static); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 244, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_v_static); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 245, __pyx_L1_error) __pyx_t_18 = __pyx_t_19; __pyx_L32_bool_binop_done:; if (unlikely(__pyx_t_18)) { - /* "pygame/_sdl2/video.pyx":245 + /* "pygame/_sdl2/video.pyx":246 * elif target: * if streaming or static: * raise ValueError('only one of static, streaming, or target can be true') # <<<<<<<<<<<<<< * access = _SDL_TEXTUREACCESS_TARGET * else: */ - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 245, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 245, __pyx_L1_error) + __PYX_ERR(0, 246, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":244 + /* "pygame/_sdl2/video.pyx":245 * access = _SDL_TEXTUREACCESS_STREAMING * elif target: * if streaming or static: # <<<<<<<<<<<<<< @@ -7476,7 +7476,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ } - /* "pygame/_sdl2/video.pyx":246 + /* "pygame/_sdl2/video.pyx":247 * if streaming or static: * raise ValueError('only one of static, streaming, or target can be true') * access = _SDL_TEXTUREACCESS_TARGET # <<<<<<<<<<<<<< @@ -7485,7 +7485,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ __pyx_v_access = SDL_TEXTUREACCESS_TARGET; - /* "pygame/_sdl2/video.pyx":243 + /* "pygame/_sdl2/video.pyx":244 * raise ValueError('only one of static, streaming, or target can be true') * access = _SDL_TEXTUREACCESS_STREAMING * elif target: # <<<<<<<<<<<<<< @@ -7495,7 +7495,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py goto __pyx_L24; } - /* "pygame/_sdl2/video.pyx":249 + /* "pygame/_sdl2/video.pyx":250 * else: * # Create static texture by default. * access = _SDL_TEXTUREACCESS_STATIC # <<<<<<<<<<<<<< @@ -7507,7 +7507,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py } __pyx_L24:; - /* "pygame/_sdl2/video.pyx":251 + /* "pygame/_sdl2/video.pyx":252 * access = _SDL_TEXTUREACCESS_STATIC * * self.renderer = renderer # <<<<<<<<<<<<<< @@ -7520,7 +7520,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py __Pyx_DECREF((PyObject *)__pyx_v_self->renderer); __pyx_v_self->renderer = __pyx_v_renderer; - /* "pygame/_sdl2/video.pyx":252 + /* "pygame/_sdl2/video.pyx":253 * * self.renderer = renderer * cdef SDL_Renderer* _renderer = renderer._renderer # <<<<<<<<<<<<<< @@ -7530,7 +7530,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py __pyx_t_20 = __pyx_v_renderer->_renderer; __pyx_v__renderer = __pyx_t_20; - /* "pygame/_sdl2/video.pyx":253 + /* "pygame/_sdl2/video.pyx":254 * self.renderer = renderer * cdef SDL_Renderer* _renderer = renderer._renderer * self._tex = SDL_CreateTexture(_renderer, # <<<<<<<<<<<<<< @@ -7539,7 +7539,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ __pyx_v_self->_tex = SDL_CreateTexture(__pyx_v__renderer, __pyx_v_format, __pyx_v_access, __pyx_v_width, __pyx_v_height); - /* "pygame/_sdl2/video.pyx":257 + /* "pygame/_sdl2/video.pyx":258 * access, * width, height) * if not self._tex: # <<<<<<<<<<<<<< @@ -7549,14 +7549,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py __pyx_t_18 = (!(__pyx_v_self->_tex != 0)); if (unlikely(__pyx_t_18)) { - /* "pygame/_sdl2/video.pyx":258 + /* "pygame/_sdl2/video.pyx":259 * width, height) * if not self._tex: * raise error() # <<<<<<<<<<<<<< * * if not scale_quality is None: */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 258, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = NULL; __pyx_t_5 = 0; @@ -7574,15 +7574,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 258, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 258, __pyx_L1_error) + __PYX_ERR(0, 259, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":257 + /* "pygame/_sdl2/video.pyx":258 * access, * width, height) * if not self._tex: # <<<<<<<<<<<<<< @@ -7591,7 +7591,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ } - /* "pygame/_sdl2/video.pyx":260 + /* "pygame/_sdl2/video.pyx":261 * raise error() * * if not scale_quality is None: # <<<<<<<<<<<<<< @@ -7601,7 +7601,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py __pyx_t_18 = (__pyx_v_scale_quality != Py_None); if (__pyx_t_18) { - /* "pygame/_sdl2/video.pyx":261 + /* "pygame/_sdl2/video.pyx":262 * * if not scale_quality is None: * if SDL_VERSION_ATLEAST(2,0,12): # <<<<<<<<<<<<<< @@ -7611,17 +7611,17 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py __pyx_t_18 = (SDL_VERSION_ATLEAST(2, 0, 12) != 0); if (__pyx_t_18) { - /* "pygame/_sdl2/video.pyx":262 + /* "pygame/_sdl2/video.pyx":263 * if not scale_quality is None: * if SDL_VERSION_ATLEAST(2,0,12): * SDL_SetTextureScaleMode(self._tex,scale_quality) # <<<<<<<<<<<<<< * else: * SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY,{ */ - __pyx_t_21 = ((_pgsdlScaleMode)__Pyx_PyInt_As__pgsdlScaleMode(__pyx_v_scale_quality)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 262, __pyx_L1_error) + __pyx_t_21 = ((_pgsdlScaleMode)__Pyx_PyInt_As__pgsdlScaleMode(__pyx_v_scale_quality)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error) (void)(SDL_SetTextureScaleMode(__pyx_v_self->_tex, __pyx_t_21)); - /* "pygame/_sdl2/video.pyx":261 + /* "pygame/_sdl2/video.pyx":262 * * if not scale_quality is None: * if SDL_VERSION_ATLEAST(2,0,12): # <<<<<<<<<<<<<< @@ -7631,7 +7631,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py goto __pyx_L36; } - /* "pygame/_sdl2/video.pyx":264 + /* "pygame/_sdl2/video.pyx":265 * SDL_SetTextureScaleMode(self._tex,scale_quality) * else: * SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY,{ # <<<<<<<<<<<<<< @@ -7640,32 +7640,32 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ /*else*/ { - /* "pygame/_sdl2/video.pyx":265 + /* "pygame/_sdl2/video.pyx":266 * else: * SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY,{ * 0: b'nearest', # <<<<<<<<<<<<<< * 1: b'linear', * 2: b'best' */ - __pyx_t_8 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 265, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_t_8, __pyx_int_0, __pyx_n_b_nearest) < 0) __PYX_ERR(0, 265, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_8, __pyx_int_1, __pyx_n_b_linear) < 0) __PYX_ERR(0, 265, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_8, __pyx_int_2, __pyx_n_b_best) < 0) __PYX_ERR(0, 265, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_8, __pyx_int_0, __pyx_n_b_nearest) < 0) __PYX_ERR(0, 266, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_8, __pyx_int_1, __pyx_n_b_linear) < 0) __PYX_ERR(0, 266, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_8, __pyx_int_2, __pyx_n_b_best) < 0) __PYX_ERR(0, 266, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":268 + /* "pygame/_sdl2/video.pyx":269 * 1: b'linear', * 2: b'best' * }[scale_quality]) # <<<<<<<<<<<<<< * * self.width, self.height = width, height */ - __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_t_8, __pyx_v_scale_quality); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 268, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_t_8, __pyx_v_scale_quality); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_22 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_22) && PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L1_error) + __pyx_t_22 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_22) && PyErr_Occurred())) __PYX_ERR(0, 269, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":264 + /* "pygame/_sdl2/video.pyx":265 * SDL_SetTextureScaleMode(self._tex,scale_quality) * else: * SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY,{ # <<<<<<<<<<<<<< @@ -7677,7 +7677,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py } __pyx_L36:; - /* "pygame/_sdl2/video.pyx":260 + /* "pygame/_sdl2/video.pyx":261 * raise error() * * if not scale_quality is None: # <<<<<<<<<<<<<< @@ -7686,7 +7686,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py */ } - /* "pygame/_sdl2/video.pyx":270 + /* "pygame/_sdl2/video.pyx":271 * }[scale_quality]) * * self.width, self.height = width, height # <<<<<<<<<<<<<< @@ -7698,7 +7698,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py __pyx_v_self->width = __pyx_t_5; __pyx_v_self->height = __pyx_t_9; - /* "pygame/_sdl2/video.pyx":173 + /* "pygame/_sdl2/video.pyx":174 * cdef class Texture: * * def __init__(self, # <<<<<<<<<<<<<< @@ -7721,7 +7721,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture___init__(struct __pyx_obj_6py return __pyx_r; } -/* "pygame/_sdl2/video.pyx":272 +/* "pygame/_sdl2/video.pyx":273 * self.width, self.height = width, height * * @staticmethod # <<<<<<<<<<<<<< @@ -7775,19 +7775,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_renderer)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 272, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 273, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_surface)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 272, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 273, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("from_surface", 1, 2, 2, 1); __PYX_ERR(0, 272, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("from_surface", 1, 2, 2, 1); __PYX_ERR(0, 273, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "from_surface") < 0)) __PYX_ERR(0, 272, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "from_surface") < 0)) __PYX_ERR(0, 273, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; @@ -7800,13 +7800,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("from_surface", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 272, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("from_surface", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 273, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Texture.from_surface", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_renderer), __pyx_ptype_6pygame_5_sdl2_5video_Renderer, 1, "renderer", 0))) __PYX_ERR(0, 273, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_renderer), __pyx_ptype_6pygame_5_sdl2_5video_Renderer, 1, "renderer", 0))) __PYX_ERR(0, 274, __pyx_L1_error) __pyx_r = __pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(__pyx_v_renderer, __pyx_v_surface); /* function exit code */ @@ -7835,7 +7835,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_surface", 0); - /* "pygame/_sdl2/video.pyx":280 + /* "pygame/_sdl2/video.pyx":281 * """ * # https://wiki.libsdl.org/SDL_CreateTextureFromSurface * if not pgSurface_Check(surface): # <<<<<<<<<<<<<< @@ -7845,20 +7845,20 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ __pyx_t_1 = (!(pgSurface_Check(__pyx_v_surface) != 0)); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":281 + /* "pygame/_sdl2/video.pyx":282 * # https://wiki.libsdl.org/SDL_CreateTextureFromSurface * if not pgSurface_Check(surface): * raise TypeError('2nd argument must be a surface') # <<<<<<<<<<<<<< * cdef Texture self = Texture.__new__(Texture) * self.renderer = renderer */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 281, __pyx_L1_error) + __PYX_ERR(0, 282, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":280 + /* "pygame/_sdl2/video.pyx":281 * """ * # https://wiki.libsdl.org/SDL_CreateTextureFromSurface * if not pgSurface_Check(surface): # <<<<<<<<<<<<<< @@ -7867,19 +7867,19 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ */ } - /* "pygame/_sdl2/video.pyx":282 + /* "pygame/_sdl2/video.pyx":283 * if not pgSurface_Check(surface): * raise TypeError('2nd argument must be a surface') * cdef Texture self = Texture.__new__(Texture) # <<<<<<<<<<<<<< * self.renderer = renderer * cdef SDL_Renderer* _renderer = renderer._renderer */ - __pyx_t_2 = ((PyObject *)__pyx_tp_new_6pygame_5_sdl2_5video_Texture(((PyTypeObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) + __pyx_t_2 = ((PyObject *)__pyx_tp_new_6pygame_5_sdl2_5video_Texture(((PyTypeObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_2); __pyx_v_self = ((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":283 + /* "pygame/_sdl2/video.pyx":284 * raise TypeError('2nd argument must be a surface') * cdef Texture self = Texture.__new__(Texture) * self.renderer = renderer # <<<<<<<<<<<<<< @@ -7892,7 +7892,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ __Pyx_DECREF((PyObject *)__pyx_v_self->renderer); __pyx_v_self->renderer = __pyx_v_renderer; - /* "pygame/_sdl2/video.pyx":284 + /* "pygame/_sdl2/video.pyx":285 * cdef Texture self = Texture.__new__(Texture) * self.renderer = renderer * cdef SDL_Renderer* _renderer = renderer._renderer # <<<<<<<<<<<<<< @@ -7902,7 +7902,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ __pyx_t_3 = __pyx_v_renderer->_renderer; __pyx_v__renderer = __pyx_t_3; - /* "pygame/_sdl2/video.pyx":285 + /* "pygame/_sdl2/video.pyx":286 * self.renderer = renderer * cdef SDL_Renderer* _renderer = renderer._renderer * cdef SDL_Surface *surf_ptr = pgSurface_AsSurface(surface) # <<<<<<<<<<<<<< @@ -7911,7 +7911,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ */ __pyx_v_surf_ptr = pgSurface_AsSurface(__pyx_v_surface); - /* "pygame/_sdl2/video.pyx":286 + /* "pygame/_sdl2/video.pyx":287 * cdef SDL_Renderer* _renderer = renderer._renderer * cdef SDL_Surface *surf_ptr = pgSurface_AsSurface(surface) * self._tex = SDL_CreateTextureFromSurface(_renderer, # <<<<<<<<<<<<<< @@ -7920,7 +7920,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ */ __pyx_v_self->_tex = SDL_CreateTextureFromSurface(__pyx_v__renderer, __pyx_v_surf_ptr); - /* "pygame/_sdl2/video.pyx":288 + /* "pygame/_sdl2/video.pyx":289 * self._tex = SDL_CreateTextureFromSurface(_renderer, * surf_ptr) * if not self._tex: # <<<<<<<<<<<<<< @@ -7930,14 +7930,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ __pyx_t_1 = (!(__pyx_v_self->_tex != 0)); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":289 + /* "pygame/_sdl2/video.pyx":290 * surf_ptr) * if not self._tex: * raise error() # <<<<<<<<<<<<<< * self.width = surface.get_width() * self.height = surface.get_height() */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 289, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; @@ -7955,15 +7955,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 289, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 289, __pyx_L1_error) + __PYX_ERR(0, 290, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":288 + /* "pygame/_sdl2/video.pyx":289 * self._tex = SDL_CreateTextureFromSurface(_renderer, * surf_ptr) * if not self._tex: # <<<<<<<<<<<<<< @@ -7972,14 +7972,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ */ } - /* "pygame/_sdl2/video.pyx":290 + /* "pygame/_sdl2/video.pyx":291 * if not self._tex: * raise error() * self.width = surface.get_width() # <<<<<<<<<<<<<< * self.height = surface.get_height() * return self */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_surface, __pyx_n_s_get_width); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 290, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_surface, __pyx_n_s_get_width); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; @@ -7997,22 +7997,22 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 290, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 290, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->width = __pyx_t_6; - /* "pygame/_sdl2/video.pyx":291 + /* "pygame/_sdl2/video.pyx":292 * raise error() * self.width = surface.get_width() * self.height = surface.get_height() # <<<<<<<<<<<<<< * return self * */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_surface, __pyx_n_s_get_height); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_surface, __pyx_n_s_get_height); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; @@ -8030,15 +8030,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 291, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->height = __pyx_t_6; - /* "pygame/_sdl2/video.pyx":292 + /* "pygame/_sdl2/video.pyx":293 * self.width = surface.get_width() * self.height = surface.get_height() * return self # <<<<<<<<<<<<<< @@ -8050,7 +8050,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":272 + /* "pygame/_sdl2/video.pyx":273 * self.width, self.height = width, height * * @staticmethod # <<<<<<<<<<<<<< @@ -8072,7 +8072,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_2from_surface(struct __ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":294 +/* "pygame/_sdl2/video.pyx":295 * return self * * def __dealloc__(self): # <<<<<<<<<<<<<< @@ -8097,7 +8097,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_7Texture_4__dealloc__(struct __pyx_ob int __pyx_t_1; __Pyx_RefNannySetupContext("__dealloc__", 0); - /* "pygame/_sdl2/video.pyx":295 + /* "pygame/_sdl2/video.pyx":296 * * def __dealloc__(self): * if self._tex: # <<<<<<<<<<<<<< @@ -8107,7 +8107,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_7Texture_4__dealloc__(struct __pyx_ob __pyx_t_1 = (__pyx_v_self->_tex != 0); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":296 + /* "pygame/_sdl2/video.pyx":297 * def __dealloc__(self): * if self._tex: * SDL_DestroyTexture(self._tex) # <<<<<<<<<<<<<< @@ -8116,7 +8116,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_7Texture_4__dealloc__(struct __pyx_ob */ SDL_DestroyTexture(__pyx_v_self->_tex); - /* "pygame/_sdl2/video.pyx":295 + /* "pygame/_sdl2/video.pyx":296 * * def __dealloc__(self): * if self._tex: # <<<<<<<<<<<<<< @@ -8125,7 +8125,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_7Texture_4__dealloc__(struct __pyx_ob */ } - /* "pygame/_sdl2/video.pyx":294 + /* "pygame/_sdl2/video.pyx":295 * return self * * def __dealloc__(self): # <<<<<<<<<<<<<< @@ -8137,7 +8137,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_7Texture_4__dealloc__(struct __pyx_ob __Pyx_RefNannyFinishContext(); } -/* "pygame/_sdl2/video.pyx":298 +/* "pygame/_sdl2/video.pyx":299 * SDL_DestroyTexture(self._tex) * * @property # <<<<<<<<<<<<<< @@ -8174,7 +8174,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha___get__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "pygame/_sdl2/video.pyx":304 + /* "pygame/_sdl2/video.pyx":305 * # https://wiki.libsdl.org/SDL_GetTextureAlphaMod * cdef Uint8 alpha * cdef int res = SDL_GetTextureAlphaMod(self._tex, &alpha) # <<<<<<<<<<<<<< @@ -8183,7 +8183,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha___get__(struct _ */ __pyx_v_res = SDL_GetTextureAlphaMod(__pyx_v_self->_tex, (&__pyx_v_alpha)); - /* "pygame/_sdl2/video.pyx":305 + /* "pygame/_sdl2/video.pyx":306 * cdef Uint8 alpha * cdef int res = SDL_GetTextureAlphaMod(self._tex, &alpha) * if res < 0: # <<<<<<<<<<<<<< @@ -8193,14 +8193,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha___get__(struct _ __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":306 + /* "pygame/_sdl2/video.pyx":307 * cdef int res = SDL_GetTextureAlphaMod(self._tex, &alpha) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * return alpha */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 306, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -8218,15 +8218,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha___get__(struct _ PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 306, __pyx_L1_error) + __PYX_ERR(0, 307, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":305 + /* "pygame/_sdl2/video.pyx":306 * cdef Uint8 alpha * cdef int res = SDL_GetTextureAlphaMod(self._tex, &alpha) * if res < 0: # <<<<<<<<<<<<<< @@ -8235,7 +8235,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha___get__(struct _ */ } - /* "pygame/_sdl2/video.pyx":308 + /* "pygame/_sdl2/video.pyx":309 * raise error() * * return alpha # <<<<<<<<<<<<<< @@ -8243,13 +8243,13 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha___get__(struct _ * @alpha.setter */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyInt_From_Uint8(__pyx_v_alpha); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 308, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_Uint8(__pyx_v_alpha); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":298 + /* "pygame/_sdl2/video.pyx":299 * SDL_DestroyTexture(self._tex) * * @property # <<<<<<<<<<<<<< @@ -8270,7 +8270,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha___get__(struct _ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":310 +/* "pygame/_sdl2/video.pyx":311 * return alpha * * @alpha.setter # <<<<<<<<<<<<<< @@ -8290,7 +8290,7 @@ static int __pyx_pw_6pygame_5_sdl2_5video_7Texture_5alpha_3__set__(PyObject *__p __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); assert(__pyx_arg_new_value); { - __pyx_v_new_value = __Pyx_PyInt_As_Uint8(__pyx_arg_new_value); if (unlikely((__pyx_v_new_value == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 311, __pyx_L3_error) + __pyx_v_new_value = __Pyx_PyInt_As_Uint8(__pyx_arg_new_value); if (unlikely((__pyx_v_new_value == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 312, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -8319,7 +8319,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha_2__set__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - /* "pygame/_sdl2/video.pyx":313 + /* "pygame/_sdl2/video.pyx":314 * def alpha(self, Uint8 new_value): * # https://wiki.libsdl.org/SDL_SetTextureAlphaMod * cdef int res = SDL_SetTextureAlphaMod(self._tex, new_value) # <<<<<<<<<<<<<< @@ -8328,7 +8328,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha_2__set__(struct __pyx_ */ __pyx_v_res = SDL_SetTextureAlphaMod(__pyx_v_self->_tex, __pyx_v_new_value); - /* "pygame/_sdl2/video.pyx":314 + /* "pygame/_sdl2/video.pyx":315 * # https://wiki.libsdl.org/SDL_SetTextureAlphaMod * cdef int res = SDL_SetTextureAlphaMod(self._tex, new_value) * if res < 0: # <<<<<<<<<<<<<< @@ -8338,14 +8338,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha_2__set__(struct __pyx_ __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":315 + /* "pygame/_sdl2/video.pyx":316 * cdef int res = SDL_SetTextureAlphaMod(self._tex, new_value) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * @property */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 315, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -8363,15 +8363,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha_2__set__(struct __pyx_ PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 315, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 315, __pyx_L1_error) + __PYX_ERR(0, 316, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":314 + /* "pygame/_sdl2/video.pyx":315 * # https://wiki.libsdl.org/SDL_SetTextureAlphaMod * cdef int res = SDL_SetTextureAlphaMod(self._tex, new_value) * if res < 0: # <<<<<<<<<<<<<< @@ -8380,7 +8380,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha_2__set__(struct __pyx_ */ } - /* "pygame/_sdl2/video.pyx":310 + /* "pygame/_sdl2/video.pyx":311 * return alpha * * @alpha.setter # <<<<<<<<<<<<<< @@ -8402,7 +8402,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5alpha_2__set__(struct __pyx_ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":317 +/* "pygame/_sdl2/video.pyx":318 * raise error() * * @property # <<<<<<<<<<<<<< @@ -8439,7 +8439,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode___get__(st int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "pygame/_sdl2/video.pyx":326 + /* "pygame/_sdl2/video.pyx":327 * # https://wiki.libsdl.org/SDL_GetTextureBlendMode * cdef SDL_BlendMode blendMode * cdef int res = SDL_GetTextureBlendMode(self._tex, &blendMode) # <<<<<<<<<<<<<< @@ -8448,7 +8448,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode___get__(st */ __pyx_v_res = SDL_GetTextureBlendMode(__pyx_v_self->_tex, (&__pyx_v_blendMode)); - /* "pygame/_sdl2/video.pyx":327 + /* "pygame/_sdl2/video.pyx":328 * cdef SDL_BlendMode blendMode * cdef int res = SDL_GetTextureBlendMode(self._tex, &blendMode) * if res < 0: # <<<<<<<<<<<<<< @@ -8458,14 +8458,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode___get__(st __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":328 + /* "pygame/_sdl2/video.pyx":329 * cdef int res = SDL_GetTextureBlendMode(self._tex, &blendMode) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * return blendMode */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 328, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -8483,15 +8483,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode___get__(st PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 328, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 328, __pyx_L1_error) + __PYX_ERR(0, 329, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":327 + /* "pygame/_sdl2/video.pyx":328 * cdef SDL_BlendMode blendMode * cdef int res = SDL_GetTextureBlendMode(self._tex, &blendMode) * if res < 0: # <<<<<<<<<<<<<< @@ -8500,7 +8500,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode___get__(st */ } - /* "pygame/_sdl2/video.pyx":330 + /* "pygame/_sdl2/video.pyx":331 * raise error() * * return blendMode # <<<<<<<<<<<<<< @@ -8508,13 +8508,13 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode___get__(st * @blend_mode.setter */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyInt_From_SDL_BlendMode(__pyx_v_blendMode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 330, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_SDL_BlendMode(__pyx_v_blendMode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":317 + /* "pygame/_sdl2/video.pyx":318 * raise error() * * @property # <<<<<<<<<<<<<< @@ -8535,7 +8535,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode___get__(st return __pyx_r; } -/* "pygame/_sdl2/video.pyx":332 +/* "pygame/_sdl2/video.pyx":333 * return blendMode * * @blend_mode.setter # <<<<<<<<<<<<<< @@ -8572,17 +8572,17 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode_2__set__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - /* "pygame/_sdl2/video.pyx":335 + /* "pygame/_sdl2/video.pyx":336 * def blend_mode(self, blendMode): * # https://wiki.libsdl.org/SDL_SetTextureBlendMode * cdef int res = SDL_SetTextureBlendMode(self._tex, blendMode) # <<<<<<<<<<<<<< * if res < 0: * raise error() */ - __pyx_t_1 = ((SDL_BlendMode)__Pyx_PyInt_As_SDL_BlendMode(__pyx_v_blendMode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_1 = ((SDL_BlendMode)__Pyx_PyInt_As_SDL_BlendMode(__pyx_v_blendMode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 336, __pyx_L1_error) __pyx_v_res = SDL_SetTextureBlendMode(__pyx_v_self->_tex, __pyx_t_1); - /* "pygame/_sdl2/video.pyx":336 + /* "pygame/_sdl2/video.pyx":337 * # https://wiki.libsdl.org/SDL_SetTextureBlendMode * cdef int res = SDL_SetTextureBlendMode(self._tex, blendMode) * if res < 0: # <<<<<<<<<<<<<< @@ -8592,14 +8592,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode_2__set__(struct __pyx_t_2 = (__pyx_v_res < 0); if (unlikely(__pyx_t_2)) { - /* "pygame/_sdl2/video.pyx":337 + /* "pygame/_sdl2/video.pyx":338 * cdef int res = SDL_SetTextureBlendMode(self._tex, blendMode) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * @property */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 337, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; @@ -8617,15 +8617,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode_2__set__(struct PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 337, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 337, __pyx_L1_error) + __PYX_ERR(0, 338, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":336 + /* "pygame/_sdl2/video.pyx":337 * # https://wiki.libsdl.org/SDL_SetTextureBlendMode * cdef int res = SDL_SetTextureBlendMode(self._tex, blendMode) * if res < 0: # <<<<<<<<<<<<<< @@ -8634,7 +8634,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode_2__set__(struct */ } - /* "pygame/_sdl2/video.pyx":332 + /* "pygame/_sdl2/video.pyx":333 * return blendMode * * @blend_mode.setter # <<<<<<<<<<<<<< @@ -8656,7 +8656,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_10blend_mode_2__set__(struct return __pyx_r; } -/* "pygame/_sdl2/video.pyx":339 +/* "pygame/_sdl2/video.pyx":340 * raise error() * * @property # <<<<<<<<<<<<<< @@ -8693,7 +8693,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5color___get__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "pygame/_sdl2/video.pyx":346 + /* "pygame/_sdl2/video.pyx":347 * * # https://wiki.libsdl.org/SDL_GetTextureColorMod * cdef int res = SDL_GetTextureColorMod(self._tex, # <<<<<<<<<<<<<< @@ -8702,7 +8702,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5color___get__(struct _ */ __pyx_v_res = SDL_GetTextureColorMod(__pyx_v_self->_tex, (&(__pyx_v_rgba[0])), (&(__pyx_v_rgba[1])), (&(__pyx_v_rgba[2]))); - /* "pygame/_sdl2/video.pyx":350 + /* "pygame/_sdl2/video.pyx":351 * &(rgba[1]), * &(rgba[2])) * rgba[3] = 255 # <<<<<<<<<<<<<< @@ -8711,7 +8711,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5color___get__(struct _ */ (__pyx_v_rgba[3]) = 0xFF; - /* "pygame/_sdl2/video.pyx":352 + /* "pygame/_sdl2/video.pyx":353 * rgba[3] = 255 * * if res < 0: # <<<<<<<<<<<<<< @@ -8721,14 +8721,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5color___get__(struct _ __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":353 + /* "pygame/_sdl2/video.pyx":354 * * if res < 0: * raise error() # <<<<<<<<<<<<<< * * return pgColor_NewLength(rgba, 4) */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 353, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -8746,15 +8746,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5color___get__(struct _ PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 353, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 353, __pyx_L1_error) + __PYX_ERR(0, 354, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":352 + /* "pygame/_sdl2/video.pyx":353 * rgba[3] = 255 * * if res < 0: # <<<<<<<<<<<<<< @@ -8763,7 +8763,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5color___get__(struct _ */ } - /* "pygame/_sdl2/video.pyx":355 + /* "pygame/_sdl2/video.pyx":356 * raise error() * * return pgColor_NewLength(rgba, 4) # <<<<<<<<<<<<<< @@ -8771,13 +8771,13 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5color___get__(struct _ * @color.setter */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = pgColor_NewLength(__pyx_v_rgba, 4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 355, __pyx_L1_error) + __pyx_t_2 = pgColor_NewLength(__pyx_v_rgba, 4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":339 + /* "pygame/_sdl2/video.pyx":340 * raise error() * * @property # <<<<<<<<<<<<<< @@ -8798,7 +8798,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_5color___get__(struct _ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":357 +/* "pygame/_sdl2/video.pyx":358 * return pgColor_NewLength(rgba, 4) * * @color.setter # <<<<<<<<<<<<<< @@ -8835,16 +8835,16 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5color_2__set__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - /* "pygame/_sdl2/video.pyx":360 + /* "pygame/_sdl2/video.pyx":361 * def color(self, new_value): * cdef Uint8[4] rgba * pg_RGBAFromObjEx(new_value, rgba, PG_COLOR_HANDLE_ALL) # <<<<<<<<<<<<<< * * # https://wiki.libsdl.org/SDL_SetTextureColorMod */ - __pyx_t_1 = pg_RGBAFromObjEx(__pyx_v_new_value, __pyx_v_rgba, PG_COLOR_HANDLE_ALL); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 360, __pyx_L1_error) + __pyx_t_1 = pg_RGBAFromObjEx(__pyx_v_new_value, __pyx_v_rgba, PG_COLOR_HANDLE_ALL); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 361, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":363 + /* "pygame/_sdl2/video.pyx":364 * * # https://wiki.libsdl.org/SDL_SetTextureColorMod * cdef int res = SDL_SetTextureColorMod(self._tex, # <<<<<<<<<<<<<< @@ -8853,7 +8853,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5color_2__set__(struct __pyx_ */ __pyx_v_res = SDL_SetTextureColorMod(__pyx_v_self->_tex, (__pyx_v_rgba[0]), (__pyx_v_rgba[1]), (__pyx_v_rgba[2])); - /* "pygame/_sdl2/video.pyx":368 + /* "pygame/_sdl2/video.pyx":369 * rgba[2]) * * if res < 0: # <<<<<<<<<<<<<< @@ -8863,14 +8863,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5color_2__set__(struct __pyx_ __pyx_t_2 = (__pyx_v_res < 0); if (unlikely(__pyx_t_2)) { - /* "pygame/_sdl2/video.pyx":369 + /* "pygame/_sdl2/video.pyx":370 * * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def get_rect(self, **kwargs): */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 369, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_1 = 0; @@ -8888,15 +8888,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5color_2__set__(struct __pyx_ PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_1, 0+__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 369, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 369, __pyx_L1_error) + __PYX_ERR(0, 370, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":368 + /* "pygame/_sdl2/video.pyx":369 * rgba[2]) * * if res < 0: # <<<<<<<<<<<<<< @@ -8905,7 +8905,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5color_2__set__(struct __pyx_ */ } - /* "pygame/_sdl2/video.pyx":357 + /* "pygame/_sdl2/video.pyx":358 * return pgColor_NewLength(rgba, 4) * * @color.setter # <<<<<<<<<<<<<< @@ -8927,7 +8927,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_7Texture_5color_2__set__(struct __pyx_ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":371 +/* "pygame/_sdl2/video.pyx":372 * raise error() * * def get_rect(self, **kwargs): # <<<<<<<<<<<<<< @@ -8997,19 +8997,19 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_6get_rect(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_rect", 0); - /* "pygame/_sdl2/video.pyx":379 + /* "pygame/_sdl2/video.pyx":380 * texture. * """ * rect = pgRect_New4(0, 0, self.width, self.height) # <<<<<<<<<<<<<< * for key in kwargs: * setattr(rect, key, kwargs[key]) */ - __pyx_t_1 = pgRect_New4(0, 0, __pyx_v_self->width, __pyx_v_self->height); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 379, __pyx_L1_error) + __pyx_t_1 = pgRect_New4(0, 0, __pyx_v_self->width, __pyx_v_self->height); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_rect = __pyx_t_1; __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":380 + /* "pygame/_sdl2/video.pyx":381 * """ * rect = pgRect_New4(0, 0, self.width, self.height) * for key in kwargs: # <<<<<<<<<<<<<< @@ -9017,7 +9017,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_6get_rect(struct __pyx_ * */ __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_kwargs, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 380, __pyx_L1_error) + __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_kwargs, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_5; @@ -9025,26 +9025,26 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_6get_rect(struct __pyx_ while (1) { __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, NULL, NULL, __pyx_t_4); if (unlikely(__pyx_t_6 == 0)) break; - if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 380, __pyx_L1_error) + if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(0, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5); __pyx_t_5 = 0; - /* "pygame/_sdl2/video.pyx":381 + /* "pygame/_sdl2/video.pyx":382 * rect = pgRect_New4(0, 0, self.width, self.height) * for key in kwargs: * setattr(rect, key, kwargs[key]) # <<<<<<<<<<<<<< * * return rect */ - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 381, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = PyObject_SetAttr(__pyx_v_rect, __pyx_v_key, __pyx_t_5); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 381, __pyx_L1_error) + __pyx_t_7 = PyObject_SetAttr(__pyx_v_rect, __pyx_v_key, __pyx_t_5); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":383 + /* "pygame/_sdl2/video.pyx":384 * setattr(rect, key, kwargs[key]) * * return rect # <<<<<<<<<<<<<< @@ -9056,7 +9056,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_6get_rect(struct __pyx_ __pyx_r = __pyx_v_rect; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":371 + /* "pygame/_sdl2/video.pyx":372 * raise error() * * def get_rect(self, **kwargs): # <<<<<<<<<<<<<< @@ -9078,7 +9078,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_6get_rect(struct __pyx_ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":385 +/* "pygame/_sdl2/video.pyx":386 * return rect * * cpdef void draw(self, srcrect=None, dstrect=None, float angle=0, origin=None, # <<<<<<<<<<<<<< @@ -9099,7 +9099,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame float __pyx_v_angle = ((float)0.0); PyObject *__pyx_v_origin = ((PyObject *)Py_None); - /* "pygame/_sdl2/video.pyx":386 + /* "pygame/_sdl2/video.pyx":387 * * cpdef void draw(self, srcrect=None, dstrect=None, float angle=0, origin=None, * bint flip_x=False, bint flip_y=False): # <<<<<<<<<<<<<< @@ -9153,7 +9153,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame } } - /* "pygame/_sdl2/video.pyx":385 + /* "pygame/_sdl2/video.pyx":386 * return rect * * cpdef void draw(self, srcrect=None, dstrect=None, float angle=0, origin=None, # <<<<<<<<<<<<<< @@ -9169,7 +9169,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_draw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_draw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #ifdef __Pyx_CyFunction_USED if (!__Pyx_IsCyOrPyCFunction(__pyx_t_1) @@ -9177,11 +9177,11 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame if (!PyCFunction_Check(__pyx_t_1) #endif || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6pygame_5_sdl2_5video_7Texture_9draw)) { - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_angle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_angle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_flip_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_flip_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_flip_y); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_flip_y); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = __pyx_t_1; __pyx_t_7 = NULL; @@ -9203,7 +9203,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 385, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } @@ -9224,7 +9224,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame #endif } - /* "pygame/_sdl2/video.pyx":403 + /* "pygame/_sdl2/video.pyx":404 * """ * cdef SDL_Rect src * cdef SDL_Rect *csrcrect = NULL # <<<<<<<<<<<<<< @@ -9233,7 +9233,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_csrcrect = NULL; - /* "pygame/_sdl2/video.pyx":405 + /* "pygame/_sdl2/video.pyx":406 * cdef SDL_Rect *csrcrect = NULL * cdef SDL_FRect dst * cdef SDL_FRect *cdstrect = NULL # <<<<<<<<<<<<<< @@ -9242,7 +9242,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_cdstrect = NULL; - /* "pygame/_sdl2/video.pyx":409 + /* "pygame/_sdl2/video.pyx":410 * cdef SDL_FPoint *originptr * * if srcrect is not None: # <<<<<<<<<<<<<< @@ -9252,7 +9252,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame __pyx_t_9 = (__pyx_v_srcrect != Py_None); if (__pyx_t_9) { - /* "pygame/_sdl2/video.pyx":410 + /* "pygame/_sdl2/video.pyx":411 * * if srcrect is not None: * csrcrect = pgRect_FromObject(srcrect, &src) # <<<<<<<<<<<<<< @@ -9261,7 +9261,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_csrcrect = pgRect_FromObject(__pyx_v_srcrect, (&__pyx_v_src)); - /* "pygame/_sdl2/video.pyx":411 + /* "pygame/_sdl2/video.pyx":412 * if srcrect is not None: * csrcrect = pgRect_FromObject(srcrect, &src) * if not csrcrect: # <<<<<<<<<<<<<< @@ -9271,20 +9271,20 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame __pyx_t_9 = (!(__pyx_v_csrcrect != 0)); if (unlikely(__pyx_t_9)) { - /* "pygame/_sdl2/video.pyx":412 + /* "pygame/_sdl2/video.pyx":413 * csrcrect = pgRect_FromObject(srcrect, &src) * if not csrcrect: * raise TypeError("the argument is not a rectangle or None") # <<<<<<<<<<<<<< * * if dstrect is not None: */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 412, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 412, __pyx_L1_error) + __PYX_ERR(0, 413, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":411 + /* "pygame/_sdl2/video.pyx":412 * if srcrect is not None: * csrcrect = pgRect_FromObject(srcrect, &src) * if not csrcrect: # <<<<<<<<<<<<<< @@ -9293,7 +9293,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ } - /* "pygame/_sdl2/video.pyx":409 + /* "pygame/_sdl2/video.pyx":410 * cdef SDL_FPoint *originptr * * if srcrect is not None: # <<<<<<<<<<<<<< @@ -9302,7 +9302,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ } - /* "pygame/_sdl2/video.pyx":414 + /* "pygame/_sdl2/video.pyx":415 * raise TypeError("the argument is not a rectangle or None") * * if dstrect is not None: # <<<<<<<<<<<<<< @@ -9312,7 +9312,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame __pyx_t_9 = (__pyx_v_dstrect != Py_None); if (__pyx_t_9) { - /* "pygame/_sdl2/video.pyx":415 + /* "pygame/_sdl2/video.pyx":416 * * if dstrect is not None: * cdstrect = pgFRect_FromObject(dstrect, &dst) # <<<<<<<<<<<<<< @@ -9321,7 +9321,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_cdstrect = pgFRect_FromObject(__pyx_v_dstrect, (&__pyx_v_dst)); - /* "pygame/_sdl2/video.pyx":416 + /* "pygame/_sdl2/video.pyx":417 * if dstrect is not None: * cdstrect = pgFRect_FromObject(dstrect, &dst) * if cdstrect == NULL: # <<<<<<<<<<<<<< @@ -9331,44 +9331,44 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame __pyx_t_9 = (__pyx_v_cdstrect == NULL); if (__pyx_t_9) { - /* "pygame/_sdl2/video.pyx":417 + /* "pygame/_sdl2/video.pyx":418 * cdstrect = pgFRect_FromObject(dstrect, &dst) * if cdstrect == NULL: * if len(dstrect) == 2: # <<<<<<<<<<<<<< * dst.x = dstrect[0] * dst.y = dstrect[1] */ - __pyx_t_10 = PyObject_Length(__pyx_v_dstrect); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 417, __pyx_L1_error) + __pyx_t_10 = PyObject_Length(__pyx_v_dstrect); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 418, __pyx_L1_error) __pyx_t_9 = (__pyx_t_10 == 2); if (likely(__pyx_t_9)) { - /* "pygame/_sdl2/video.pyx":418 + /* "pygame/_sdl2/video.pyx":419 * if cdstrect == NULL: * if len(dstrect) == 2: * dst.x = dstrect[0] # <<<<<<<<<<<<<< * dst.y = dstrect[1] * dst.w = self.width */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_dstrect, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 418, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_dstrect, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 418, __pyx_L1_error) + __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_dst.x = __pyx_t_11; - /* "pygame/_sdl2/video.pyx":419 + /* "pygame/_sdl2/video.pyx":420 * if len(dstrect) == 2: * dst.x = dstrect[0] * dst.y = dstrect[1] # <<<<<<<<<<<<<< * dst.w = self.width * dst.h = self.height */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_dstrect, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 419, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_dstrect, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 419, __pyx_L1_error) + __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_dst.y = __pyx_t_11; - /* "pygame/_sdl2/video.pyx":420 + /* "pygame/_sdl2/video.pyx":421 * dst.x = dstrect[0] * dst.y = dstrect[1] * dst.w = self.width # <<<<<<<<<<<<<< @@ -9377,7 +9377,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_dst.w = ((float)__pyx_v_self->width); - /* "pygame/_sdl2/video.pyx":421 + /* "pygame/_sdl2/video.pyx":422 * dst.y = dstrect[1] * dst.w = self.width * dst.h = self.height # <<<<<<<<<<<<<< @@ -9386,7 +9386,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_dst.h = ((float)__pyx_v_self->height); - /* "pygame/_sdl2/video.pyx":422 + /* "pygame/_sdl2/video.pyx":423 * dst.w = self.width * dst.h = self.height * cdstrect = &dst # <<<<<<<<<<<<<< @@ -9395,7 +9395,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_cdstrect = (&__pyx_v_dst); - /* "pygame/_sdl2/video.pyx":417 + /* "pygame/_sdl2/video.pyx":418 * cdstrect = pgFRect_FromObject(dstrect, &dst) * if cdstrect == NULL: * if len(dstrect) == 2: # <<<<<<<<<<<<<< @@ -9405,7 +9405,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame goto __pyx_L7; } - /* "pygame/_sdl2/video.pyx":424 + /* "pygame/_sdl2/video.pyx":425 * cdstrect = &dst * else: * raise TypeError('dstrect must be a position, rect, or None') # <<<<<<<<<<<<<< @@ -9413,15 +9413,15 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame * if origin: */ /*else*/ { - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 424, __pyx_L1_error) + __PYX_ERR(0, 425, __pyx_L1_error) } __pyx_L7:; - /* "pygame/_sdl2/video.pyx":416 + /* "pygame/_sdl2/video.pyx":417 * if dstrect is not None: * cdstrect = pgFRect_FromObject(dstrect, &dst) * if cdstrect == NULL: # <<<<<<<<<<<<<< @@ -9430,7 +9430,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ } - /* "pygame/_sdl2/video.pyx":414 + /* "pygame/_sdl2/video.pyx":415 * raise TypeError("the argument is not a rectangle or None") * * if dstrect is not None: # <<<<<<<<<<<<<< @@ -9439,17 +9439,17 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ } - /* "pygame/_sdl2/video.pyx":426 + /* "pygame/_sdl2/video.pyx":427 * raise TypeError('dstrect must be a position, rect, or None') * * if origin: # <<<<<<<<<<<<<< * originptr = &corigin * corigin.x = origin[0] */ - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_origin); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 426, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_origin); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 427, __pyx_L1_error) if (__pyx_t_9) { - /* "pygame/_sdl2/video.pyx":427 + /* "pygame/_sdl2/video.pyx":428 * * if origin: * originptr = &corigin # <<<<<<<<<<<<<< @@ -9458,33 +9458,33 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_originptr = (&__pyx_v_corigin); - /* "pygame/_sdl2/video.pyx":428 + /* "pygame/_sdl2/video.pyx":429 * if origin: * originptr = &corigin * corigin.x = origin[0] # <<<<<<<<<<<<<< * corigin.y = origin[1] * else: */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_origin, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 428, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_origin, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 428, __pyx_L1_error) + __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 429, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_corigin.x = __pyx_t_11; - /* "pygame/_sdl2/video.pyx":429 + /* "pygame/_sdl2/video.pyx":430 * originptr = &corigin * corigin.x = origin[0] * corigin.y = origin[1] # <<<<<<<<<<<<<< * else: * originptr = NULL */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_origin, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 429, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_origin, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 429, __pyx_L1_error) + __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 430, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_corigin.y = __pyx_t_11; - /* "pygame/_sdl2/video.pyx":426 + /* "pygame/_sdl2/video.pyx":427 * raise TypeError('dstrect must be a position, rect, or None') * * if origin: # <<<<<<<<<<<<<< @@ -9494,7 +9494,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame goto __pyx_L8; } - /* "pygame/_sdl2/video.pyx":431 + /* "pygame/_sdl2/video.pyx":432 * corigin.y = origin[1] * else: * originptr = NULL # <<<<<<<<<<<<<< @@ -9506,7 +9506,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame } __pyx_L8:; - /* "pygame/_sdl2/video.pyx":433 + /* "pygame/_sdl2/video.pyx":434 * originptr = NULL * * cdef int flip = SDL_FLIP_NONE # <<<<<<<<<<<<<< @@ -9515,7 +9515,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_flip = SDL_FLIP_NONE; - /* "pygame/_sdl2/video.pyx":434 + /* "pygame/_sdl2/video.pyx":435 * * cdef int flip = SDL_FLIP_NONE * if flip_x: # <<<<<<<<<<<<<< @@ -9524,7 +9524,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ if (__pyx_v_flip_x) { - /* "pygame/_sdl2/video.pyx":435 + /* "pygame/_sdl2/video.pyx":436 * cdef int flip = SDL_FLIP_NONE * if flip_x: * flip |= SDL_FLIP_HORIZONTAL # <<<<<<<<<<<<<< @@ -9533,7 +9533,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_flip = (__pyx_v_flip | SDL_FLIP_HORIZONTAL); - /* "pygame/_sdl2/video.pyx":434 + /* "pygame/_sdl2/video.pyx":435 * * cdef int flip = SDL_FLIP_NONE * if flip_x: # <<<<<<<<<<<<<< @@ -9542,7 +9542,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ } - /* "pygame/_sdl2/video.pyx":436 + /* "pygame/_sdl2/video.pyx":437 * if flip_x: * flip |= SDL_FLIP_HORIZONTAL * if flip_y: # <<<<<<<<<<<<<< @@ -9551,7 +9551,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ if (__pyx_v_flip_y) { - /* "pygame/_sdl2/video.pyx":437 + /* "pygame/_sdl2/video.pyx":438 * flip |= SDL_FLIP_HORIZONTAL * if flip_y: * flip |= SDL_FLIP_VERTICAL # <<<<<<<<<<<<<< @@ -9560,7 +9560,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_flip = (__pyx_v_flip | SDL_FLIP_VERTICAL); - /* "pygame/_sdl2/video.pyx":436 + /* "pygame/_sdl2/video.pyx":437 * if flip_x: * flip |= SDL_FLIP_HORIZONTAL * if flip_y: # <<<<<<<<<<<<<< @@ -9569,7 +9569,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ } - /* "pygame/_sdl2/video.pyx":439 + /* "pygame/_sdl2/video.pyx":440 * flip |= SDL_FLIP_VERTICAL * * cdef int res = SDL_RenderCopyExF(self.renderer._renderer, self._tex, csrcrect, cdstrect, # <<<<<<<<<<<<<< @@ -9578,7 +9578,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ __pyx_v_res = SDL_RenderCopyExF(__pyx_v_self->renderer->_renderer, __pyx_v_self->_tex, __pyx_v_csrcrect, __pyx_v_cdstrect, __pyx_v_angle, __pyx_v_originptr, ((SDL_RendererFlip)__pyx_v_flip)); - /* "pygame/_sdl2/video.pyx":441 + /* "pygame/_sdl2/video.pyx":442 * cdef int res = SDL_RenderCopyExF(self.renderer._renderer, self._tex, csrcrect, cdstrect, * angle, originptr, flip) * if res < 0: # <<<<<<<<<<<<<< @@ -9588,14 +9588,14 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame __pyx_t_9 = (__pyx_v_res < 0); if (unlikely(__pyx_t_9)) { - /* "pygame/_sdl2/video.pyx":442 + /* "pygame/_sdl2/video.pyx":443 * angle, originptr, flip) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def draw_triangle(self, p1_xy, p2_xy, p3_xy, */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 442, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; __pyx_t_8 = 0; @@ -9613,15 +9613,15 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 442, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 442, __pyx_L1_error) + __PYX_ERR(0, 443, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":441 + /* "pygame/_sdl2/video.pyx":442 * cdef int res = SDL_RenderCopyExF(self.renderer._renderer, self._tex, csrcrect, cdstrect, * angle, originptr, flip) * if res < 0: # <<<<<<<<<<<<<< @@ -9630,7 +9630,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_7Texture_draw(struct __pyx_obj_6pygame */ } - /* "pygame/_sdl2/video.pyx":385 + /* "pygame/_sdl2/video.pyx":386 * return rect * * cpdef void draw(self, srcrect=None, dstrect=None, float angle=0, origin=None, # <<<<<<<<<<<<<< @@ -9716,47 +9716,47 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_srcrect); if (value) { values[0] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 385, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 386, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dstrect); if (value) { values[1] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 385, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 386, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_angle); if (value) { values[2] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 385, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 386, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_origin); if (value) { values[3] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 385, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 386, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flip_x); if (value) { values[4] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 385, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 386, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flip_y); if (value) { values[5] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 385, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 386, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw") < 0)) __PYX_ERR(0, 385, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw") < 0)) __PYX_ERR(0, 386, __pyx_L3_error) } } else { switch (__pyx_nargs) { @@ -9779,16 +9779,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_srcrect = values[0]; __pyx_v_dstrect = values[1]; if (values[2]) { - __pyx_v_angle = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_angle == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 385, __pyx_L3_error) + __pyx_v_angle = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_angle == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 386, __pyx_L3_error) } else { __pyx_v_angle = ((float)0.0); } __pyx_v_origin = values[3]; if (values[4]) { - __pyx_v_flip_x = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_flip_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 386, __pyx_L3_error) + __pyx_v_flip_x = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_flip_x == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 387, __pyx_L3_error) } else { - /* "pygame/_sdl2/video.pyx":386 + /* "pygame/_sdl2/video.pyx":387 * * cpdef void draw(self, srcrect=None, dstrect=None, float angle=0, origin=None, * bint flip_x=False, bint flip_y=False): # <<<<<<<<<<<<<< @@ -9798,14 +9798,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_flip_x = ((int)0); } if (values[5]) { - __pyx_v_flip_y = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_flip_y == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 386, __pyx_L3_error) + __pyx_v_flip_y = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_flip_y == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 387, __pyx_L3_error) } else { __pyx_v_flip_y = ((int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("draw", 0, 0, 6, __pyx_nargs); __PYX_ERR(0, 385, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw", 0, 0, 6, __pyx_nargs); __PYX_ERR(0, 386, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Texture.draw", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -9813,7 +9813,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pygame_5_sdl2_5video_7Texture_8draw(((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_v_self), __pyx_v_srcrect, __pyx_v_dstrect, __pyx_v_angle, __pyx_v_origin, __pyx_v_flip_x, __pyx_v_flip_y); - /* "pygame/_sdl2/video.pyx":385 + /* "pygame/_sdl2/video.pyx":386 * return rect * * cpdef void draw(self, srcrect=None, dstrect=None, float angle=0, origin=None, # <<<<<<<<<<<<<< @@ -9843,8 +9843,8 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_8draw(struct __pyx_obj_ __pyx_t_1.origin = __pyx_v_origin; __pyx_t_1.flip_x = __pyx_v_flip_x; __pyx_t_1.flip_y = __pyx_v_flip_y; - __pyx_vtabptr_6pygame_5_sdl2_5video_Texture->draw(__pyx_v_self, 1, &__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 385, __pyx_L1_error) - __pyx_t_2 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_vtabptr_6pygame_5_sdl2_5video_Texture->draw(__pyx_v_self, 1, &__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 386, __pyx_L1_error) + __pyx_t_2 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; @@ -9861,7 +9861,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_8draw(struct __pyx_obj_ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":444 +/* "pygame/_sdl2/video.pyx":445 * raise error() * * def draw_triangle(self, p1_xy, p2_xy, p3_xy, # <<<<<<<<<<<<<< @@ -9909,7 +9909,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p1_xy,&__pyx_n_s_p2_xy,&__pyx_n_s_p3_xy,&__pyx_n_s_p1_uv,&__pyx_n_s_p2_uv,&__pyx_n_s_p3_uv,&__pyx_n_s_p1_mod,&__pyx_n_s_p2_mod,&__pyx_n_s_p3_mod,0}; PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; - /* "pygame/_sdl2/video.pyx":445 + /* "pygame/_sdl2/video.pyx":446 * * def draw_triangle(self, p1_xy, p2_xy, p3_xy, * p1_uv=(0.0, 0.0), p2_uv=(1.0, 1.0), p3_uv=(0.0, 1.0), # <<<<<<<<<<<<<< @@ -9920,7 +9920,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds values[4] = ((PyObject *)__pyx_tuple__11); values[5] = ((PyObject *)__pyx_tuple__12); - /* "pygame/_sdl2/video.pyx":446 + /* "pygame/_sdl2/video.pyx":447 * def draw_triangle(self, p1_xy, p2_xy, p3_xy, * p1_uv=(0.0, 0.0), p2_uv=(1.0, 1.0), p3_uv=(0.0, 1.0), * p1_mod=(255, 255, 255, 255), p2_mod=(255, 255, 255, 255), p3_mod=(255, 255, 255, 255)): # <<<<<<<<<<<<<< @@ -9958,68 +9958,68 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p1_xy)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 444, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 445, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p2_xy)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 444, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 445, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("draw_triangle", 0, 3, 9, 1); __PYX_ERR(0, 444, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_triangle", 0, 3, 9, 1); __PYX_ERR(0, 445, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p3_xy)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 444, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 445, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("draw_triangle", 0, 3, 9, 2); __PYX_ERR(0, 444, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_triangle", 0, 3, 9, 2); __PYX_ERR(0, 445, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p1_uv); if (value) { values[3] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 444, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 445, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p2_uv); if (value) { values[4] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 444, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 445, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p3_uv); if (value) { values[5] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 444, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 445, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p1_mod); if (value) { values[6] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 444, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 445, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p2_mod); if (value) { values[7] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 444, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 445, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p3_mod); if (value) { values[8] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 444, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 445, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_triangle") < 0)) __PYX_ERR(0, 444, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_triangle") < 0)) __PYX_ERR(0, 445, __pyx_L3_error) } } else { switch (__pyx_nargs) { @@ -10054,7 +10054,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("draw_triangle", 0, 3, 9, __pyx_nargs); __PYX_ERR(0, 444, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_triangle", 0, 3, 9, __pyx_nargs); __PYX_ERR(0, 445, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Texture.draw_triangle", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -10062,7 +10062,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_v_self), __pyx_v_p1_xy, __pyx_v_p2_xy, __pyx_v_p3_xy, __pyx_v_p1_uv, __pyx_v_p2_uv, __pyx_v_p3_uv, __pyx_v_p1_mod, __pyx_v_p2_mod, __pyx_v_p3_mod); - /* "pygame/_sdl2/video.pyx":444 + /* "pygame/_sdl2/video.pyx":445 * raise error() * * def draw_triangle(self, p1_xy, p2_xy, p3_xy, # <<<<<<<<<<<<<< @@ -10112,7 +10112,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("draw_triangle", 0); - /* "pygame/_sdl2/video.pyx":459 + /* "pygame/_sdl2/video.pyx":460 * :param p3_mod: The third vertex color modulation. * """ * if not SDL_VERSION_ATLEAST(2, 0, 18): # <<<<<<<<<<<<<< @@ -10122,14 +10122,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct __pyx_t_1 = (!(SDL_VERSION_ATLEAST(2, 0, 18) != 0)); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":460 + /* "pygame/_sdl2/video.pyx":461 * """ * if not SDL_VERSION_ATLEAST(2, 0, 18): * raise error("draw_triangle requires SDL 2.0.18 or newer") # <<<<<<<<<<<<<< * * cdef Uint8 _r_mod, _g_mod, _b_mod, _a_mod */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 460, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -10147,15 +10147,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_draw_triangle_requires_SDL_2_0_1}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 460, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 460, __pyx_L1_error) + __PYX_ERR(0, 461, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":459 + /* "pygame/_sdl2/video.pyx":460 * :param p3_mod: The third vertex color modulation. * """ * if not SDL_VERSION_ATLEAST(2, 0, 18): # <<<<<<<<<<<<<< @@ -10164,7 +10164,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct */ } - /* "pygame/_sdl2/video.pyx":463 + /* "pygame/_sdl2/video.pyx":464 * * cdef Uint8 _r_mod, _g_mod, _b_mod, _a_mod * SDL_GetTextureColorMod(self._tex, &_r_mod, &_g_mod, &_b_mod) # <<<<<<<<<<<<<< @@ -10173,7 +10173,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct */ (void)(SDL_GetTextureColorMod(__pyx_v_self->_tex, (&__pyx_v__r_mod), (&__pyx_v__g_mod), (&__pyx_v__b_mod))); - /* "pygame/_sdl2/video.pyx":464 + /* "pygame/_sdl2/video.pyx":465 * cdef Uint8 _r_mod, _g_mod, _b_mod, _a_mod * SDL_GetTextureColorMod(self._tex, &_r_mod, &_g_mod, &_b_mod) * SDL_GetTextureAlphaMod(self._tex, &_a_mod) # <<<<<<<<<<<<<< @@ -10182,7 +10182,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct */ (void)(SDL_GetTextureAlphaMod(__pyx_v_self->_tex, (&__pyx_v__a_mod))); - /* "pygame/_sdl2/video.pyx":466 + /* "pygame/_sdl2/video.pyx":467 * SDL_GetTextureAlphaMod(self._tex, &_a_mod) * * cdef float r_mod = _r_mod / 255.0 # <<<<<<<<<<<<<< @@ -10191,7 +10191,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct */ __pyx_v_r_mod = (((float)__pyx_v__r_mod) / ((float)255.0)); - /* "pygame/_sdl2/video.pyx":467 + /* "pygame/_sdl2/video.pyx":468 * * cdef float r_mod = _r_mod / 255.0 * cdef float g_mod = _g_mod / 255.0 # <<<<<<<<<<<<<< @@ -10200,7 +10200,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct */ __pyx_v_g_mod = (((float)__pyx_v__g_mod) / ((float)255.0)); - /* "pygame/_sdl2/video.pyx":468 + /* "pygame/_sdl2/video.pyx":469 * cdef float r_mod = _r_mod / 255.0 * cdef float g_mod = _g_mod / 255.0 * cdef float b_mod = _b_mod / 255.0 # <<<<<<<<<<<<<< @@ -10209,7 +10209,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct */ __pyx_v_b_mod = (((float)__pyx_v__b_mod) / ((float)255.0)); - /* "pygame/_sdl2/video.pyx":469 + /* "pygame/_sdl2/video.pyx":470 * cdef float g_mod = _g_mod / 255.0 * cdef float b_mod = _b_mod / 255.0 * cdef float a_mod = _a_mod / 255.0 # <<<<<<<<<<<<<< @@ -10218,7 +10218,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct */ __pyx_v_a_mod = (((float)__pyx_v__a_mod) / ((float)255.0)); - /* "pygame/_sdl2/video.pyx":472 + /* "pygame/_sdl2/video.pyx":473 * * cdef SDL_Vertex vertices[3] * for i, vert in enumerate(((p1_xy, p1_mod, p1_uv), # <<<<<<<<<<<<<< @@ -10227,7 +10227,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct */ __Pyx_INCREF(__pyx_int_0); __pyx_t_2 = __pyx_int_0; - __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 472, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_p1_xy); __Pyx_GIVEREF(__pyx_v_p1_xy); @@ -10239,14 +10239,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct __Pyx_GIVEREF(__pyx_v_p1_uv); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_p1_uv); - /* "pygame/_sdl2/video.pyx":473 + /* "pygame/_sdl2/video.pyx":474 * cdef SDL_Vertex vertices[3] * for i, vert in enumerate(((p1_xy, p1_mod, p1_uv), * (p2_xy, p2_mod, p2_uv), # <<<<<<<<<<<<<< * (p3_xy, p3_mod, p3_uv))): * xy, mod, uv = vert */ - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 473, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_p2_xy); __Pyx_GIVEREF(__pyx_v_p2_xy); @@ -10258,14 +10258,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct __Pyx_GIVEREF(__pyx_v_p2_uv); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_p2_uv); - /* "pygame/_sdl2/video.pyx":474 + /* "pygame/_sdl2/video.pyx":475 * for i, vert in enumerate(((p1_xy, p1_mod, p1_uv), * (p2_xy, p2_mod, p2_uv), * (p3_xy, p3_mod, p3_uv))): # <<<<<<<<<<<<<< * xy, mod, uv = vert * vertices[i].position.x = xy[0] */ - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 474, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_p3_xy); __Pyx_GIVEREF(__pyx_v_p3_xy); @@ -10277,14 +10277,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct __Pyx_GIVEREF(__pyx_v_p3_uv); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_p3_uv); - /* "pygame/_sdl2/video.pyx":472 + /* "pygame/_sdl2/video.pyx":473 * * cdef SDL_Vertex vertices[3] * for i, vert in enumerate(((p1_xy, p1_mod, p1_uv), # <<<<<<<<<<<<<< * (p2_xy, p2_mod, p2_uv), * (p3_xy, p3_mod, p3_uv))): */ - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 472, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); @@ -10300,22 +10300,22 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct for (;;) { if (__pyx_t_8 >= 3) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 472, __pyx_L1_error) + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 473, __pyx_L1_error) #else - __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 472, __pyx_L1_error) + __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif __Pyx_XDECREF_SET(__pyx_v_vert, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); - __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 472, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_7; __pyx_t_7 = 0; - /* "pygame/_sdl2/video.pyx":475 + /* "pygame/_sdl2/video.pyx":476 * (p2_xy, p2_mod, p2_uv), * (p3_xy, p3_mod, p3_uv))): * xy, mod, uv = vert # <<<<<<<<<<<<<< @@ -10328,7 +10328,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 475, __pyx_L1_error) + __PYX_ERR(0, 476, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -10344,16 +10344,16 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); #else - __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 475, __pyx_L1_error) + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 475, __pyx_L1_error) + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 475, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { Py_ssize_t index = -1; - __pyx_t_9 = PyObject_GetIter(__pyx_v_vert); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 475, __pyx_L1_error) + __pyx_t_9 = PyObject_GetIter(__pyx_v_vert); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; @@ -10362,7 +10362,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct __Pyx_GOTREF(__pyx_t_4); index = 2; __pyx_t_3 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) __PYX_ERR(0, 475, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) __PYX_ERR(0, 476, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L7_unpacking_done; @@ -10370,7 +10370,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 475, __pyx_L1_error) + __PYX_ERR(0, 476, __pyx_L1_error) __pyx_L7_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_xy, __pyx_t_7); @@ -10380,149 +10380,149 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct __Pyx_XDECREF_SET(__pyx_v_uv, __pyx_t_3); __pyx_t_3 = 0; - /* "pygame/_sdl2/video.pyx":476 + /* "pygame/_sdl2/video.pyx":477 * (p3_xy, p3_mod, p3_uv))): * xy, mod, uv = vert * vertices[i].position.x = xy[0] # <<<<<<<<<<<<<< * vertices[i].position.y = xy[1] * vertices[i].color.r = r_mod * mod[0] */ - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_xy, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 476, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_xy, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 476, __pyx_L1_error) + __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 477, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 476, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 477, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_12]).position.x = __pyx_t_11; - /* "pygame/_sdl2/video.pyx":477 + /* "pygame/_sdl2/video.pyx":478 * xy, mod, uv = vert * vertices[i].position.x = xy[0] * vertices[i].position.y = xy[1] # <<<<<<<<<<<<<< * vertices[i].color.r = r_mod * mod[0] * vertices[i].color.g = g_mod * mod[1] */ - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_xy, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 477, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_xy, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 477, __pyx_L1_error) + __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 478, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 477, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 478, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_12]).position.y = __pyx_t_11; - /* "pygame/_sdl2/video.pyx":478 + /* "pygame/_sdl2/video.pyx":479 * vertices[i].position.x = xy[0] * vertices[i].position.y = xy[1] * vertices[i].color.r = r_mod * mod[0] # <<<<<<<<<<<<<< * vertices[i].color.g = g_mod * mod[1] * vertices[i].color.b = b_mod * mod[2] */ - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_r_mod); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 478, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_r_mod); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_mod, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 478, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_mod, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error) + __pyx_t_7 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_13 = __Pyx_PyInt_As_Uint8(__pyx_t_7); if (unlikely((__pyx_t_13 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 478, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyInt_As_Uint8(__pyx_t_7); if (unlikely((__pyx_t_13 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 479, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 478, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 479, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_12]).color.r = __pyx_t_13; - /* "pygame/_sdl2/video.pyx":479 + /* "pygame/_sdl2/video.pyx":480 * vertices[i].position.y = xy[1] * vertices[i].color.r = r_mod * mod[0] * vertices[i].color.g = g_mod * mod[1] # <<<<<<<<<<<<<< * vertices[i].color.b = b_mod * mod[2] * vertices[i].color.a = a_mod * mod[3] if len(mod) > 3 else _a_mod */ - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_g_mod); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error) + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_g_mod); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_mod, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 479, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_mod, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyNumber_Multiply(__pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 479, __pyx_L1_error) + __pyx_t_3 = PyNumber_Multiply(__pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_13 = __Pyx_PyInt_As_Uint8(__pyx_t_3); if (unlikely((__pyx_t_13 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 479, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyInt_As_Uint8(__pyx_t_3); if (unlikely((__pyx_t_13 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 480, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 479, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 480, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_12]).color.g = __pyx_t_13; - /* "pygame/_sdl2/video.pyx":480 + /* "pygame/_sdl2/video.pyx":481 * vertices[i].color.r = r_mod * mod[0] * vertices[i].color.g = g_mod * mod[1] * vertices[i].color.b = b_mod * mod[2] # <<<<<<<<<<<<<< * vertices[i].color.a = a_mod * mod[3] if len(mod) > 3 else _a_mod * vertices[i].tex_coord.x = uv[0] */ - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_b_mod); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 480, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_b_mod); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_mod, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 480, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_mod, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error) + __pyx_t_7 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_13 = __Pyx_PyInt_As_Uint8(__pyx_t_7); if (unlikely((__pyx_t_13 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 480, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyInt_As_Uint8(__pyx_t_7); if (unlikely((__pyx_t_13 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 481, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 480, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 481, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_12]).color.b = __pyx_t_13; - /* "pygame/_sdl2/video.pyx":481 + /* "pygame/_sdl2/video.pyx":482 * vertices[i].color.g = g_mod * mod[1] * vertices[i].color.b = b_mod * mod[2] * vertices[i].color.a = a_mod * mod[3] if len(mod) > 3 else _a_mod # <<<<<<<<<<<<<< * vertices[i].tex_coord.x = uv[0] * vertices[i].tex_coord.y = uv[1] */ - __pyx_t_12 = PyObject_Length(__pyx_v_mod); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 481, __pyx_L1_error) + __pyx_t_12 = PyObject_Length(__pyx_v_mod); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 482, __pyx_L1_error) if ((__pyx_t_12 > 3)) { - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_a_mod); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 481, __pyx_L1_error) + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_a_mod); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_mod, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 481, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_mod, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyNumber_Multiply(__pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 481, __pyx_L1_error) + __pyx_t_3 = PyNumber_Multiply(__pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_14 = __Pyx_PyInt_As_Uint8(__pyx_t_3); if (unlikely((__pyx_t_14 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 481, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyInt_As_Uint8(__pyx_t_3); if (unlikely((__pyx_t_14 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_13 = __pyx_t_14; } else { __pyx_t_13 = __pyx_v__a_mod; } - __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 481, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 482, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_12]).color.a = __pyx_t_13; - /* "pygame/_sdl2/video.pyx":482 + /* "pygame/_sdl2/video.pyx":483 * vertices[i].color.b = b_mod * mod[2] * vertices[i].color.a = a_mod * mod[3] if len(mod) > 3 else _a_mod * vertices[i].tex_coord.x = uv[0] # <<<<<<<<<<<<<< * vertices[i].tex_coord.y = uv[1] * */ - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_uv, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 482, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_uv, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 482, __pyx_L1_error) + __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 483, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 482, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 483, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_12]).tex_coord.x = __pyx_t_11; - /* "pygame/_sdl2/video.pyx":483 + /* "pygame/_sdl2/video.pyx":484 * vertices[i].color.a = a_mod * mod[3] if len(mod) > 3 else _a_mod * vertices[i].tex_coord.x = uv[0] * vertices[i].tex_coord.y = uv[1] # <<<<<<<<<<<<<< * * cdef int res = SDL_RenderGeometry(self.renderer._renderer, self._tex, vertices, 3, NULL, 0) */ - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_uv, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 483, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_uv, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 483, __pyx_L1_error) + __pyx_t_11 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_11 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 484, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 483, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 484, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_12]).tex_coord.y = __pyx_t_11; - /* "pygame/_sdl2/video.pyx":472 + /* "pygame/_sdl2/video.pyx":473 * * cdef SDL_Vertex vertices[3] * for i, vert in enumerate(((p1_xy, p1_mod, p1_uv), # <<<<<<<<<<<<<< @@ -10533,7 +10533,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":485 + /* "pygame/_sdl2/video.pyx":486 * vertices[i].tex_coord.y = uv[1] * * cdef int res = SDL_RenderGeometry(self.renderer._renderer, self._tex, vertices, 3, NULL, 0) # <<<<<<<<<<<<<< @@ -10542,7 +10542,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct */ __pyx_v_res = SDL_RenderGeometry(__pyx_v_self->renderer->_renderer, __pyx_v_self->_tex, __pyx_v_vertices, 3, NULL, 0); - /* "pygame/_sdl2/video.pyx":486 + /* "pygame/_sdl2/video.pyx":487 * * cdef int res = SDL_RenderGeometry(self.renderer._renderer, self._tex, vertices, 3, NULL, 0) * if res < 0: # <<<<<<<<<<<<<< @@ -10552,14 +10552,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":487 + /* "pygame/_sdl2/video.pyx":488 * cdef int res = SDL_RenderGeometry(self.renderer._renderer, self._tex, vertices, 3, NULL, 0) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def draw_quad(self, p1_xy, p2_xy, p3_xy, p4_xy, */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 487, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = NULL; __pyx_t_5 = 0; @@ -10577,15 +10577,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 487, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 487, __pyx_L1_error) + __PYX_ERR(0, 488, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":486 + /* "pygame/_sdl2/video.pyx":487 * * cdef int res = SDL_RenderGeometry(self.renderer._renderer, self._tex, vertices, 3, NULL, 0) * if res < 0: # <<<<<<<<<<<<<< @@ -10594,7 +10594,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct */ } - /* "pygame/_sdl2/video.pyx":444 + /* "pygame/_sdl2/video.pyx":445 * raise error() * * def draw_triangle(self, p1_xy, p2_xy, p3_xy, # <<<<<<<<<<<<<< @@ -10625,7 +10625,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_10draw_triangle(struct return __pyx_r; } -/* "pygame/_sdl2/video.pyx":489 +/* "pygame/_sdl2/video.pyx":490 * raise error() * * def draw_quad(self, p1_xy, p2_xy, p3_xy, p4_xy, # <<<<<<<<<<<<<< @@ -10676,7 +10676,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p1_xy,&__pyx_n_s_p2_xy,&__pyx_n_s_p3_xy,&__pyx_n_s_p4_xy,&__pyx_n_s_p1_uv,&__pyx_n_s_p2_uv,&__pyx_n_s_p3_uv,&__pyx_n_s_p4_uv,&__pyx_n_s_p1_mod,&__pyx_n_s_p2_mod,&__pyx_n_s_p3_mod,&__pyx_n_s_p4_mod,0}; PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0}; - /* "pygame/_sdl2/video.pyx":490 + /* "pygame/_sdl2/video.pyx":491 * * def draw_quad(self, p1_xy, p2_xy, p3_xy, p4_xy, * p1_uv=(0.0, 0.0), p2_uv=(1.0, 0.0), # <<<<<<<<<<<<<< @@ -10686,7 +10686,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds values[4] = ((PyObject *)__pyx_tuple__10); values[5] = ((PyObject *)__pyx_tuple__14); - /* "pygame/_sdl2/video.pyx":491 + /* "pygame/_sdl2/video.pyx":492 * def draw_quad(self, p1_xy, p2_xy, p3_xy, p4_xy, * p1_uv=(0.0, 0.0), p2_uv=(1.0, 0.0), * p3_uv=(1.0, 1.0), p4_uv=(0.0, 1.0), # <<<<<<<<<<<<<< @@ -10696,7 +10696,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds values[6] = ((PyObject *)__pyx_tuple__11); values[7] = ((PyObject *)__pyx_tuple__12); - /* "pygame/_sdl2/video.pyx":492 + /* "pygame/_sdl2/video.pyx":493 * p1_uv=(0.0, 0.0), p2_uv=(1.0, 0.0), * p3_uv=(1.0, 1.0), p4_uv=(0.0, 1.0), * p1_mod=(255, 255, 255, 255), p2_mod=(255, 255, 255, 255), # <<<<<<<<<<<<<< @@ -10706,7 +10706,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds values[8] = ((PyObject *)__pyx_tuple__13); values[9] = ((PyObject *)__pyx_tuple__13); - /* "pygame/_sdl2/video.pyx":493 + /* "pygame/_sdl2/video.pyx":494 * p3_uv=(1.0, 1.0), p4_uv=(0.0, 1.0), * p1_mod=(255, 255, 255, 255), p2_mod=(255, 255, 255, 255), * p3_mod=(255, 255, 255, 255), p4_mod=(255, 255, 255, 255)): # <<<<<<<<<<<<<< @@ -10749,89 +10749,89 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p1_xy)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p2_xy)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("draw_quad", 0, 4, 12, 1); __PYX_ERR(0, 489, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_quad", 0, 4, 12, 1); __PYX_ERR(0, 490, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p3_xy)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("draw_quad", 0, 4, 12, 2); __PYX_ERR(0, 489, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_quad", 0, 4, 12, 2); __PYX_ERR(0, 490, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p4_xy)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("draw_quad", 0, 4, 12, 3); __PYX_ERR(0, 489, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_quad", 0, 4, 12, 3); __PYX_ERR(0, 490, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p1_uv); if (value) { values[4] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p2_uv); if (value) { values[5] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p3_uv); if (value) { values[6] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p4_uv); if (value) { values[7] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p1_mod); if (value) { values[8] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 9: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p2_mod); if (value) { values[9] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 10: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p3_mod); if (value) { values[10] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 11: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p4_mod); if (value) { values[11] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 490, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_quad") < 0)) __PYX_ERR(0, 489, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_quad") < 0)) __PYX_ERR(0, 490, __pyx_L3_error) } } else { switch (__pyx_nargs) { @@ -10874,7 +10874,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("draw_quad", 0, 4, 12, __pyx_nargs); __PYX_ERR(0, 489, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_quad", 0, 4, 12, __pyx_nargs); __PYX_ERR(0, 490, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Texture.draw_quad", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -10882,7 +10882,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_v_self), __pyx_v_p1_xy, __pyx_v_p2_xy, __pyx_v_p3_xy, __pyx_v_p4_xy, __pyx_v_p1_uv, __pyx_v_p2_uv, __pyx_v_p3_uv, __pyx_v_p4_uv, __pyx_v_p1_mod, __pyx_v_p2_mod, __pyx_v_p3_mod, __pyx_v_p4_mod); - /* "pygame/_sdl2/video.pyx":489 + /* "pygame/_sdl2/video.pyx":490 * raise error() * * def draw_quad(self, p1_xy, p2_xy, p3_xy, p4_xy, # <<<<<<<<<<<<<< @@ -10934,7 +10934,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("draw_quad", 0); - /* "pygame/_sdl2/video.pyx":509 + /* "pygame/_sdl2/video.pyx":510 * :param p4_mod: The fourth vertex color modulation. * """ * if not SDL_VERSION_ATLEAST(2, 0, 18): # <<<<<<<<<<<<<< @@ -10944,14 +10944,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __pyx_t_1 = (!(SDL_VERSION_ATLEAST(2, 0, 18) != 0)); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":510 + /* "pygame/_sdl2/video.pyx":511 * """ * if not SDL_VERSION_ATLEAST(2, 0, 18): * raise error("draw_quad requires SDL 2.0.18 or newer") # <<<<<<<<<<<<<< * * cdef Uint8 _r_mod, _g_mod, _b_mod, _a_mod */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 510, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -10969,15 +10969,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_draw_quad_requires_SDL_2_0_18_or}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 510, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 510, __pyx_L1_error) + __PYX_ERR(0, 511, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":509 + /* "pygame/_sdl2/video.pyx":510 * :param p4_mod: The fourth vertex color modulation. * """ * if not SDL_VERSION_ATLEAST(2, 0, 18): # <<<<<<<<<<<<<< @@ -10986,7 +10986,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py */ } - /* "pygame/_sdl2/video.pyx":513 + /* "pygame/_sdl2/video.pyx":514 * * cdef Uint8 _r_mod, _g_mod, _b_mod, _a_mod * SDL_GetTextureColorMod(self._tex, &_r_mod, &_g_mod, &_b_mod) # <<<<<<<<<<<<<< @@ -10995,7 +10995,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py */ (void)(SDL_GetTextureColorMod(__pyx_v_self->_tex, (&__pyx_v__r_mod), (&__pyx_v__g_mod), (&__pyx_v__b_mod))); - /* "pygame/_sdl2/video.pyx":514 + /* "pygame/_sdl2/video.pyx":515 * cdef Uint8 _r_mod, _g_mod, _b_mod, _a_mod * SDL_GetTextureColorMod(self._tex, &_r_mod, &_g_mod, &_b_mod) * SDL_GetTextureAlphaMod(self._tex, &_a_mod) # <<<<<<<<<<<<<< @@ -11004,7 +11004,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py */ (void)(SDL_GetTextureAlphaMod(__pyx_v_self->_tex, (&__pyx_v__a_mod))); - /* "pygame/_sdl2/video.pyx":516 + /* "pygame/_sdl2/video.pyx":517 * SDL_GetTextureAlphaMod(self._tex, &_a_mod) * * cdef float r_mod = _r_mod / 255.0 # <<<<<<<<<<<<<< @@ -11013,7 +11013,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py */ __pyx_v_r_mod = (((float)__pyx_v__r_mod) / ((float)255.0)); - /* "pygame/_sdl2/video.pyx":517 + /* "pygame/_sdl2/video.pyx":518 * * cdef float r_mod = _r_mod / 255.0 * cdef float g_mod = _g_mod / 255.0 # <<<<<<<<<<<<<< @@ -11022,7 +11022,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py */ __pyx_v_g_mod = (((float)__pyx_v__g_mod) / ((float)255.0)); - /* "pygame/_sdl2/video.pyx":518 + /* "pygame/_sdl2/video.pyx":519 * cdef float r_mod = _r_mod / 255.0 * cdef float g_mod = _g_mod / 255.0 * cdef float b_mod = _b_mod / 255.0 # <<<<<<<<<<<<<< @@ -11031,7 +11031,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py */ __pyx_v_b_mod = (((float)__pyx_v__b_mod) / ((float)255.0)); - /* "pygame/_sdl2/video.pyx":519 + /* "pygame/_sdl2/video.pyx":520 * cdef float g_mod = _g_mod / 255.0 * cdef float b_mod = _b_mod / 255.0 * cdef float a_mod = _a_mod / 255.0 # <<<<<<<<<<<<<< @@ -11040,7 +11040,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py */ __pyx_v_a_mod = (((float)__pyx_v__a_mod) / ((float)255.0)); - /* "pygame/_sdl2/video.pyx":522 + /* "pygame/_sdl2/video.pyx":523 * * cdef SDL_Vertex vertices[6] * for i, vert in enumerate(((p1_xy, p1_mod, p1_uv), # <<<<<<<<<<<<<< @@ -11049,7 +11049,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py */ __Pyx_INCREF(__pyx_int_0); __pyx_t_2 = __pyx_int_0; - __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 522, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_p1_xy); __Pyx_GIVEREF(__pyx_v_p1_xy); @@ -11061,14 +11061,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __Pyx_GIVEREF(__pyx_v_p1_uv); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_p1_uv); - /* "pygame/_sdl2/video.pyx":523 + /* "pygame/_sdl2/video.pyx":524 * cdef SDL_Vertex vertices[6] * for i, vert in enumerate(((p1_xy, p1_mod, p1_uv), * (p2_xy, p2_mod, p2_uv), # <<<<<<<<<<<<<< * (p3_xy, p3_mod, p3_uv), * (p3_xy, p3_mod, p3_uv), */ - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 523, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_p2_xy); __Pyx_GIVEREF(__pyx_v_p2_xy); @@ -11080,14 +11080,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __Pyx_GIVEREF(__pyx_v_p2_uv); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_p2_uv); - /* "pygame/_sdl2/video.pyx":524 + /* "pygame/_sdl2/video.pyx":525 * for i, vert in enumerate(((p1_xy, p1_mod, p1_uv), * (p2_xy, p2_mod, p2_uv), * (p3_xy, p3_mod, p3_uv), # <<<<<<<<<<<<<< * (p3_xy, p3_mod, p3_uv), * (p4_xy, p4_mod, p4_uv), */ - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 524, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_p3_xy); __Pyx_GIVEREF(__pyx_v_p3_xy); @@ -11099,14 +11099,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __Pyx_GIVEREF(__pyx_v_p3_uv); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_p3_uv); - /* "pygame/_sdl2/video.pyx":525 + /* "pygame/_sdl2/video.pyx":526 * (p2_xy, p2_mod, p2_uv), * (p3_xy, p3_mod, p3_uv), * (p3_xy, p3_mod, p3_uv), # <<<<<<<<<<<<<< * (p4_xy, p4_mod, p4_uv), * (p1_xy, p1_mod, p1_uv))): */ - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 525, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_p3_xy); __Pyx_GIVEREF(__pyx_v_p3_xy); @@ -11118,14 +11118,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __Pyx_GIVEREF(__pyx_v_p3_uv); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_p3_uv); - /* "pygame/_sdl2/video.pyx":526 + /* "pygame/_sdl2/video.pyx":527 * (p3_xy, p3_mod, p3_uv), * (p3_xy, p3_mod, p3_uv), * (p4_xy, p4_mod, p4_uv), # <<<<<<<<<<<<<< * (p1_xy, p1_mod, p1_uv))): * xy, mod, uv = vert */ - __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 526, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_p4_xy); __Pyx_GIVEREF(__pyx_v_p4_xy); @@ -11137,14 +11137,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __Pyx_GIVEREF(__pyx_v_p4_uv); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_p4_uv); - /* "pygame/_sdl2/video.pyx":527 + /* "pygame/_sdl2/video.pyx":528 * (p3_xy, p3_mod, p3_uv), * (p4_xy, p4_mod, p4_uv), * (p1_xy, p1_mod, p1_uv))): # <<<<<<<<<<<<<< * xy, mod, uv = vert * vertices[i].position.x = xy[0] */ - __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 527, __pyx_L1_error) + __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_p1_xy); __Pyx_GIVEREF(__pyx_v_p1_xy); @@ -11156,14 +11156,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __Pyx_GIVEREF(__pyx_v_p1_uv); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_p1_uv); - /* "pygame/_sdl2/video.pyx":522 + /* "pygame/_sdl2/video.pyx":523 * * cdef SDL_Vertex vertices[6] * for i, vert in enumerate(((p1_xy, p1_mod, p1_uv), # <<<<<<<<<<<<<< * (p2_xy, p2_mod, p2_uv), * (p3_xy, p3_mod, p3_uv), */ - __pyx_t_10 = PyTuple_New(6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 522, __pyx_L1_error) + __pyx_t_10 = PyTuple_New(6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); @@ -11188,22 +11188,22 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py for (;;) { if (__pyx_t_11 >= 6) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely((0 < 0))) __PYX_ERR(0, 522, __pyx_L1_error) + __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely((0 < 0))) __PYX_ERR(0, 523, __pyx_L1_error) #else - __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 522, __pyx_L1_error) + __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif __Pyx_XDECREF_SET(__pyx_v_vert, __pyx_t_10); __pyx_t_10 = 0; __Pyx_INCREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); - __pyx_t_10 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 522, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_10; __pyx_t_10 = 0; - /* "pygame/_sdl2/video.pyx":528 + /* "pygame/_sdl2/video.pyx":529 * (p4_xy, p4_mod, p4_uv), * (p1_xy, p1_mod, p1_uv))): * xy, mod, uv = vert # <<<<<<<<<<<<<< @@ -11216,7 +11216,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 528, __pyx_L1_error) + __PYX_ERR(0, 529, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -11232,16 +11232,16 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_7); #else - __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 528, __pyx_L1_error) + __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 528, __pyx_L1_error) + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 528, __pyx_L1_error) + __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_v_vert); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 528, __pyx_L1_error) + __pyx_t_6 = PyObject_GetIter(__pyx_v_vert); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); index = 0; __pyx_t_10 = __pyx_t_12(__pyx_t_6); if (unlikely(!__pyx_t_10)) goto __pyx_L6_unpacking_failed; @@ -11250,7 +11250,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __Pyx_GOTREF(__pyx_t_8); index = 2; __pyx_t_7 = __pyx_t_12(__pyx_t_6); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_6), 3) < 0) __PYX_ERR(0, 528, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_6), 3) < 0) __PYX_ERR(0, 529, __pyx_L1_error) __pyx_t_12 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L7_unpacking_done; @@ -11258,7 +11258,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_12 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 528, __pyx_L1_error) + __PYX_ERR(0, 529, __pyx_L1_error) __pyx_L7_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_xy, __pyx_t_10); @@ -11268,149 +11268,149 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __Pyx_XDECREF_SET(__pyx_v_uv, __pyx_t_7); __pyx_t_7 = 0; - /* "pygame/_sdl2/video.pyx":529 + /* "pygame/_sdl2/video.pyx":530 * (p1_xy, p1_mod, p1_uv))): * xy, mod, uv = vert * vertices[i].position.x = xy[0] # <<<<<<<<<<<<<< * vertices[i].position.y = xy[1] * vertices[i].color.r = r_mod * mod[0] */ - __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_xy, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 529, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_xy, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_13 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_13 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 529, __pyx_L1_error) + __pyx_t_13 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_13 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 530, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 529, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 530, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_14]).position.x = __pyx_t_13; - /* "pygame/_sdl2/video.pyx":530 + /* "pygame/_sdl2/video.pyx":531 * xy, mod, uv = vert * vertices[i].position.x = xy[0] * vertices[i].position.y = xy[1] # <<<<<<<<<<<<<< * vertices[i].color.r = r_mod * mod[0] * vertices[i].color.g = g_mod * mod[1] */ - __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_xy, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 530, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_xy, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_13 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_13 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 530, __pyx_L1_error) + __pyx_t_13 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_13 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 531, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 530, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 531, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_14]).position.y = __pyx_t_13; - /* "pygame/_sdl2/video.pyx":531 + /* "pygame/_sdl2/video.pyx":532 * vertices[i].position.x = xy[0] * vertices[i].position.y = xy[1] * vertices[i].color.r = r_mod * mod[0] # <<<<<<<<<<<<<< * vertices[i].color.g = g_mod * mod[1] * vertices[i].color.b = b_mod * mod[2] */ - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_r_mod); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 531, __pyx_L1_error) + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_r_mod); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_mod, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 531, __pyx_L1_error) + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_mod, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = PyNumber_Multiply(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 531, __pyx_L1_error) + __pyx_t_10 = PyNumber_Multiply(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_15 = __Pyx_PyInt_As_Uint8(__pyx_t_10); if (unlikely((__pyx_t_15 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 531, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyInt_As_Uint8(__pyx_t_10); if (unlikely((__pyx_t_15 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 531, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 532, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_14]).color.r = __pyx_t_15; - /* "pygame/_sdl2/video.pyx":532 + /* "pygame/_sdl2/video.pyx":533 * vertices[i].position.y = xy[1] * vertices[i].color.r = r_mod * mod[0] * vertices[i].color.g = g_mod * mod[1] # <<<<<<<<<<<<<< * vertices[i].color.b = b_mod * mod[2] * vertices[i].color.a = a_mod * mod[3] if len(mod) > 3 else _a_mod */ - __pyx_t_10 = PyFloat_FromDouble(__pyx_v_g_mod); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 532, __pyx_L1_error) + __pyx_t_10 = PyFloat_FromDouble(__pyx_v_g_mod); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_mod, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 532, __pyx_L1_error) + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_mod, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PyNumber_Multiply(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 532, __pyx_L1_error) + __pyx_t_7 = PyNumber_Multiply(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_15 = __Pyx_PyInt_As_Uint8(__pyx_t_7); if (unlikely((__pyx_t_15 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 532, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyInt_As_Uint8(__pyx_t_7); if (unlikely((__pyx_t_15 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 533, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 532, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 533, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_14]).color.g = __pyx_t_15; - /* "pygame/_sdl2/video.pyx":533 + /* "pygame/_sdl2/video.pyx":534 * vertices[i].color.r = r_mod * mod[0] * vertices[i].color.g = g_mod * mod[1] * vertices[i].color.b = b_mod * mod[2] # <<<<<<<<<<<<<< * vertices[i].color.a = a_mod * mod[3] if len(mod) > 3 else _a_mod * vertices[i].tex_coord.x = uv[0] */ - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_b_mod); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 533, __pyx_L1_error) + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_b_mod); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_mod, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 533, __pyx_L1_error) + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_mod, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = PyNumber_Multiply(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 533, __pyx_L1_error) + __pyx_t_10 = PyNumber_Multiply(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_15 = __Pyx_PyInt_As_Uint8(__pyx_t_10); if (unlikely((__pyx_t_15 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 533, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyInt_As_Uint8(__pyx_t_10); if (unlikely((__pyx_t_15 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 534, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 533, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 534, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_14]).color.b = __pyx_t_15; - /* "pygame/_sdl2/video.pyx":534 + /* "pygame/_sdl2/video.pyx":535 * vertices[i].color.g = g_mod * mod[1] * vertices[i].color.b = b_mod * mod[2] * vertices[i].color.a = a_mod * mod[3] if len(mod) > 3 else _a_mod # <<<<<<<<<<<<<< * vertices[i].tex_coord.x = uv[0] * vertices[i].tex_coord.y = uv[1] */ - __pyx_t_14 = PyObject_Length(__pyx_v_mod); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(0, 534, __pyx_L1_error) + __pyx_t_14 = PyObject_Length(__pyx_v_mod); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error) if ((__pyx_t_14 > 3)) { - __pyx_t_10 = PyFloat_FromDouble(__pyx_v_a_mod); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 534, __pyx_L1_error) + __pyx_t_10 = PyFloat_FromDouble(__pyx_v_a_mod); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_mod, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 534, __pyx_L1_error) + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_mod, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PyNumber_Multiply(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 534, __pyx_L1_error) + __pyx_t_7 = PyNumber_Multiply(__pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_16 = __Pyx_PyInt_As_Uint8(__pyx_t_7); if (unlikely((__pyx_t_16 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 534, __pyx_L1_error) + __pyx_t_16 = __Pyx_PyInt_As_Uint8(__pyx_t_7); if (unlikely((__pyx_t_16 == ((Uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_15 = __pyx_t_16; } else { __pyx_t_15 = __pyx_v__a_mod; } - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 534, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_14]).color.a = __pyx_t_15; - /* "pygame/_sdl2/video.pyx":535 + /* "pygame/_sdl2/video.pyx":536 * vertices[i].color.b = b_mod * mod[2] * vertices[i].color.a = a_mod * mod[3] if len(mod) > 3 else _a_mod * vertices[i].tex_coord.x = uv[0] # <<<<<<<<<<<<<< * vertices[i].tex_coord.y = uv[1] * */ - __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_uv, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 535, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_uv, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_13 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_13 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L1_error) + __pyx_t_13 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_13 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 536, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 535, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 536, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_14]).tex_coord.x = __pyx_t_13; - /* "pygame/_sdl2/video.pyx":536 + /* "pygame/_sdl2/video.pyx":537 * vertices[i].color.a = a_mod * mod[3] if len(mod) > 3 else _a_mod * vertices[i].tex_coord.x = uv[0] * vertices[i].tex_coord.y = uv[1] # <<<<<<<<<<<<<< * * cdef int res = SDL_RenderGeometry(self.renderer._renderer, self._tex, vertices, 6, NULL, 0) */ - __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_uv, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 536, __pyx_L1_error) + __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_uv, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_13 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_13 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 536, __pyx_L1_error) + __pyx_t_13 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_13 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 536, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 537, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_14]).tex_coord.y = __pyx_t_13; - /* "pygame/_sdl2/video.pyx":522 + /* "pygame/_sdl2/video.pyx":523 * * cdef SDL_Vertex vertices[6] * for i, vert in enumerate(((p1_xy, p1_mod, p1_uv), # <<<<<<<<<<<<<< @@ -11421,7 +11421,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":538 + /* "pygame/_sdl2/video.pyx":539 * vertices[i].tex_coord.y = uv[1] * * cdef int res = SDL_RenderGeometry(self.renderer._renderer, self._tex, vertices, 6, NULL, 0) # <<<<<<<<<<<<<< @@ -11430,7 +11430,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py */ __pyx_v_res = SDL_RenderGeometry(__pyx_v_self->renderer->_renderer, __pyx_v_self->_tex, __pyx_v_vertices, 6, NULL, 0); - /* "pygame/_sdl2/video.pyx":539 + /* "pygame/_sdl2/video.pyx":540 * * cdef int res = SDL_RenderGeometry(self.renderer._renderer, self._tex, vertices, 6, NULL, 0) * if res < 0: # <<<<<<<<<<<<<< @@ -11440,14 +11440,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":540 + /* "pygame/_sdl2/video.pyx":541 * cdef int res = SDL_RenderGeometry(self.renderer._renderer, self._tex, vertices, 6, NULL, 0) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def update(self, surface, area=None): */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 540, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = NULL; __pyx_t_5 = 0; @@ -11465,15 +11465,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py PyObject *__pyx_callargs[1] = {__pyx_t_7, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 540, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 540, __pyx_L1_error) + __PYX_ERR(0, 541, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":539 + /* "pygame/_sdl2/video.pyx":540 * * cdef int res = SDL_RenderGeometry(self.renderer._renderer, self._tex, vertices, 6, NULL, 0) * if res < 0: # <<<<<<<<<<<<<< @@ -11482,7 +11482,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py */ } - /* "pygame/_sdl2/video.pyx":489 + /* "pygame/_sdl2/video.pyx":490 * raise error() * * def draw_quad(self, p1_xy, p2_xy, p3_xy, p4_xy, # <<<<<<<<<<<<<< @@ -11515,7 +11515,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_12draw_quad(struct __py return __pyx_r; } -/* "pygame/_sdl2/video.pyx":542 +/* "pygame/_sdl2/video.pyx":543 * raise error() * * def update(self, surface, area=None): # <<<<<<<<<<<<<< @@ -11570,19 +11570,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_surface)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 542, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 543, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_area); if (value) { values[1] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 542, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 543, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "update") < 0)) __PYX_ERR(0, 542, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "update") < 0)) __PYX_ERR(0, 543, __pyx_L3_error) } } else { switch (__pyx_nargs) { @@ -11598,7 +11598,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 542, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 543, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Texture.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -11635,7 +11635,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("update", 0); - /* "pygame/_sdl2/video.pyx":561 + /* "pygame/_sdl2/video.pyx":562 * """ * * if not pgSurface_Check(surface): # <<<<<<<<<<<<<< @@ -11645,20 +11645,20 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_1 = (!(pgSurface_Check(__pyx_v_surface) != 0)); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":562 + /* "pygame/_sdl2/video.pyx":563 * * if not pgSurface_Check(surface): * raise TypeError("update source should be a Surface.") # <<<<<<<<<<<<<< * * cdef SDL_Rect rect */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 562, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 562, __pyx_L1_error) + __PYX_ERR(0, 563, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":561 + /* "pygame/_sdl2/video.pyx":562 * """ * * if not pgSurface_Check(surface): # <<<<<<<<<<<<<< @@ -11667,7 +11667,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ } - /* "pygame/_sdl2/video.pyx":565 + /* "pygame/_sdl2/video.pyx":566 * * cdef SDL_Rect rect * rect.x = 0 # <<<<<<<<<<<<<< @@ -11676,7 +11676,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ __pyx_v_rect.x = 0; - /* "pygame/_sdl2/video.pyx":566 + /* "pygame/_sdl2/video.pyx":567 * cdef SDL_Rect rect * rect.x = 0 * rect.y = 0 # <<<<<<<<<<<<<< @@ -11685,7 +11685,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ __pyx_v_rect.y = 0; - /* "pygame/_sdl2/video.pyx":567 + /* "pygame/_sdl2/video.pyx":568 * rect.x = 0 * rect.y = 0 * cdef SDL_Rect *rectptr = pgRect_FromObject(area, &rect) # <<<<<<<<<<<<<< @@ -11694,7 +11694,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ __pyx_v_rectptr = pgRect_FromObject(__pyx_v_area, (&__pyx_v_rect)); - /* "pygame/_sdl2/video.pyx":568 + /* "pygame/_sdl2/video.pyx":569 * rect.y = 0 * cdef SDL_Rect *rectptr = pgRect_FromObject(area, &rect) * cdef SDL_Surface *surf = pgSurface_AsSurface(surface) # <<<<<<<<<<<<<< @@ -11703,7 +11703,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ __pyx_v_surf = pgSurface_AsSurface(__pyx_v_surface); - /* "pygame/_sdl2/video.pyx":570 + /* "pygame/_sdl2/video.pyx":571 * cdef SDL_Surface *surf = pgSurface_AsSurface(surface) * * if rectptr == NULL and area is not None: # <<<<<<<<<<<<<< @@ -11721,20 +11721,20 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_L5_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":571 + /* "pygame/_sdl2/video.pyx":572 * * if rectptr == NULL and area is not None: * raise TypeError('area must be a rectangle or None') # <<<<<<<<<<<<<< * * cdef int dst_width, dst_height */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 571, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 571, __pyx_L1_error) + __PYX_ERR(0, 572, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":570 + /* "pygame/_sdl2/video.pyx":571 * cdef SDL_Surface *surf = pgSurface_AsSurface(surface) * * if rectptr == NULL and area is not None: # <<<<<<<<<<<<<< @@ -11743,7 +11743,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ } - /* "pygame/_sdl2/video.pyx":574 + /* "pygame/_sdl2/video.pyx":575 * * cdef int dst_width, dst_height * if rectptr == NULL: # <<<<<<<<<<<<<< @@ -11753,7 +11753,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_1 = (__pyx_v_rectptr == NULL); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":575 + /* "pygame/_sdl2/video.pyx":576 * cdef int dst_width, dst_height * if rectptr == NULL: * dst_width = self.width # <<<<<<<<<<<<<< @@ -11763,7 +11763,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_4 = __pyx_v_self->width; __pyx_v_dst_width = __pyx_t_4; - /* "pygame/_sdl2/video.pyx":576 + /* "pygame/_sdl2/video.pyx":577 * if rectptr == NULL: * dst_width = self.width * dst_height = self.height # <<<<<<<<<<<<<< @@ -11773,7 +11773,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_4 = __pyx_v_self->height; __pyx_v_dst_height = __pyx_t_4; - /* "pygame/_sdl2/video.pyx":574 + /* "pygame/_sdl2/video.pyx":575 * * cdef int dst_width, dst_height * if rectptr == NULL: # <<<<<<<<<<<<<< @@ -11783,7 +11783,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o goto __pyx_L7; } - /* "pygame/_sdl2/video.pyx":578 + /* "pygame/_sdl2/video.pyx":579 * dst_height = self.height * else: * dst_width = rect.w # <<<<<<<<<<<<<< @@ -11794,7 +11794,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_4 = __pyx_v_rect.w; __pyx_v_dst_width = __pyx_t_4; - /* "pygame/_sdl2/video.pyx":579 + /* "pygame/_sdl2/video.pyx":580 * else: * dst_width = rect.w * dst_height = rect.h # <<<<<<<<<<<<<< @@ -11806,7 +11806,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o } __pyx_L7:; - /* "pygame/_sdl2/video.pyx":581 + /* "pygame/_sdl2/video.pyx":582 * dst_height = rect.h * * if dst_height > surf.h or dst_width > surf.w: # <<<<<<<<<<<<<< @@ -11824,7 +11824,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_L9_bool_binop_done:; if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":584 + /* "pygame/_sdl2/video.pyx":585 * # if the surface is smaller than the destination rect, * # clip the rect to prevent segfault * rectptr = &rect # make sure rectptr is not NULL # <<<<<<<<<<<<<< @@ -11833,7 +11833,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ __pyx_v_rectptr = (&__pyx_v_rect); - /* "pygame/_sdl2/video.pyx":585 + /* "pygame/_sdl2/video.pyx":586 * # clip the rect to prevent segfault * rectptr = &rect # make sure rectptr is not NULL * rect.h = surf.h # <<<<<<<<<<<<<< @@ -11843,7 +11843,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_4 = __pyx_v_surf->h; __pyx_v_rect.h = __pyx_t_4; - /* "pygame/_sdl2/video.pyx":586 + /* "pygame/_sdl2/video.pyx":587 * rectptr = &rect # make sure rectptr is not NULL * rect.h = surf.h * rect.w = surf.w # <<<<<<<<<<<<<< @@ -11853,7 +11853,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_4 = __pyx_v_surf->w; __pyx_v_rect.w = __pyx_t_4; - /* "pygame/_sdl2/video.pyx":581 + /* "pygame/_sdl2/video.pyx":582 * dst_height = rect.h * * if dst_height > surf.h or dst_width > surf.w: # <<<<<<<<<<<<<< @@ -11862,7 +11862,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ } - /* "pygame/_sdl2/video.pyx":589 + /* "pygame/_sdl2/video.pyx":590 * * # For converting the surface, if needed * cdef SDL_Surface *converted_surf = NULL # <<<<<<<<<<<<<< @@ -11871,7 +11871,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ __pyx_v_converted_surf = NULL; - /* "pygame/_sdl2/video.pyx":590 + /* "pygame/_sdl2/video.pyx":591 * # For converting the surface, if needed * cdef SDL_Surface *converted_surf = NULL * cdef SDL_PixelFormat *pixel_format = NULL # <<<<<<<<<<<<<< @@ -11880,7 +11880,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ __pyx_v_pixel_format = NULL; - /* "pygame/_sdl2/video.pyx":594 + /* "pygame/_sdl2/video.pyx":595 * * cdef Uint32 format_ * if (SDL_QueryTexture(self._tex, &format_, NULL, NULL, NULL) != 0): # <<<<<<<<<<<<<< @@ -11890,14 +11890,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_1 = (SDL_QueryTexture(__pyx_v_self->_tex, (&__pyx_v_format_), NULL, NULL, NULL) != 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":595 + /* "pygame/_sdl2/video.pyx":596 * cdef Uint32 format_ * if (SDL_QueryTexture(self._tex, &format_, NULL, NULL, NULL) != 0): * raise error() # <<<<<<<<<<<<<< * * cdef int res */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 595, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_4 = 0; @@ -11915,15 +11915,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 595, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 595, __pyx_L1_error) + __PYX_ERR(0, 596, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":594 + /* "pygame/_sdl2/video.pyx":595 * * cdef Uint32 format_ * if (SDL_QueryTexture(self._tex, &format_, NULL, NULL, NULL) != 0): # <<<<<<<<<<<<<< @@ -11932,7 +11932,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ } - /* "pygame/_sdl2/video.pyx":598 + /* "pygame/_sdl2/video.pyx":599 * * cdef int res * if format_ != surf.format.format: # <<<<<<<<<<<<<< @@ -11942,7 +11942,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_1 = (__pyx_v_format_ != __pyx_v_surf->format->format); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":599 + /* "pygame/_sdl2/video.pyx":600 * cdef int res * if format_ != surf.format.format: * if (SDL_GetSurfaceBlendMode(surf, &blend) != 0): # <<<<<<<<<<<<<< @@ -11952,14 +11952,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_1 = (SDL_GetSurfaceBlendMode(__pyx_v_surf, (&__pyx_v_blend)) != 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":600 + /* "pygame/_sdl2/video.pyx":601 * if format_ != surf.format.format: * if (SDL_GetSurfaceBlendMode(surf, &blend) != 0): * raise error() # <<<<<<<<<<<<<< * * pixel_format = SDL_AllocFormat(format_) */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 600, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_4 = 0; @@ -11977,15 +11977,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 600, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 600, __pyx_L1_error) + __PYX_ERR(0, 601, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":599 + /* "pygame/_sdl2/video.pyx":600 * cdef int res * if format_ != surf.format.format: * if (SDL_GetSurfaceBlendMode(surf, &blend) != 0): # <<<<<<<<<<<<<< @@ -11994,7 +11994,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ } - /* "pygame/_sdl2/video.pyx":602 + /* "pygame/_sdl2/video.pyx":603 * raise error() * * pixel_format = SDL_AllocFormat(format_) # <<<<<<<<<<<<<< @@ -12003,7 +12003,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ __pyx_v_pixel_format = SDL_AllocFormat(__pyx_v_format_); - /* "pygame/_sdl2/video.pyx":603 + /* "pygame/_sdl2/video.pyx":604 * * pixel_format = SDL_AllocFormat(format_) * if (pixel_format == NULL): # <<<<<<<<<<<<<< @@ -12013,14 +12013,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_1 = (__pyx_v_pixel_format == NULL); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":604 + /* "pygame/_sdl2/video.pyx":605 * pixel_format = SDL_AllocFormat(format_) * if (pixel_format == NULL): * raise error() # <<<<<<<<<<<<<< * * converted_surf = SDL_ConvertSurface(surf, pixel_format, 0) */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 604, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_4 = 0; @@ -12038,15 +12038,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 604, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 604, __pyx_L1_error) + __PYX_ERR(0, 605, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":603 + /* "pygame/_sdl2/video.pyx":604 * * pixel_format = SDL_AllocFormat(format_) * if (pixel_format == NULL): # <<<<<<<<<<<<<< @@ -12055,7 +12055,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ } - /* "pygame/_sdl2/video.pyx":606 + /* "pygame/_sdl2/video.pyx":607 * raise error() * * converted_surf = SDL_ConvertSurface(surf, pixel_format, 0) # <<<<<<<<<<<<<< @@ -12064,7 +12064,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ __pyx_v_converted_surf = SDL_ConvertSurface(__pyx_v_surf, __pyx_v_pixel_format, 0); - /* "pygame/_sdl2/video.pyx":607 + /* "pygame/_sdl2/video.pyx":608 * * converted_surf = SDL_ConvertSurface(surf, pixel_format, 0) * if (SDL_SetSurfaceBlendMode(converted_surf, blend) != 0): # <<<<<<<<<<<<<< @@ -12074,7 +12074,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_1 = (SDL_SetSurfaceBlendMode(__pyx_v_converted_surf, __pyx_v_blend) != 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":608 + /* "pygame/_sdl2/video.pyx":609 * converted_surf = SDL_ConvertSurface(surf, pixel_format, 0) * if (SDL_SetSurfaceBlendMode(converted_surf, blend) != 0): * SDL_FreeSurface(converted_surf) # <<<<<<<<<<<<<< @@ -12083,7 +12083,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ SDL_FreeSurface(__pyx_v_converted_surf); - /* "pygame/_sdl2/video.pyx":609 + /* "pygame/_sdl2/video.pyx":610 * if (SDL_SetSurfaceBlendMode(converted_surf, blend) != 0): * SDL_FreeSurface(converted_surf) * SDL_FreeFormat(pixel_format) # <<<<<<<<<<<<<< @@ -12092,14 +12092,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ SDL_FreeFormat(__pyx_v_pixel_format); - /* "pygame/_sdl2/video.pyx":610 + /* "pygame/_sdl2/video.pyx":611 * SDL_FreeSurface(converted_surf) * SDL_FreeFormat(pixel_format) * raise error() # <<<<<<<<<<<<<< * * res = SDL_UpdateTexture(self._tex, rectptr, converted_surf.pixels, converted_surf.pitch) */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 610, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_4 = 0; @@ -12117,15 +12117,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 610, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 610, __pyx_L1_error) + __PYX_ERR(0, 611, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":607 + /* "pygame/_sdl2/video.pyx":608 * * converted_surf = SDL_ConvertSurface(surf, pixel_format, 0) * if (SDL_SetSurfaceBlendMode(converted_surf, blend) != 0): # <<<<<<<<<<<<<< @@ -12134,7 +12134,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ } - /* "pygame/_sdl2/video.pyx":612 + /* "pygame/_sdl2/video.pyx":613 * raise error() * * res = SDL_UpdateTexture(self._tex, rectptr, converted_surf.pixels, converted_surf.pitch) # <<<<<<<<<<<<<< @@ -12143,7 +12143,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ __pyx_v_res = SDL_UpdateTexture(__pyx_v_self->_tex, __pyx_v_rectptr, __pyx_v_converted_surf->pixels, __pyx_v_converted_surf->pitch); - /* "pygame/_sdl2/video.pyx":613 + /* "pygame/_sdl2/video.pyx":614 * * res = SDL_UpdateTexture(self._tex, rectptr, converted_surf.pixels, converted_surf.pitch) * SDL_FreeSurface(converted_surf) # <<<<<<<<<<<<<< @@ -12152,7 +12152,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ SDL_FreeSurface(__pyx_v_converted_surf); - /* "pygame/_sdl2/video.pyx":614 + /* "pygame/_sdl2/video.pyx":615 * res = SDL_UpdateTexture(self._tex, rectptr, converted_surf.pixels, converted_surf.pitch) * SDL_FreeSurface(converted_surf) * SDL_FreeFormat(pixel_format) # <<<<<<<<<<<<<< @@ -12161,7 +12161,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ SDL_FreeFormat(__pyx_v_pixel_format); - /* "pygame/_sdl2/video.pyx":598 + /* "pygame/_sdl2/video.pyx":599 * * cdef int res * if format_ != surf.format.format: # <<<<<<<<<<<<<< @@ -12171,7 +12171,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o goto __pyx_L12; } - /* "pygame/_sdl2/video.pyx":616 + /* "pygame/_sdl2/video.pyx":617 * SDL_FreeFormat(pixel_format) * else: * res = SDL_UpdateTexture(self._tex, rectptr, surf.pixels, surf.pitch) # <<<<<<<<<<<<<< @@ -12183,7 +12183,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o } __pyx_L12:; - /* "pygame/_sdl2/video.pyx":618 + /* "pygame/_sdl2/video.pyx":619 * res = SDL_UpdateTexture(self._tex, rectptr, surf.pixels, surf.pitch) * * if res < 0: # <<<<<<<<<<<<<< @@ -12193,14 +12193,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":619 + /* "pygame/_sdl2/video.pyx":620 * * if res < 0: * raise error() # <<<<<<<<<<<<<< * * # disable auto_pickle since it causes stubcheck error */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 619, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_4 = 0; @@ -12218,15 +12218,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 619, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 619, __pyx_L1_error) + __PYX_ERR(0, 620, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":618 + /* "pygame/_sdl2/video.pyx":619 * res = SDL_UpdateTexture(self._tex, rectptr, surf.pixels, surf.pitch) * * if res < 0: # <<<<<<<<<<<<<< @@ -12235,7 +12235,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_14update(struct __pyx_o */ } - /* "pygame/_sdl2/video.pyx":542 + /* "pygame/_sdl2/video.pyx":543 * raise error() * * def update(self, surface, area=None): # <<<<<<<<<<<<<< @@ -12392,7 +12392,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_7Texture_6height___get__(struct return __pyx_r; } -/* "pygame/_sdl2/video.pyx":625 +/* "pygame/_sdl2/video.pyx":626 * cdef class Image: * * def __cinit__(self): # <<<<<<<<<<<<<< @@ -12429,7 +12429,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image___cinit__(struct __pyx_obj_6pyg int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__cinit__", 0); - /* "pygame/_sdl2/video.pyx":626 + /* "pygame/_sdl2/video.pyx":627 * * def __cinit__(self): * self.angle = 0 # <<<<<<<<<<<<<< @@ -12438,7 +12438,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image___cinit__(struct __pyx_obj_6pyg */ __pyx_v_self->angle = 0.0; - /* "pygame/_sdl2/video.pyx":627 + /* "pygame/_sdl2/video.pyx":628 * def __cinit__(self): * self.angle = 0 * self._origin.x = 0 # <<<<<<<<<<<<<< @@ -12447,7 +12447,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image___cinit__(struct __pyx_obj_6pyg */ __pyx_v_self->_origin.x = 0; - /* "pygame/_sdl2/video.pyx":628 + /* "pygame/_sdl2/video.pyx":629 * self.angle = 0 * self._origin.x = 0 * self._origin.y = 0 # <<<<<<<<<<<<<< @@ -12456,7 +12456,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image___cinit__(struct __pyx_obj_6pyg */ __pyx_v_self->_origin.y = 0; - /* "pygame/_sdl2/video.pyx":629 + /* "pygame/_sdl2/video.pyx":630 * self._origin.x = 0 * self._origin.y = 0 * self._originptr = NULL # <<<<<<<<<<<<<< @@ -12465,7 +12465,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image___cinit__(struct __pyx_obj_6pyg */ __pyx_v_self->_originptr = NULL; - /* "pygame/_sdl2/video.pyx":630 + /* "pygame/_sdl2/video.pyx":631 * self._origin.y = 0 * self._originptr = NULL * self.flip_x = False # <<<<<<<<<<<<<< @@ -12474,7 +12474,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image___cinit__(struct __pyx_obj_6pyg */ __pyx_v_self->flip_x = 0; - /* "pygame/_sdl2/video.pyx":631 + /* "pygame/_sdl2/video.pyx":632 * self._originptr = NULL * self.flip_x = False * self.flip_y = False # <<<<<<<<<<<<<< @@ -12483,7 +12483,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image___cinit__(struct __pyx_obj_6pyg */ __pyx_v_self->flip_y = 0; - /* "pygame/_sdl2/video.pyx":633 + /* "pygame/_sdl2/video.pyx":634 * self.flip_y = False * * cdef Uint8[4] defaultColor = [255, 255, 255, 255] # <<<<<<<<<<<<<< @@ -12496,23 +12496,23 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image___cinit__(struct __pyx_obj_6pyg __pyx_t_1[3] = 0xFF; memcpy(&(__pyx_v_defaultColor[0]), __pyx_t_1, sizeof(__pyx_v_defaultColor[0]) * (4)); - /* "pygame/_sdl2/video.pyx":634 + /* "pygame/_sdl2/video.pyx":635 * * cdef Uint8[4] defaultColor = [255, 255, 255, 255] * self._color = pgColor_NewLength(defaultColor, 4) # <<<<<<<<<<<<<< * self.alpha = 255 * */ - __pyx_t_2 = pgColor_NewLength(__pyx_v_defaultColor, 4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 634, __pyx_L1_error) + __pyx_t_2 = pgColor_NewLength(__pyx_v_defaultColor, 4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6pygame_5_sdl2_5video_Color))))) __PYX_ERR(0, 634, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6pygame_5_sdl2_5video_Color))))) __PYX_ERR(0, 635, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF((PyObject *)__pyx_v_self->_color); __Pyx_DECREF((PyObject *)__pyx_v_self->_color); __pyx_v_self->_color = ((pgColorObject *)__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":635 + /* "pygame/_sdl2/video.pyx":636 * cdef Uint8[4] defaultColor = [255, 255, 255, 255] * self._color = pgColor_NewLength(defaultColor, 4) * self.alpha = 255 # <<<<<<<<<<<<<< @@ -12521,7 +12521,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image___cinit__(struct __pyx_obj_6pyg */ __pyx_v_self->alpha = 255.0; - /* "pygame/_sdl2/video.pyx":625 + /* "pygame/_sdl2/video.pyx":626 * cdef class Image: * * def __cinit__(self): # <<<<<<<<<<<<<< @@ -12541,7 +12541,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image___cinit__(struct __pyx_obj_6pyg return __pyx_r; } -/* "pygame/_sdl2/video.pyx":637 +/* "pygame/_sdl2/video.pyx":638 * self.alpha = 255 * * def __init__(self, texture_or_image, srcrect=None): # <<<<<<<<<<<<<< @@ -12584,19 +12584,19 @@ static int __pyx_pw_6pygame_5_sdl2_5video_5Image_3__init__(PyObject *__pyx_v_sel switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_texture_or_image)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 637, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 638, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_srcrect); if (value) { values[1] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 637, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 638, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 637, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 638, __pyx_L3_error) } } else { switch (__pyx_nargs) { @@ -12612,7 +12612,7 @@ static int __pyx_pw_6pygame_5_sdl2_5video_5Image_3__init__(PyObject *__pyx_v_sel } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 637, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 638, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Image.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -12642,7 +12642,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "pygame/_sdl2/video.pyx":654 + /* "pygame/_sdl2/video.pyx":655 * cdef SDL_Rect *rectptr * * if isinstance(texture_or_image, Image): # <<<<<<<<<<<<<< @@ -12652,42 +12652,42 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_texture_or_image, __pyx_ptype_6pygame_5_sdl2_5video_Image); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":655 + /* "pygame/_sdl2/video.pyx":656 * * if isinstance(texture_or_image, Image): * self.texture = texture_or_image.texture # <<<<<<<<<<<<<< * self.srcrect = pgRect_New(&(texture_or_image.srcrect).r) * else: */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_texture_or_image, __pyx_n_s_texture); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 655, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_texture_or_image, __pyx_n_s_texture); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6pygame_5_sdl2_5video_Texture))))) __PYX_ERR(0, 655, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6pygame_5_sdl2_5video_Texture))))) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF((PyObject *)__pyx_v_self->texture); __Pyx_DECREF((PyObject *)__pyx_v_self->texture); __pyx_v_self->texture = ((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":656 + /* "pygame/_sdl2/video.pyx":657 * if isinstance(texture_or_image, Image): * self.texture = texture_or_image.texture * self.srcrect = pgRect_New(&(texture_or_image.srcrect).r) # <<<<<<<<<<<<<< * else: * self.texture = texture_or_image */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_texture_or_image, __pyx_n_s_srcrect); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 656, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_texture_or_image, __pyx_n_s_srcrect); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = pgRect_New((&((pgRectObject *)__pyx_t_2)->r)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 656, __pyx_L1_error) + __pyx_t_3 = pgRect_New((&((pgRectObject *)__pyx_t_2)->r)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6pygame_5_sdl2_5video_Rect))))) __PYX_ERR(0, 656, __pyx_L1_error) + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6pygame_5_sdl2_5video_Rect))))) __PYX_ERR(0, 657, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF((PyObject *)__pyx_v_self->srcrect); __Pyx_DECREF((PyObject *)__pyx_v_self->srcrect); __pyx_v_self->srcrect = ((pgRectObject *)__pyx_t_3); __pyx_t_3 = 0; - /* "pygame/_sdl2/video.pyx":654 + /* "pygame/_sdl2/video.pyx":655 * cdef SDL_Rect *rectptr * * if isinstance(texture_or_image, Image): # <<<<<<<<<<<<<< @@ -12697,7 +12697,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg goto __pyx_L3; } - /* "pygame/_sdl2/video.pyx":658 + /* "pygame/_sdl2/video.pyx":659 * self.srcrect = pgRect_New(&(texture_or_image.srcrect).r) * else: * self.texture = texture_or_image # <<<<<<<<<<<<<< @@ -12705,7 +12705,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg * self.blend_mode = texture_or_image.blend_mode */ /*else*/ { - if (!(likely(((__pyx_v_texture_or_image) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_texture_or_image, __pyx_ptype_6pygame_5_sdl2_5video_Texture))))) __PYX_ERR(0, 658, __pyx_L1_error) + if (!(likely(((__pyx_v_texture_or_image) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_texture_or_image, __pyx_ptype_6pygame_5_sdl2_5video_Texture))))) __PYX_ERR(0, 659, __pyx_L1_error) __pyx_t_3 = __pyx_v_texture_or_image; __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); @@ -12714,14 +12714,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg __pyx_v_self->texture = ((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_t_3); __pyx_t_3 = 0; - /* "pygame/_sdl2/video.pyx":659 + /* "pygame/_sdl2/video.pyx":660 * else: * self.texture = texture_or_image * self.srcrect = texture_or_image.get_rect() # <<<<<<<<<<<<<< * self.blend_mode = texture_or_image.blend_mode * */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_texture_or_image, __pyx_n_s_get_rect); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 659, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_texture_or_image, __pyx_n_s_get_rect); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -12739,11 +12739,11 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 659, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6pygame_5_sdl2_5video_Rect))))) __PYX_ERR(0, 659, __pyx_L1_error) + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6pygame_5_sdl2_5video_Rect))))) __PYX_ERR(0, 660, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF((PyObject *)__pyx_v_self->srcrect); __Pyx_DECREF((PyObject *)__pyx_v_self->srcrect); @@ -12752,20 +12752,20 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg } __pyx_L3:; - /* "pygame/_sdl2/video.pyx":660 + /* "pygame/_sdl2/video.pyx":661 * self.texture = texture_or_image * self.srcrect = texture_or_image.get_rect() * self.blend_mode = texture_or_image.blend_mode # <<<<<<<<<<<<<< * * if srcrect is not None: */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_texture_or_image, __pyx_n_s_blend_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 660, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_texture_or_image, __pyx_n_s_blend_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = ((SDL_BlendMode)__Pyx_PyInt_As_SDL_BlendMode(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 660, __pyx_L1_error) + __pyx_t_6 = ((SDL_BlendMode)__Pyx_PyInt_As_SDL_BlendMode(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 661, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->blend_mode = __pyx_t_6; - /* "pygame/_sdl2/video.pyx":662 + /* "pygame/_sdl2/video.pyx":663 * self.blend_mode = texture_or_image.blend_mode * * if srcrect is not None: # <<<<<<<<<<<<<< @@ -12775,7 +12775,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg __pyx_t_1 = (__pyx_v_srcrect != Py_None); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":663 + /* "pygame/_sdl2/video.pyx":664 * * if srcrect is not None: * rectptr = pgRect_FromObject(srcrect, &temp) # <<<<<<<<<<<<<< @@ -12784,7 +12784,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg */ __pyx_v_rectptr = pgRect_FromObject(__pyx_v_srcrect, (&__pyx_v_temp)); - /* "pygame/_sdl2/video.pyx":664 + /* "pygame/_sdl2/video.pyx":665 * if srcrect is not None: * rectptr = pgRect_FromObject(srcrect, &temp) * if rectptr == NULL: # <<<<<<<<<<<<<< @@ -12794,20 +12794,20 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg __pyx_t_1 = (__pyx_v_rectptr == NULL); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":665 + /* "pygame/_sdl2/video.pyx":666 * rectptr = pgRect_FromObject(srcrect, &temp) * if rectptr == NULL: * raise TypeError('srcrect must be None or a rectangle') # <<<<<<<<<<<<<< * temp.x = rectptr.x * temp.y = rectptr.y */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 665, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 665, __pyx_L1_error) + __PYX_ERR(0, 666, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":664 + /* "pygame/_sdl2/video.pyx":665 * if srcrect is not None: * rectptr = pgRect_FromObject(srcrect, &temp) * if rectptr == NULL: # <<<<<<<<<<<<<< @@ -12816,7 +12816,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg */ } - /* "pygame/_sdl2/video.pyx":666 + /* "pygame/_sdl2/video.pyx":667 * if rectptr == NULL: * raise TypeError('srcrect must be None or a rectangle') * temp.x = rectptr.x # <<<<<<<<<<<<<< @@ -12826,7 +12826,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg __pyx_t_5 = __pyx_v_rectptr->x; __pyx_v_temp.x = __pyx_t_5; - /* "pygame/_sdl2/video.pyx":667 + /* "pygame/_sdl2/video.pyx":668 * raise TypeError('srcrect must be None or a rectangle') * temp.x = rectptr.x * temp.y = rectptr.y # <<<<<<<<<<<<<< @@ -12836,7 +12836,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg __pyx_t_5 = __pyx_v_rectptr->y; __pyx_v_temp.y = __pyx_t_5; - /* "pygame/_sdl2/video.pyx":668 + /* "pygame/_sdl2/video.pyx":669 * temp.x = rectptr.x * temp.y = rectptr.y * temp.w = rectptr.w # <<<<<<<<<<<<<< @@ -12846,7 +12846,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg __pyx_t_5 = __pyx_v_rectptr->w; __pyx_v_temp.w = __pyx_t_5; - /* "pygame/_sdl2/video.pyx":669 + /* "pygame/_sdl2/video.pyx":670 * temp.y = rectptr.y * temp.w = rectptr.w * temp.h = rectptr.h # <<<<<<<<<<<<<< @@ -12856,7 +12856,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg __pyx_t_5 = __pyx_v_rectptr->h; __pyx_v_temp.h = __pyx_t_5; - /* "pygame/_sdl2/video.pyx":671 + /* "pygame/_sdl2/video.pyx":672 * temp.h = rectptr.h * * if temp.x < 0 or temp.y < 0 or \ # <<<<<<<<<<<<<< @@ -12876,7 +12876,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg goto __pyx_L7_bool_binop_done; } - /* "pygame/_sdl2/video.pyx":672 + /* "pygame/_sdl2/video.pyx":673 * * if temp.x < 0 or temp.y < 0 or \ * temp.w < 0 or temp.h < 0 or \ # <<<<<<<<<<<<<< @@ -12896,21 +12896,21 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg goto __pyx_L7_bool_binop_done; } - /* "pygame/_sdl2/video.pyx":673 + /* "pygame/_sdl2/video.pyx":674 * if temp.x < 0 or temp.y < 0 or \ * temp.w < 0 or temp.h < 0 or \ * temp.x + temp.w > self.srcrect.w or \ # <<<<<<<<<<<<<< * temp.y + temp.h > self.srcrect.h: * raise ValueError('rect values are out of range') */ - __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_temp.x + __pyx_v_temp.w)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 673, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_temp.x + __pyx_v_temp.w)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->srcrect), __pyx_n_s_w); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 673, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->srcrect), __pyx_n_s_w); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 673, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 674, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 673, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 674, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_7) { } else { @@ -12918,26 +12918,26 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg goto __pyx_L7_bool_binop_done; } - /* "pygame/_sdl2/video.pyx":674 + /* "pygame/_sdl2/video.pyx":675 * temp.w < 0 or temp.h < 0 or \ * temp.x + temp.w > self.srcrect.w or \ * temp.y + temp.h > self.srcrect.h: # <<<<<<<<<<<<<< * raise ValueError('rect values are out of range') * temp.x += self.srcrect.x */ - __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_temp.y + __pyx_v_temp.h)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 674, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_temp.y + __pyx_v_temp.h)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->srcrect), __pyx_n_s_h); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 674, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->srcrect), __pyx_n_s_h); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 674, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 675, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 674, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 675, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __pyx_t_7; __pyx_L7_bool_binop_done:; - /* "pygame/_sdl2/video.pyx":671 + /* "pygame/_sdl2/video.pyx":672 * temp.h = rectptr.h * * if temp.x < 0 or temp.y < 0 or \ # <<<<<<<<<<<<<< @@ -12946,20 +12946,20 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg */ if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":675 + /* "pygame/_sdl2/video.pyx":676 * temp.x + temp.w > self.srcrect.w or \ * temp.y + temp.h > self.srcrect.h: * raise ValueError('rect values are out of range') # <<<<<<<<<<<<<< * temp.x += self.srcrect.x * temp.y += self.srcrect.y */ - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 675, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 675, __pyx_L1_error) + __PYX_ERR(0, 676, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":671 + /* "pygame/_sdl2/video.pyx":672 * temp.h = rectptr.h * * if temp.x < 0 or temp.y < 0 or \ # <<<<<<<<<<<<<< @@ -12968,61 +12968,61 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg */ } - /* "pygame/_sdl2/video.pyx":676 + /* "pygame/_sdl2/video.pyx":677 * temp.y + temp.h > self.srcrect.h: * raise ValueError('rect values are out of range') * temp.x += self.srcrect.x # <<<<<<<<<<<<<< * temp.y += self.srcrect.y * self.srcrect = pgRect_New(&temp) */ - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_temp.x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 676, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_temp.x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->srcrect), __pyx_n_s_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 676, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->srcrect), __pyx_n_s_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 676, __pyx_L1_error) + __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 676, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_temp.x = __pyx_t_5; - /* "pygame/_sdl2/video.pyx":677 + /* "pygame/_sdl2/video.pyx":678 * raise ValueError('rect values are out of range') * temp.x += self.srcrect.x * temp.y += self.srcrect.y # <<<<<<<<<<<<<< * self.srcrect = pgRect_New(&temp) * */ - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_temp.y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_temp.y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->srcrect), __pyx_n_s_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->srcrect), __pyx_n_s_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 677, __pyx_L1_error) + __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 678, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_temp.y = __pyx_t_5; - /* "pygame/_sdl2/video.pyx":678 + /* "pygame/_sdl2/video.pyx":679 * temp.x += self.srcrect.x * temp.y += self.srcrect.y * self.srcrect = pgRect_New(&temp) # <<<<<<<<<<<<<< * * @property */ - __pyx_t_3 = pgRect_New((&__pyx_v_temp)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 678, __pyx_L1_error) + __pyx_t_3 = pgRect_New((&__pyx_v_temp)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6pygame_5_sdl2_5video_Rect))))) __PYX_ERR(0, 678, __pyx_L1_error) + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_6pygame_5_sdl2_5video_Rect))))) __PYX_ERR(0, 679, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF((PyObject *)__pyx_v_self->srcrect); __Pyx_DECREF((PyObject *)__pyx_v_self->srcrect); __pyx_v_self->srcrect = ((pgRectObject *)__pyx_t_3); __pyx_t_3 = 0; - /* "pygame/_sdl2/video.pyx":662 + /* "pygame/_sdl2/video.pyx":663 * self.blend_mode = texture_or_image.blend_mode * * if srcrect is not None: # <<<<<<<<<<<<<< @@ -13031,7 +13031,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg */ } - /* "pygame/_sdl2/video.pyx":637 + /* "pygame/_sdl2/video.pyx":638 * self.alpha = 255 * * def __init__(self, texture_or_image, srcrect=None): # <<<<<<<<<<<<<< @@ -13053,7 +13053,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_2__init__(struct __pyx_obj_6pyg return __pyx_r; } -/* "pygame/_sdl2/video.pyx":680 +/* "pygame/_sdl2/video.pyx":681 * self.srcrect = pgRect_New(&temp) * * @property # <<<<<<<<<<<<<< @@ -13080,7 +13080,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_5color___get__(struct __p __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); - /* "pygame/_sdl2/video.pyx":684 + /* "pygame/_sdl2/video.pyx":685 * """Gets or sets the Image color modifier * """ * return self._color # <<<<<<<<<<<<<< @@ -13092,7 +13092,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_5color___get__(struct __p __pyx_r = ((PyObject *)__pyx_v_self->_color); goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":680 + /* "pygame/_sdl2/video.pyx":681 * self.srcrect = pgRect_New(&temp) * * @property # <<<<<<<<<<<<<< @@ -13107,7 +13107,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_5color___get__(struct __p return __pyx_r; } -/* "pygame/_sdl2/video.pyx":686 +/* "pygame/_sdl2/video.pyx":687 * return self._color * * @color.setter # <<<<<<<<<<<<<< @@ -13140,28 +13140,28 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_5color_2__set__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - /* "pygame/_sdl2/video.pyx":689 + /* "pygame/_sdl2/video.pyx":690 * def color(self, new_color): * cdef Uint8[4] rgba * pg_RGBAFromObjEx(new_color, rgba, PG_COLOR_HANDLE_ALL) # <<<<<<<<<<<<<< * * self._color[:3] = rgba[:3] */ - __pyx_t_1 = pg_RGBAFromObjEx(__pyx_v_new_color, __pyx_v_rgba, PG_COLOR_HANDLE_ALL); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 689, __pyx_L1_error) + __pyx_t_1 = pg_RGBAFromObjEx(__pyx_v_new_color, __pyx_v_rgba, PG_COLOR_HANDLE_ALL); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 690, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":691 + /* "pygame/_sdl2/video.pyx":692 * pg_RGBAFromObjEx(new_color, rgba, PG_COLOR_HANDLE_ALL) * * self._color[:3] = rgba[:3] # <<<<<<<<<<<<<< * * @property */ - __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_rgba) + 0, 3 - 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 691, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_rgba) + 0, 3 - 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetSlice(((PyObject *)__pyx_v_self->_color), __pyx_t_2, 0, 3, NULL, NULL, &__pyx_slice__19, 0, 1, 1) < 0) __PYX_ERR(0, 691, __pyx_L1_error) + if (__Pyx_PyObject_SetSlice(((PyObject *)__pyx_v_self->_color), __pyx_t_2, 0, 3, NULL, NULL, &__pyx_slice__19, 0, 1, 1) < 0) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":686 + /* "pygame/_sdl2/video.pyx":687 * return self._color * * @color.setter # <<<<<<<<<<<<<< @@ -13181,7 +13181,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_5color_2__set__(struct __pyx_ob return __pyx_r; } -/* "pygame/_sdl2/video.pyx":693 +/* "pygame/_sdl2/video.pyx":694 * self._color[:3] = rgba[:3] * * @property # <<<<<<<<<<<<<< @@ -13215,7 +13215,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_6origin___get__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "pygame/_sdl2/video.pyx":702 + /* "pygame/_sdl2/video.pyx":703 * its center. * """ * if self._originptr == NULL: # <<<<<<<<<<<<<< @@ -13225,7 +13225,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_6origin___get__(struct __ __pyx_t_1 = (__pyx_v_self->_originptr == NULL); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":703 + /* "pygame/_sdl2/video.pyx":704 * """ * if self._originptr == NULL: * return None # <<<<<<<<<<<<<< @@ -13236,7 +13236,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_6origin___get__(struct __ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":702 + /* "pygame/_sdl2/video.pyx":703 * its center. * """ * if self._originptr == NULL: # <<<<<<<<<<<<<< @@ -13245,7 +13245,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_6origin___get__(struct __ */ } - /* "pygame/_sdl2/video.pyx":705 + /* "pygame/_sdl2/video.pyx":706 * return None * else: * return (self._origin.x, self._origin.y) # <<<<<<<<<<<<<< @@ -13254,11 +13254,11 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_6origin___get__(struct __ */ /*else*/ { __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->_origin.x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 705, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->_origin.x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->_origin.y); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 705, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->_origin.y); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 705, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); @@ -13271,7 +13271,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_6origin___get__(struct __ goto __pyx_L0; } - /* "pygame/_sdl2/video.pyx":693 + /* "pygame/_sdl2/video.pyx":694 * self._color[:3] = rgba[:3] * * @property # <<<<<<<<<<<<<< @@ -13292,7 +13292,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_6origin___get__(struct __ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":707 +/* "pygame/_sdl2/video.pyx":708 * return (self._origin.x, self._origin.y) * * @origin.setter # <<<<<<<<<<<<<< @@ -13325,43 +13325,43 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_6origin_2__set__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - /* "pygame/_sdl2/video.pyx":709 + /* "pygame/_sdl2/video.pyx":710 * @origin.setter * def origin(self, new_origin): * if new_origin: # <<<<<<<<<<<<<< * self._origin.x = new_origin[0] * self._origin.y = new_origin[1] */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_new_origin); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 709, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_new_origin); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 710, __pyx_L1_error) if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":710 + /* "pygame/_sdl2/video.pyx":711 * def origin(self, new_origin): * if new_origin: * self._origin.x = new_origin[0] # <<<<<<<<<<<<<< * self._origin.y = new_origin[1] * self._originptr = &self._origin */ - __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_new_origin, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 710, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_new_origin, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 710, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->_origin.x = ((int)__pyx_t_3); - /* "pygame/_sdl2/video.pyx":711 + /* "pygame/_sdl2/video.pyx":712 * if new_origin: * self._origin.x = new_origin[0] * self._origin.y = new_origin[1] # <<<<<<<<<<<<<< * self._originptr = &self._origin * else: */ - __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_new_origin, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 711, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_new_origin, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 711, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 712, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_self->_origin.y = ((int)__pyx_t_3); - /* "pygame/_sdl2/video.pyx":712 + /* "pygame/_sdl2/video.pyx":713 * self._origin.x = new_origin[0] * self._origin.y = new_origin[1] * self._originptr = &self._origin # <<<<<<<<<<<<<< @@ -13370,7 +13370,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_6origin_2__set__(struct __pyx_o */ __pyx_v_self->_originptr = (&__pyx_v_self->_origin); - /* "pygame/_sdl2/video.pyx":709 + /* "pygame/_sdl2/video.pyx":710 * @origin.setter * def origin(self, new_origin): * if new_origin: # <<<<<<<<<<<<<< @@ -13380,7 +13380,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_6origin_2__set__(struct __pyx_o goto __pyx_L3; } - /* "pygame/_sdl2/video.pyx":714 + /* "pygame/_sdl2/video.pyx":715 * self._originptr = &self._origin * else: * self._originptr = NULL # <<<<<<<<<<<<<< @@ -13392,7 +13392,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_6origin_2__set__(struct __pyx_o } __pyx_L3:; - /* "pygame/_sdl2/video.pyx":707 + /* "pygame/_sdl2/video.pyx":708 * return (self._origin.x, self._origin.y) * * @origin.setter # <<<<<<<<<<<<<< @@ -13412,7 +13412,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_6origin_2__set__(struct __pyx_o return __pyx_r; } -/* "pygame/_sdl2/video.pyx":716 +/* "pygame/_sdl2/video.pyx":717 * self._originptr = NULL * * def get_rect(self): # <<<<<<<<<<<<<< @@ -13463,7 +13463,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_4get_rect(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_rect", 0); - /* "pygame/_sdl2/video.pyx":724 + /* "pygame/_sdl2/video.pyx":725 * created from. * """ * return pgRect_New(&self.srcrect.r) # <<<<<<<<<<<<<< @@ -13471,13 +13471,13 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_4get_rect(struct __pyx_ob * cpdef void draw(self, srcrect=None, dstrect=None): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = pgRect_New((&__pyx_v_self->srcrect->r)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 724, __pyx_L1_error) + __pyx_t_1 = pgRect_New((&__pyx_v_self->srcrect->r)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":716 + /* "pygame/_sdl2/video.pyx":717 * self._originptr = NULL * * def get_rect(self): # <<<<<<<<<<<<<< @@ -13496,7 +13496,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_4get_rect(struct __pyx_ob return __pyx_r; } -/* "pygame/_sdl2/video.pyx":726 +/* "pygame/_sdl2/video.pyx":727 * return pgRect_New(&self.srcrect.r) * * cpdef void draw(self, srcrect=None, dstrect=None): # <<<<<<<<<<<<<< @@ -13543,7 +13543,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_5Image_draw(struct __pyx_obj_6pygame_5 if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_draw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 726, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_draw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #ifdef __Pyx_CyFunction_USED if (!__Pyx_IsCyOrPyCFunction(__pyx_t_1) @@ -13568,7 +13568,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_5Image_draw(struct __pyx_obj_6pygame_5 PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_srcrect, __pyx_v_dstrect}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 726, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } @@ -13589,7 +13589,7 @@ static void __pyx_f_6pygame_5_sdl2_5video_5Image_draw(struct __pyx_obj_6pygame_5 #endif } - /* "pygame/_sdl2/video.pyx":736 + /* "pygame/_sdl2/video.pyx":737 * """ * * self.texture.color = self._color # <<<<<<<<<<<<<< @@ -13598,34 +13598,34 @@ static void __pyx_f_6pygame_5_sdl2_5video_5Image_draw(struct __pyx_obj_6pygame_5 */ __pyx_t_1 = ((PyObject *)__pyx_v_self->_color); __Pyx_INCREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->texture), __pyx_n_s_color, __pyx_t_1) < 0) __PYX_ERR(0, 736, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->texture), __pyx_n_s_color, __pyx_t_1) < 0) __PYX_ERR(0, 737, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":737 + /* "pygame/_sdl2/video.pyx":738 * * self.texture.color = self._color * self.texture.alpha = self.alpha # <<<<<<<<<<<<<< * self.texture.blend_mode = self.blend_mode * self.texture.draw( */ - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->alpha); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 737, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->alpha); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->texture), __pyx_n_s_alpha, __pyx_t_1) < 0) __PYX_ERR(0, 737, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->texture), __pyx_n_s_alpha, __pyx_t_1) < 0) __PYX_ERR(0, 738, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":738 + /* "pygame/_sdl2/video.pyx":739 * self.texture.color = self._color * self.texture.alpha = self.alpha * self.texture.blend_mode = self.blend_mode # <<<<<<<<<<<<<< * self.texture.draw( * (srcrect if not srcrect is None else self.srcrect), */ - __pyx_t_1 = __Pyx_PyInt_From_SDL_BlendMode(__pyx_v_self->blend_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 738, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_SDL_BlendMode(__pyx_v_self->blend_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->texture), __pyx_n_s_blend_mode, __pyx_t_1) < 0) __PYX_ERR(0, 738, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->texture), __pyx_n_s_blend_mode, __pyx_t_1) < 0) __PYX_ERR(0, 739, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":740 + /* "pygame/_sdl2/video.pyx":741 * self.texture.blend_mode = self.blend_mode * self.texture.draw( * (srcrect if not srcrect is None else self.srcrect), # <<<<<<<<<<<<<< @@ -13641,17 +13641,17 @@ static void __pyx_f_6pygame_5_sdl2_5video_5Image_draw(struct __pyx_obj_6pygame_5 __pyx_t_1 = ((PyObject *)__pyx_v_self->srcrect); } - /* "pygame/_sdl2/video.pyx":743 + /* "pygame/_sdl2/video.pyx":744 * dstrect, * self.angle, * self.origin, # <<<<<<<<<<<<<< * self.flip_x, * self.flip_y) */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_origin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 743, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_origin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - /* "pygame/_sdl2/video.pyx":739 + /* "pygame/_sdl2/video.pyx":740 * self.texture.alpha = self.alpha * self.texture.blend_mode = self.blend_mode * self.texture.draw( # <<<<<<<<<<<<<< @@ -13665,11 +13665,11 @@ static void __pyx_f_6pygame_5_sdl2_5video_5Image_draw(struct __pyx_obj_6pygame_5 __pyx_t_7.origin = __pyx_t_2; __pyx_t_7.flip_x = __pyx_v_self->flip_x; __pyx_t_7.flip_y = __pyx_v_self->flip_y; - ((struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Texture *)__pyx_v_self->texture->__pyx_vtab)->draw(__pyx_v_self->texture, 0, &__pyx_t_7); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 739, __pyx_L1_error) + ((struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Texture *)__pyx_v_self->texture->__pyx_vtab)->draw(__pyx_v_self->texture, 0, &__pyx_t_7); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 740, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":726 + /* "pygame/_sdl2/video.pyx":727 * return pgRect_New(&self.srcrect.r) * * cpdef void draw(self, srcrect=None, dstrect=None): # <<<<<<<<<<<<<< @@ -13739,19 +13739,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_srcrect); if (value) { values[0] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 726, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 727, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dstrect); if (value) { values[1] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 726, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 727, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw") < 0)) __PYX_ERR(0, 726, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw") < 0)) __PYX_ERR(0, 727, __pyx_L3_error) } } else { switch (__pyx_nargs) { @@ -13768,7 +13768,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("draw", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 726, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 727, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Image.draw", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -13794,8 +13794,8 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_5Image_6draw(struct __pyx_obj_6p __pyx_t_1.__pyx_n = 2; __pyx_t_1.srcrect = __pyx_v_srcrect; __pyx_t_1.dstrect = __pyx_v_dstrect; - __pyx_vtabptr_6pygame_5_sdl2_5video_Image->draw(__pyx_v_self, 1, &__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 726, __pyx_L1_error) - __pyx_t_2 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 726, __pyx_L1_error) + __pyx_vtabptr_6pygame_5_sdl2_5video_Image->draw(__pyx_v_self, 1, &__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 727, __pyx_L1_error) + __pyx_t_2 = __Pyx_void_to_None(NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; @@ -14454,7 +14454,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_5Image_7srcrect_4__del__(struct __pyx_ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":751 +/* "pygame/_sdl2/video.pyx":752 * cdef class Renderer: * * @classmethod # <<<<<<<<<<<<<< @@ -14504,12 +14504,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_window)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 752, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "from_window") < 0)) __PYX_ERR(0, 751, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "from_window") < 0)) __PYX_ERR(0, 752, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; @@ -14520,13 +14520,13 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("from_window", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 751, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("from_window", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 752, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.from_window", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_window), __pyx_ptype_6pygame_5_sdl2_5video_Window, 1, "window", 0))) __PYX_ERR(0, 752, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_window), __pyx_ptype_6pygame_5_sdl2_5video_Window, 1, "window", 0))) __PYX_ERR(0, 753, __pyx_L1_error) __pyx_r = __pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(((PyTypeObject*)__pyx_v_cls), __pyx_v_window); /* function exit code */ @@ -14553,7 +14553,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("from_window", 0); - /* "pygame/_sdl2/video.pyx":753 + /* "pygame/_sdl2/video.pyx":754 * @classmethod * def from_window(cls, Window window): * cdef Renderer self = cls.__new__(cls) # <<<<<<<<<<<<<< @@ -14562,15 +14562,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje */ if (unlikely(((PyObject *)__pyx_v_cls) == Py_None)) { PyErr_SetString(PyExc_TypeError, "object.__new__(X): X is not a type object (NoneType)"); - __PYX_ERR(0, 753, __pyx_L1_error) + __PYX_ERR(0, 754, __pyx_L1_error) } - __pyx_t_1 = __Pyx_tp_new(((PyObject *)__pyx_v_cls), __pyx_empty_tuple); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 753, __pyx_L1_error) + __pyx_t_1 = __Pyx_tp_new(((PyObject *)__pyx_v_cls), __pyx_empty_tuple); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6pygame_5_sdl2_5video_Renderer)))) __PYX_ERR(0, 753, __pyx_L1_error) + if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6pygame_5_sdl2_5video_Renderer)))) __PYX_ERR(0, 754, __pyx_L1_error) __pyx_v_self = ((struct __pyx_obj_6pygame_5_sdl2_5video_Renderer *)__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":754 + /* "pygame/_sdl2/video.pyx":755 * def from_window(cls, Window window): * cdef Renderer self = cls.__new__(cls) * self._win = window # <<<<<<<<<<<<<< @@ -14583,7 +14583,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje __Pyx_DECREF((PyObject *)__pyx_v_self->_win); __pyx_v_self->_win = __pyx_v_window; - /* "pygame/_sdl2/video.pyx":755 + /* "pygame/_sdl2/video.pyx":756 * cdef Renderer self = cls.__new__(cls) * self._win = window * if self._win._is_borrowed: # <<<<<<<<<<<<<< @@ -14593,7 +14593,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje __pyx_t_2 = (__pyx_v_self->_win->_is_borrowed != 0); if (likely(__pyx_t_2)) { - /* "pygame/_sdl2/video.pyx":756 + /* "pygame/_sdl2/video.pyx":757 * self._win = window * if self._win._is_borrowed: * self._is_borrowed=1 # <<<<<<<<<<<<<< @@ -14602,7 +14602,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje */ __pyx_v_self->_is_borrowed = 1; - /* "pygame/_sdl2/video.pyx":755 + /* "pygame/_sdl2/video.pyx":756 * cdef Renderer self = cls.__new__(cls) * self._win = window * if self._win._is_borrowed: # <<<<<<<<<<<<<< @@ -14612,7 +14612,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje goto __pyx_L3; } - /* "pygame/_sdl2/video.pyx":758 + /* "pygame/_sdl2/video.pyx":759 * self._is_borrowed=1 * else: * raise error() # <<<<<<<<<<<<<< @@ -14620,7 +14620,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje * raise error() */ /*else*/ { - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 758, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -14638,35 +14638,35 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 758, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 758, __pyx_L1_error) + __PYX_ERR(0, 759, __pyx_L1_error) } __pyx_L3:; - /* "pygame/_sdl2/video.pyx":759 + /* "pygame/_sdl2/video.pyx":760 * else: * raise error() * if not self._win: # <<<<<<<<<<<<<< * raise error() * */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_win)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 759, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->_win)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 760, __pyx_L1_error) __pyx_t_6 = (!__pyx_t_2); if (unlikely(__pyx_t_6)) { - /* "pygame/_sdl2/video.pyx":760 + /* "pygame/_sdl2/video.pyx":761 * raise error() * if not self._win: * raise error() # <<<<<<<<<<<<<< * * self._renderer = SDL_GetRenderer(self._win._win) */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 760, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -14684,15 +14684,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 760, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 760, __pyx_L1_error) + __PYX_ERR(0, 761, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":759 + /* "pygame/_sdl2/video.pyx":760 * else: * raise error() * if not self._win: # <<<<<<<<<<<<<< @@ -14701,7 +14701,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje */ } - /* "pygame/_sdl2/video.pyx":762 + /* "pygame/_sdl2/video.pyx":763 * raise error() * * self._renderer = SDL_GetRenderer(self._win._win) # <<<<<<<<<<<<<< @@ -14710,7 +14710,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje */ __pyx_v_self->_renderer = SDL_GetRenderer(__pyx_v_self->_win->_win); - /* "pygame/_sdl2/video.pyx":763 + /* "pygame/_sdl2/video.pyx":764 * * self._renderer = SDL_GetRenderer(self._win._win) * if not self._renderer: # <<<<<<<<<<<<<< @@ -14720,14 +14720,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje __pyx_t_6 = (!(__pyx_v_self->_renderer != 0)); if (unlikely(__pyx_t_6)) { - /* "pygame/_sdl2/video.pyx":764 + /* "pygame/_sdl2/video.pyx":765 * self._renderer = SDL_GetRenderer(self._win._win) * if not self._renderer: * raise error() # <<<<<<<<<<<<<< * * self._target = None */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 764, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -14745,15 +14745,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 764, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 764, __pyx_L1_error) + __PYX_ERR(0, 765, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":763 + /* "pygame/_sdl2/video.pyx":764 * * self._renderer = SDL_GetRenderer(self._win._win) * if not self._renderer: # <<<<<<<<<<<<<< @@ -14762,7 +14762,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje */ } - /* "pygame/_sdl2/video.pyx":766 + /* "pygame/_sdl2/video.pyx":767 * raise error() * * self._target = None # <<<<<<<<<<<<<< @@ -14775,7 +14775,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje __Pyx_DECREF((PyObject *)__pyx_v_self->_target); __pyx_v_self->_target = ((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)Py_None); - /* "pygame/_sdl2/video.pyx":767 + /* "pygame/_sdl2/video.pyx":768 * * self._target = None * return self # <<<<<<<<<<<<<< @@ -14787,7 +14787,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":751 + /* "pygame/_sdl2/video.pyx":752 * cdef class Renderer: * * @classmethod # <<<<<<<<<<<<<< @@ -14809,7 +14809,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_from_window(PyTypeObje return __pyx_r; } -/* "pygame/_sdl2/video.pyx":769 +/* "pygame/_sdl2/video.pyx":770 * return self * * def __init__(self,Window window, int index=-1, # <<<<<<<<<<<<<< @@ -14860,40 +14860,40 @@ static int __pyx_pw_6pygame_5_sdl2_5video_8Renderer_3__init__(PyObject *__pyx_v_ switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_window)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 769, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 770, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index); if (value) { values[1] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 769, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 770, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerated); if (value) { values[2] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 769, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 770, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vsync); if (value) { values[3] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 769, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 770, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_target_texture); if (value) { values[4] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 769, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 770, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 769, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 770, __pyx_L3_error) } } else { switch (__pyx_nargs) { @@ -14912,20 +14912,20 @@ static int __pyx_pw_6pygame_5_sdl2_5video_8Renderer_3__init__(PyObject *__pyx_v_ } __pyx_v_window = ((pgWindowObject *)values[0]); if (values[1]) { - __pyx_v_index = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 769, __pyx_L3_error) + __pyx_v_index = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 770, __pyx_L3_error) } else { __pyx_v_index = ((int)-1); } if (values[2]) { - __pyx_v_accelerated = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_accelerated == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 770, __pyx_L3_error) + __pyx_v_accelerated = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_accelerated == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 771, __pyx_L3_error) } else { __pyx_v_accelerated = ((int)-1); } if (values[3]) { - __pyx_v_vsync = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_vsync == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 770, __pyx_L3_error) + __pyx_v_vsync = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_vsync == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 771, __pyx_L3_error) } else { - /* "pygame/_sdl2/video.pyx":770 + /* "pygame/_sdl2/video.pyx":771 * * def __init__(self,Window window, int index=-1, * int accelerated=-1, bint vsync=False, # <<<<<<<<<<<<<< @@ -14935,10 +14935,10 @@ static int __pyx_pw_6pygame_5_sdl2_5video_8Renderer_3__init__(PyObject *__pyx_v_ __pyx_v_vsync = ((int)0); } if (values[4]) { - __pyx_v_target_texture = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_target_texture == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 771, __pyx_L3_error) + __pyx_v_target_texture = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_target_texture == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 772, __pyx_L3_error) } else { - /* "pygame/_sdl2/video.pyx":771 + /* "pygame/_sdl2/video.pyx":772 * def __init__(self,Window window, int index=-1, * int accelerated=-1, bint vsync=False, * bint target_texture=False): # <<<<<<<<<<<<<< @@ -14950,16 +14950,16 @@ static int __pyx_pw_6pygame_5_sdl2_5video_8Renderer_3__init__(PyObject *__pyx_v_ } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(0, 769, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(0, 770, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_window), __pyx_ptype_6pygame_5_sdl2_5video_Window, 1, "window", 0))) __PYX_ERR(0, 769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_window), __pyx_ptype_6pygame_5_sdl2_5video_Window, 1, "window", 0))) __PYX_ERR(0, 770, __pyx_L1_error) __pyx_r = __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(((struct __pyx_obj_6pygame_5_sdl2_5video_Renderer *)__pyx_v_self), __pyx_v_window, __pyx_v_index, __pyx_v_accelerated, __pyx_v_vsync, __pyx_v_target_texture); - /* "pygame/_sdl2/video.pyx":769 + /* "pygame/_sdl2/video.pyx":770 * return self * * def __init__(self,Window window, int index=-1, # <<<<<<<<<<<<<< @@ -14993,7 +14993,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - /* "pygame/_sdl2/video.pyx":818 + /* "pygame/_sdl2/video.pyx":819 * # https://wiki.libsdl.org/SDL_CreateRenderer * # https://wiki.libsdl.org/SDL_RendererFlags * flags = 0 # <<<<<<<<<<<<<< @@ -15003,7 +15003,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 __Pyx_INCREF(__pyx_int_0); __pyx_v_flags = __pyx_int_0; - /* "pygame/_sdl2/video.pyx":819 + /* "pygame/_sdl2/video.pyx":820 * # https://wiki.libsdl.org/SDL_RendererFlags * flags = 0 * if accelerated >= 0: # <<<<<<<<<<<<<< @@ -15013,7 +15013,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 __pyx_t_1 = (__pyx_v_accelerated >= 0); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":820 + /* "pygame/_sdl2/video.pyx":821 * flags = 0 * if accelerated >= 0: * flags |= _SDL_RENDERER_ACCELERATED if accelerated else _SDL_RENDERER_SOFTWARE # <<<<<<<<<<<<<< @@ -15021,23 +15021,23 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 * flags |= _SDL_RENDERER_PRESENTVSYNC */ if ((__pyx_v_accelerated != 0)) { - __pyx_t_3 = __Pyx_PyInt_From_Uint32(SDL_RENDERER_ACCELERATED); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 820, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_Uint32(SDL_RENDERER_ACCELERATED); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; } else { - __pyx_t_3 = __Pyx_PyInt_From_Uint32(SDL_RENDERER_SOFTWARE); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 820, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_Uint32(SDL_RENDERER_SOFTWARE); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; } - __pyx_t_3 = PyNumber_InPlaceOr(__pyx_v_flags, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 820, __pyx_L1_error) + __pyx_t_3 = PyNumber_InPlaceOr(__pyx_v_flags, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_flags, __pyx_t_3); __pyx_t_3 = 0; - /* "pygame/_sdl2/video.pyx":819 + /* "pygame/_sdl2/video.pyx":820 * # https://wiki.libsdl.org/SDL_RendererFlags * flags = 0 * if accelerated >= 0: # <<<<<<<<<<<<<< @@ -15046,7 +15046,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 */ } - /* "pygame/_sdl2/video.pyx":821 + /* "pygame/_sdl2/video.pyx":822 * if accelerated >= 0: * flags |= _SDL_RENDERER_ACCELERATED if accelerated else _SDL_RENDERER_SOFTWARE * if vsync: # <<<<<<<<<<<<<< @@ -15055,22 +15055,22 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 */ if (__pyx_v_vsync) { - /* "pygame/_sdl2/video.pyx":822 + /* "pygame/_sdl2/video.pyx":823 * flags |= _SDL_RENDERER_ACCELERATED if accelerated else _SDL_RENDERER_SOFTWARE * if vsync: * flags |= _SDL_RENDERER_PRESENTVSYNC # <<<<<<<<<<<<<< * if target_texture: * flags |= _SDL_RENDERER_TARGETTEXTURE */ - __pyx_t_3 = __Pyx_PyInt_From_Uint32(SDL_RENDERER_PRESENTVSYNC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 822, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_Uint32(SDL_RENDERER_PRESENTVSYNC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PyNumber_InPlaceOr(__pyx_v_flags, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error) + __pyx_t_2 = PyNumber_InPlaceOr(__pyx_v_flags, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_flags, __pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":821 + /* "pygame/_sdl2/video.pyx":822 * if accelerated >= 0: * flags |= _SDL_RENDERER_ACCELERATED if accelerated else _SDL_RENDERER_SOFTWARE * if vsync: # <<<<<<<<<<<<<< @@ -15079,7 +15079,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 */ } - /* "pygame/_sdl2/video.pyx":823 + /* "pygame/_sdl2/video.pyx":824 * if vsync: * flags |= _SDL_RENDERER_PRESENTVSYNC * if target_texture: # <<<<<<<<<<<<<< @@ -15088,22 +15088,22 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 */ if (__pyx_v_target_texture) { - /* "pygame/_sdl2/video.pyx":824 + /* "pygame/_sdl2/video.pyx":825 * flags |= _SDL_RENDERER_PRESENTVSYNC * if target_texture: * flags |= _SDL_RENDERER_TARGETTEXTURE # <<<<<<<<<<<<<< * * self._renderer = SDL_CreateRenderer(window._win, index, flags) */ - __pyx_t_2 = __Pyx_PyInt_From_Uint32(SDL_RENDERER_TARGETTEXTURE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 824, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_Uint32(SDL_RENDERER_TARGETTEXTURE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyNumber_InPlaceOr(__pyx_v_flags, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 824, __pyx_L1_error) + __pyx_t_3 = PyNumber_InPlaceOr(__pyx_v_flags, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_flags, __pyx_t_3); __pyx_t_3 = 0; - /* "pygame/_sdl2/video.pyx":823 + /* "pygame/_sdl2/video.pyx":824 * if vsync: * flags |= _SDL_RENDERER_PRESENTVSYNC * if target_texture: # <<<<<<<<<<<<<< @@ -15112,17 +15112,17 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 */ } - /* "pygame/_sdl2/video.pyx":826 + /* "pygame/_sdl2/video.pyx":827 * flags |= _SDL_RENDERER_TARGETTEXTURE * * self._renderer = SDL_CreateRenderer(window._win, index, flags) # <<<<<<<<<<<<<< * if not self._renderer: * raise error() */ - __pyx_t_4 = __Pyx_PyInt_As_Uint32(__pyx_v_flags); if (unlikely((__pyx_t_4 == ((Uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 826, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_As_Uint32(__pyx_v_flags); if (unlikely((__pyx_t_4 == ((Uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 827, __pyx_L1_error) __pyx_v_self->_renderer = SDL_CreateRenderer(__pyx_v_window->_win, __pyx_v_index, __pyx_t_4); - /* "pygame/_sdl2/video.pyx":827 + /* "pygame/_sdl2/video.pyx":828 * * self._renderer = SDL_CreateRenderer(window._win, index, flags) * if not self._renderer: # <<<<<<<<<<<<<< @@ -15132,14 +15132,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 __pyx_t_1 = (!(__pyx_v_self->_renderer != 0)); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":828 + /* "pygame/_sdl2/video.pyx":829 * self._renderer = SDL_CreateRenderer(window._win, index, flags) * if not self._renderer: * raise error() # <<<<<<<<<<<<<< * * cdef Uint8[4] defaultColor = [255, 255, 255, 255] */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; __pyx_t_6 = 0; @@ -15157,15 +15157,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 828, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 828, __pyx_L1_error) + __PYX_ERR(0, 829, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":827 + /* "pygame/_sdl2/video.pyx":828 * * self._renderer = SDL_CreateRenderer(window._win, index, flags) * if not self._renderer: # <<<<<<<<<<<<<< @@ -15174,7 +15174,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 */ } - /* "pygame/_sdl2/video.pyx":830 + /* "pygame/_sdl2/video.pyx":831 * raise error() * * cdef Uint8[4] defaultColor = [255, 255, 255, 255] # <<<<<<<<<<<<<< @@ -15187,7 +15187,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 __pyx_t_7[3] = 0xFF; memcpy(&(__pyx_v_defaultColor[0]), __pyx_t_7, sizeof(__pyx_v_defaultColor[0]) * (4)); - /* "pygame/_sdl2/video.pyx":831 + /* "pygame/_sdl2/video.pyx":832 * * cdef Uint8[4] defaultColor = [255, 255, 255, 255] * self._target = None # <<<<<<<<<<<<<< @@ -15200,7 +15200,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 __Pyx_DECREF((PyObject *)__pyx_v_self->_target); __pyx_v_self->_target = ((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)Py_None); - /* "pygame/_sdl2/video.pyx":832 + /* "pygame/_sdl2/video.pyx":833 * cdef Uint8[4] defaultColor = [255, 255, 255, 255] * self._target = None * self._win = window # <<<<<<<<<<<<<< @@ -15213,7 +15213,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 __Pyx_DECREF((PyObject *)__pyx_v_self->_win); __pyx_v_self->_win = __pyx_v_window; - /* "pygame/_sdl2/video.pyx":833 + /* "pygame/_sdl2/video.pyx":834 * self._target = None * self._win = window * self._is_borrowed=0 # <<<<<<<<<<<<<< @@ -15222,7 +15222,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 */ __pyx_v_self->_is_borrowed = 0; - /* "pygame/_sdl2/video.pyx":769 + /* "pygame/_sdl2/video.pyx":770 * return self * * def __init__(self,Window window, int index=-1, # <<<<<<<<<<<<<< @@ -15245,7 +15245,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_2__init__(struct __pyx_obj_6 return __pyx_r; } -/* "pygame/_sdl2/video.pyx":835 +/* "pygame/_sdl2/video.pyx":836 * self._is_borrowed=0 * * def __dealloc__(self): # <<<<<<<<<<<<<< @@ -15270,7 +15270,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_8Renderer_4__dealloc__(struct __pyx_o int __pyx_t_1; __Pyx_RefNannySetupContext("__dealloc__", 0); - /* "pygame/_sdl2/video.pyx":836 + /* "pygame/_sdl2/video.pyx":837 * * def __dealloc__(self): * if self._is_borrowed: # <<<<<<<<<<<<<< @@ -15280,7 +15280,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_8Renderer_4__dealloc__(struct __pyx_o __pyx_t_1 = (__pyx_v_self->_is_borrowed != 0); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":837 + /* "pygame/_sdl2/video.pyx":838 * def __dealloc__(self): * if self._is_borrowed: * return # <<<<<<<<<<<<<< @@ -15289,7 +15289,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_8Renderer_4__dealloc__(struct __pyx_o */ goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":836 + /* "pygame/_sdl2/video.pyx":837 * * def __dealloc__(self): * if self._is_borrowed: # <<<<<<<<<<<<<< @@ -15298,7 +15298,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_8Renderer_4__dealloc__(struct __pyx_o */ } - /* "pygame/_sdl2/video.pyx":838 + /* "pygame/_sdl2/video.pyx":839 * if self._is_borrowed: * return * if self._renderer: # <<<<<<<<<<<<<< @@ -15308,7 +15308,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_8Renderer_4__dealloc__(struct __pyx_o __pyx_t_1 = (__pyx_v_self->_renderer != 0); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":839 + /* "pygame/_sdl2/video.pyx":840 * return * if self._renderer: * SDL_DestroyRenderer(self._renderer) # <<<<<<<<<<<<<< @@ -15317,7 +15317,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_8Renderer_4__dealloc__(struct __pyx_o */ SDL_DestroyRenderer(__pyx_v_self->_renderer); - /* "pygame/_sdl2/video.pyx":838 + /* "pygame/_sdl2/video.pyx":839 * if self._is_borrowed: * return * if self._renderer: # <<<<<<<<<<<<<< @@ -15326,7 +15326,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_8Renderer_4__dealloc__(struct __pyx_o */ } - /* "pygame/_sdl2/video.pyx":835 + /* "pygame/_sdl2/video.pyx":836 * self._is_borrowed=0 * * def __dealloc__(self): # <<<<<<<<<<<<<< @@ -15339,7 +15339,7 @@ static void __pyx_pf_6pygame_5_sdl2_5video_8Renderer_4__dealloc__(struct __pyx_o __Pyx_RefNannyFinishContext(); } -/* "pygame/_sdl2/video.pyx":841 +/* "pygame/_sdl2/video.pyx":842 * SDL_DestroyRenderer(self._renderer) * * @property # <<<<<<<<<<<<<< @@ -15376,7 +15376,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode___ge int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "pygame/_sdl2/video.pyx":847 + /* "pygame/_sdl2/video.pyx":848 * # https://wiki.libsdl.org/SDL_GetRenderDrawBlendMode * cdef SDL_BlendMode blendMode * cdef int res = SDL_GetRenderDrawBlendMode(self._renderer, &blendMode) # <<<<<<<<<<<<<< @@ -15385,7 +15385,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode___ge */ __pyx_v_res = SDL_GetRenderDrawBlendMode(__pyx_v_self->_renderer, (&__pyx_v_blendMode)); - /* "pygame/_sdl2/video.pyx":848 + /* "pygame/_sdl2/video.pyx":849 * cdef SDL_BlendMode blendMode * cdef int res = SDL_GetRenderDrawBlendMode(self._renderer, &blendMode) * if res < 0: # <<<<<<<<<<<<<< @@ -15395,14 +15395,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode___ge __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":849 + /* "pygame/_sdl2/video.pyx":850 * cdef int res = SDL_GetRenderDrawBlendMode(self._renderer, &blendMode) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * return blendMode */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 849, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -15420,15 +15420,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode___ge PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 849, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 849, __pyx_L1_error) + __PYX_ERR(0, 850, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":848 + /* "pygame/_sdl2/video.pyx":849 * cdef SDL_BlendMode blendMode * cdef int res = SDL_GetRenderDrawBlendMode(self._renderer, &blendMode) * if res < 0: # <<<<<<<<<<<<<< @@ -15437,7 +15437,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode___ge */ } - /* "pygame/_sdl2/video.pyx":851 + /* "pygame/_sdl2/video.pyx":852 * raise error() * * return blendMode # <<<<<<<<<<<<<< @@ -15445,13 +15445,13 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode___ge * @draw_blend_mode.setter */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyInt_From_SDL_BlendMode(__pyx_v_blendMode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 851, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_SDL_BlendMode(__pyx_v_blendMode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":841 + /* "pygame/_sdl2/video.pyx":842 * SDL_DestroyRenderer(self._renderer) * * @property # <<<<<<<<<<<<<< @@ -15472,7 +15472,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode___ge return __pyx_r; } -/* "pygame/_sdl2/video.pyx":853 +/* "pygame/_sdl2/video.pyx":854 * return blendMode * * @draw_blend_mode.setter # <<<<<<<<<<<<<< @@ -15509,17 +15509,17 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode_2__set__(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - /* "pygame/_sdl2/video.pyx":856 + /* "pygame/_sdl2/video.pyx":857 * def draw_blend_mode(self, blendMode): * # https://wiki.libsdl.org/SDL_SetRenderDrawBlendMode * cdef int res = SDL_SetRenderDrawBlendMode(self._renderer, blendMode) # <<<<<<<<<<<<<< * if res < 0: * raise error() */ - __pyx_t_1 = ((SDL_BlendMode)__Pyx_PyInt_As_SDL_BlendMode(__pyx_v_blendMode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L1_error) + __pyx_t_1 = ((SDL_BlendMode)__Pyx_PyInt_As_SDL_BlendMode(__pyx_v_blendMode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L1_error) __pyx_v_res = SDL_SetRenderDrawBlendMode(__pyx_v_self->_renderer, __pyx_t_1); - /* "pygame/_sdl2/video.pyx":857 + /* "pygame/_sdl2/video.pyx":858 * # https://wiki.libsdl.org/SDL_SetRenderDrawBlendMode * cdef int res = SDL_SetRenderDrawBlendMode(self._renderer, blendMode) * if res < 0: # <<<<<<<<<<<<<< @@ -15529,14 +15529,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode_2__set__(s __pyx_t_2 = (__pyx_v_res < 0); if (unlikely(__pyx_t_2)) { - /* "pygame/_sdl2/video.pyx":858 + /* "pygame/_sdl2/video.pyx":859 * cdef int res = SDL_SetRenderDrawBlendMode(self._renderer, blendMode) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * @property */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 858, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; @@ -15554,15 +15554,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode_2__set__(s PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 858, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 858, __pyx_L1_error) + __PYX_ERR(0, 859, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":857 + /* "pygame/_sdl2/video.pyx":858 * # https://wiki.libsdl.org/SDL_SetRenderDrawBlendMode * cdef int res = SDL_SetRenderDrawBlendMode(self._renderer, blendMode) * if res < 0: # <<<<<<<<<<<<<< @@ -15571,7 +15571,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode_2__set__(s */ } - /* "pygame/_sdl2/video.pyx":853 + /* "pygame/_sdl2/video.pyx":854 * return blendMode * * @draw_blend_mode.setter # <<<<<<<<<<<<<< @@ -15593,7 +15593,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_15draw_blend_mode_2__set__(s return __pyx_r; } -/* "pygame/_sdl2/video.pyx":860 +/* "pygame/_sdl2/video.pyx":861 * raise error() * * @property # <<<<<<<<<<<<<< @@ -15630,7 +15630,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color___get__(s int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "pygame/_sdl2/video.pyx":866 + /* "pygame/_sdl2/video.pyx":867 * cdef Uint8[4] rgba * * cdef int res = SDL_GetRenderDrawColor(self._renderer, # <<<<<<<<<<<<<< @@ -15639,7 +15639,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color___get__(s */ __pyx_v_res = SDL_GetRenderDrawColor(__pyx_v_self->_renderer, (&(__pyx_v_rgba[0])), (&(__pyx_v_rgba[1])), (&(__pyx_v_rgba[2])), (&(__pyx_v_rgba[3]))); - /* "pygame/_sdl2/video.pyx":872 + /* "pygame/_sdl2/video.pyx":873 * &(rgba[3])) * * if res < 0: # <<<<<<<<<<<<<< @@ -15649,14 +15649,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color___get__(s __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":873 + /* "pygame/_sdl2/video.pyx":874 * * if res < 0: * raise error() # <<<<<<<<<<<<<< * * return pgColor_NewLength(rgba, 4) */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 873, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -15674,15 +15674,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color___get__(s PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 873, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 873, __pyx_L1_error) + __PYX_ERR(0, 874, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":872 + /* "pygame/_sdl2/video.pyx":873 * &(rgba[3])) * * if res < 0: # <<<<<<<<<<<<<< @@ -15691,7 +15691,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color___get__(s */ } - /* "pygame/_sdl2/video.pyx":875 + /* "pygame/_sdl2/video.pyx":876 * raise error() * * return pgColor_NewLength(rgba, 4) # <<<<<<<<<<<<<< @@ -15699,13 +15699,13 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color___get__(s * @draw_color.setter */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = pgColor_NewLength(__pyx_v_rgba, 4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 875, __pyx_L1_error) + __pyx_t_2 = pgColor_NewLength(__pyx_v_rgba, 4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":860 + /* "pygame/_sdl2/video.pyx":861 * raise error() * * @property # <<<<<<<<<<<<<< @@ -15726,7 +15726,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color___get__(s return __pyx_r; } -/* "pygame/_sdl2/video.pyx":877 +/* "pygame/_sdl2/video.pyx":878 * return pgColor_NewLength(rgba, 4) * * @draw_color.setter # <<<<<<<<<<<<<< @@ -15763,16 +15763,16 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color_2__set__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - /* "pygame/_sdl2/video.pyx":880 + /* "pygame/_sdl2/video.pyx":881 * def draw_color(self, new_value): * cdef Uint8[4] rgba * pg_RGBAFromObjEx(new_value, rgba, PG_COLOR_HANDLE_ALL) # <<<<<<<<<<<<<< * * # https://wiki.libsdl.org/SDL_SetRenderDrawColor */ - __pyx_t_1 = pg_RGBAFromObjEx(__pyx_v_new_value, __pyx_v_rgba, PG_COLOR_HANDLE_ALL); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 880, __pyx_L1_error) + __pyx_t_1 = pg_RGBAFromObjEx(__pyx_v_new_value, __pyx_v_rgba, PG_COLOR_HANDLE_ALL); if (unlikely(__pyx_t_1 == ((int)0))) __PYX_ERR(0, 881, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":883 + /* "pygame/_sdl2/video.pyx":884 * * # https://wiki.libsdl.org/SDL_SetRenderDrawColor * cdef int res = SDL_SetRenderDrawColor(self._renderer, # <<<<<<<<<<<<<< @@ -15781,7 +15781,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color_2__set__(struct */ __pyx_v_res = SDL_SetRenderDrawColor(__pyx_v_self->_renderer, (__pyx_v_rgba[0]), (__pyx_v_rgba[1]), (__pyx_v_rgba[2]), (__pyx_v_rgba[3])); - /* "pygame/_sdl2/video.pyx":889 + /* "pygame/_sdl2/video.pyx":890 * rgba[3]) * * if res < 0: # <<<<<<<<<<<<<< @@ -15791,14 +15791,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color_2__set__(struct __pyx_t_2 = (__pyx_v_res < 0); if (unlikely(__pyx_t_2)) { - /* "pygame/_sdl2/video.pyx":890 + /* "pygame/_sdl2/video.pyx":891 * * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def clear(self): */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 890, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_1 = 0; @@ -15816,15 +15816,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color_2__set__(struct PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_1, 0+__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 890, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 890, __pyx_L1_error) + __PYX_ERR(0, 891, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":889 + /* "pygame/_sdl2/video.pyx":890 * rgba[3]) * * if res < 0: # <<<<<<<<<<<<<< @@ -15833,7 +15833,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color_2__set__(struct */ } - /* "pygame/_sdl2/video.pyx":877 + /* "pygame/_sdl2/video.pyx":878 * return pgColor_NewLength(rgba, 4) * * @draw_color.setter # <<<<<<<<<<<<<< @@ -15855,7 +15855,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_10draw_color_2__set__(struct return __pyx_r; } -/* "pygame/_sdl2/video.pyx":892 +/* "pygame/_sdl2/video.pyx":893 * raise error() * * def clear(self): # <<<<<<<<<<<<<< @@ -15911,7 +15911,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_6clear(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("clear", 0); - /* "pygame/_sdl2/video.pyx":896 + /* "pygame/_sdl2/video.pyx":897 * """ * # https://wiki.libsdl.org/SDL_RenderClear * cdef int res = SDL_RenderClear(self._renderer) # <<<<<<<<<<<<<< @@ -15920,7 +15920,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_6clear(struct __pyx_ob */ __pyx_v_res = SDL_RenderClear(__pyx_v_self->_renderer); - /* "pygame/_sdl2/video.pyx":897 + /* "pygame/_sdl2/video.pyx":898 * # https://wiki.libsdl.org/SDL_RenderClear * cdef int res = SDL_RenderClear(self._renderer) * if res < 0: # <<<<<<<<<<<<<< @@ -15930,14 +15930,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_6clear(struct __pyx_ob __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":898 + /* "pygame/_sdl2/video.pyx":899 * cdef int res = SDL_RenderClear(self._renderer) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def present(self): */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 898, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -15955,15 +15955,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_6clear(struct __pyx_ob PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 898, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 898, __pyx_L1_error) + __PYX_ERR(0, 899, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":897 + /* "pygame/_sdl2/video.pyx":898 * # https://wiki.libsdl.org/SDL_RenderClear * cdef int res = SDL_RenderClear(self._renderer) * if res < 0: # <<<<<<<<<<<<<< @@ -15972,7 +15972,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_6clear(struct __pyx_ob */ } - /* "pygame/_sdl2/video.pyx":892 + /* "pygame/_sdl2/video.pyx":893 * raise error() * * def clear(self): # <<<<<<<<<<<<<< @@ -15995,7 +15995,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_6clear(struct __pyx_ob return __pyx_r; } -/* "pygame/_sdl2/video.pyx":900 +/* "pygame/_sdl2/video.pyx":901 * raise error() * * def present(self): # <<<<<<<<<<<<<< @@ -16042,7 +16042,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_8present(struct __pyx_ __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("present", 0); - /* "pygame/_sdl2/video.pyx":907 + /* "pygame/_sdl2/video.pyx":908 * """ * # https://wiki.libsdl.org/SDL_RenderPresent * SDL_RenderPresent(self._renderer) # <<<<<<<<<<<<<< @@ -16051,7 +16051,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_8present(struct __pyx_ */ SDL_RenderPresent(__pyx_v_self->_renderer); - /* "pygame/_sdl2/video.pyx":900 + /* "pygame/_sdl2/video.pyx":901 * raise error() * * def present(self): # <<<<<<<<<<<<<< @@ -16066,7 +16066,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_8present(struct __pyx_ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":909 +/* "pygame/_sdl2/video.pyx":910 * SDL_RenderPresent(self._renderer) * * cpdef get_viewport(self): # <<<<<<<<<<<<<< @@ -16103,7 +16103,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_get_viewport(struct __p if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_viewport); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 909, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_viewport); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #ifdef __Pyx_CyFunction_USED if (!__Pyx_IsCyOrPyCFunction(__pyx_t_1) @@ -16129,7 +16129,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_get_viewport(struct __p PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 909, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } @@ -16151,7 +16151,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_get_viewport(struct __p #endif } - /* "pygame/_sdl2/video.pyx":914 + /* "pygame/_sdl2/video.pyx":915 * # https://wiki.libsdl.org/SDL_RenderGetViewport * cdef SDL_Rect rect * SDL_RenderGetViewport(self._renderer, &rect) # <<<<<<<<<<<<<< @@ -16160,7 +16160,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_get_viewport(struct __p */ SDL_RenderGetViewport(__pyx_v_self->_renderer, (&__pyx_v_rect)); - /* "pygame/_sdl2/video.pyx":915 + /* "pygame/_sdl2/video.pyx":916 * cdef SDL_Rect rect * SDL_RenderGetViewport(self._renderer, &rect) * return pgRect_New(&rect) # <<<<<<<<<<<<<< @@ -16168,13 +16168,13 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_get_viewport(struct __p * def set_viewport(self, area): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = pgRect_New((&__pyx_v_rect)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 915, __pyx_L1_error) + __pyx_t_1 = pgRect_New((&__pyx_v_rect)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":909 + /* "pygame/_sdl2/video.pyx":910 * SDL_RenderPresent(self._renderer) * * cpdef get_viewport(self): # <<<<<<<<<<<<<< @@ -16239,7 +16239,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_10get_viewport(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_viewport", 0); __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_6pygame_5_sdl2_5video_8Renderer_get_viewport(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 909, __pyx_L1_error) + __pyx_t_1 = __pyx_f_6pygame_5_sdl2_5video_8Renderer_get_viewport(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -16256,7 +16256,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_10get_viewport(struct return __pyx_r; } -/* "pygame/_sdl2/video.pyx":917 +/* "pygame/_sdl2/video.pyx":918 * return pgRect_New(&rect) * * def set_viewport(self, area): # <<<<<<<<<<<<<< @@ -16307,12 +16307,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_area)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 917, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 918, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_viewport") < 0)) __PYX_ERR(0, 917, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "set_viewport") < 0)) __PYX_ERR(0, 918, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; @@ -16323,7 +16323,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_viewport", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 917, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("set_viewport", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 918, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.set_viewport", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -16351,7 +16351,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_viewport", 0); - /* "pygame/_sdl2/video.pyx":925 + /* "pygame/_sdl2/video.pyx":926 * """ * # https://wiki.libsdl.org/SDL_RenderSetViewport * if area is None: # <<<<<<<<<<<<<< @@ -16361,7 +16361,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct __pyx_t_1 = (__pyx_v_area == Py_None); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":926 + /* "pygame/_sdl2/video.pyx":927 * # https://wiki.libsdl.org/SDL_RenderSetViewport * if area is None: * if SDL_RenderSetViewport(self._renderer, NULL) < 0: # <<<<<<<<<<<<<< @@ -16371,14 +16371,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct __pyx_t_1 = (SDL_RenderSetViewport(__pyx_v_self->_renderer, NULL) < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":927 + /* "pygame/_sdl2/video.pyx":928 * if area is None: * if SDL_RenderSetViewport(self._renderer, NULL) < 0: * raise error() # <<<<<<<<<<<<<< * return * */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 927, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -16396,15 +16396,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 927, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 927, __pyx_L1_error) + __PYX_ERR(0, 928, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":926 + /* "pygame/_sdl2/video.pyx":927 * # https://wiki.libsdl.org/SDL_RenderSetViewport * if area is None: * if SDL_RenderSetViewport(self._renderer, NULL) < 0: # <<<<<<<<<<<<<< @@ -16413,7 +16413,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct */ } - /* "pygame/_sdl2/video.pyx":928 + /* "pygame/_sdl2/video.pyx":929 * if SDL_RenderSetViewport(self._renderer, NULL) < 0: * raise error() * return # <<<<<<<<<<<<<< @@ -16424,7 +16424,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":925 + /* "pygame/_sdl2/video.pyx":926 * """ * # https://wiki.libsdl.org/SDL_RenderSetViewport * if area is None: # <<<<<<<<<<<<<< @@ -16433,7 +16433,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct */ } - /* "pygame/_sdl2/video.pyx":931 + /* "pygame/_sdl2/video.pyx":932 * * cdef SDL_Rect tmprect * cdef SDL_Rect *rectptr = pgRect_FromObject(area, &tmprect) # <<<<<<<<<<<<<< @@ -16442,7 +16442,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct */ __pyx_v_rectptr = pgRect_FromObject(__pyx_v_area, (&__pyx_v_tmprect)); - /* "pygame/_sdl2/video.pyx":932 + /* "pygame/_sdl2/video.pyx":933 * cdef SDL_Rect tmprect * cdef SDL_Rect *rectptr = pgRect_FromObject(area, &tmprect) * if rectptr == NULL: # <<<<<<<<<<<<<< @@ -16452,20 +16452,20 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct __pyx_t_1 = (__pyx_v_rectptr == NULL); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":933 + /* "pygame/_sdl2/video.pyx":934 * cdef SDL_Rect *rectptr = pgRect_FromObject(area, &tmprect) * if rectptr == NULL: * raise TypeError('expected a rectangle') # <<<<<<<<<<<<<< * * if SDL_RenderSetViewport(self._renderer, rectptr) < 0: */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 933, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 933, __pyx_L1_error) + __PYX_ERR(0, 934, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":932 + /* "pygame/_sdl2/video.pyx":933 * cdef SDL_Rect tmprect * cdef SDL_Rect *rectptr = pgRect_FromObject(area, &tmprect) * if rectptr == NULL: # <<<<<<<<<<<<<< @@ -16474,7 +16474,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct */ } - /* "pygame/_sdl2/video.pyx":935 + /* "pygame/_sdl2/video.pyx":936 * raise TypeError('expected a rectangle') * * if SDL_RenderSetViewport(self._renderer, rectptr) < 0: # <<<<<<<<<<<<<< @@ -16484,14 +16484,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct __pyx_t_1 = (SDL_RenderSetViewport(__pyx_v_self->_renderer, __pyx_v_rectptr) < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":936 + /* "pygame/_sdl2/video.pyx":937 * * if SDL_RenderSetViewport(self._renderer, rectptr) < 0: * raise error() # <<<<<<<<<<<<<< * * @property */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 936, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -16509,15 +16509,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 936, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 936, __pyx_L1_error) + __PYX_ERR(0, 937, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":935 + /* "pygame/_sdl2/video.pyx":936 * raise TypeError('expected a rectangle') * * if SDL_RenderSetViewport(self._renderer, rectptr) < 0: # <<<<<<<<<<<<<< @@ -16526,7 +16526,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct */ } - /* "pygame/_sdl2/video.pyx":917 + /* "pygame/_sdl2/video.pyx":918 * return pgRect_New(&rect) * * def set_viewport(self, area): # <<<<<<<<<<<<<< @@ -16549,7 +16549,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12set_viewport(struct return __pyx_r; } -/* "pygame/_sdl2/video.pyx":938 +/* "pygame/_sdl2/video.pyx":939 * raise error() * * @property # <<<<<<<<<<<<<< @@ -16584,7 +16584,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12logical_size___get__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "pygame/_sdl2/video.pyx":944 + /* "pygame/_sdl2/video.pyx":945 * cdef int w * cdef int h * SDL_RenderGetLogicalSize(self._renderer, &w, &h) # <<<<<<<<<<<<<< @@ -16593,7 +16593,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12logical_size___get__ */ SDL_RenderGetLogicalSize(__pyx_v_self->_renderer, (&__pyx_v_w), (&__pyx_v_h)); - /* "pygame/_sdl2/video.pyx":945 + /* "pygame/_sdl2/video.pyx":946 * cdef int h * SDL_RenderGetLogicalSize(self._renderer, &w, &h) * return (w, h) # <<<<<<<<<<<<<< @@ -16601,11 +16601,11 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12logical_size___get__ * @logical_size.setter */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_w); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 945, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_w); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_h); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 945, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_h); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 945, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); @@ -16617,7 +16617,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12logical_size___get__ __pyx_t_3 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":938 + /* "pygame/_sdl2/video.pyx":939 * raise error() * * @property # <<<<<<<<<<<<<< @@ -16638,7 +16638,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_12logical_size___get__ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":947 +/* "pygame/_sdl2/video.pyx":948 * return (w, h) * * @logical_size.setter # <<<<<<<<<<<<<< @@ -16675,33 +16675,33 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_12logical_size_2__set__(stru int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - /* "pygame/_sdl2/video.pyx":949 + /* "pygame/_sdl2/video.pyx":950 * @logical_size.setter * def logical_size(self, size): * cdef int w = size[0] # <<<<<<<<<<<<<< * cdef int h = size[1] * if (SDL_RenderSetLogicalSize(self._renderer, w, h) != 0): */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_size, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 949, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_size, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 949, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_w = __pyx_t_2; - /* "pygame/_sdl2/video.pyx":950 + /* "pygame/_sdl2/video.pyx":951 * def logical_size(self, size): * cdef int w = size[0] * cdef int h = size[1] # <<<<<<<<<<<<<< * if (SDL_RenderSetLogicalSize(self._renderer, w, h) != 0): * raise error() */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_size, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 950, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_size, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 950, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 951, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_h = __pyx_t_2; - /* "pygame/_sdl2/video.pyx":951 + /* "pygame/_sdl2/video.pyx":952 * cdef int w = size[0] * cdef int h = size[1] * if (SDL_RenderSetLogicalSize(self._renderer, w, h) != 0): # <<<<<<<<<<<<<< @@ -16711,14 +16711,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_12logical_size_2__set__(stru __pyx_t_3 = (SDL_RenderSetLogicalSize(__pyx_v_self->_renderer, __pyx_v_w, __pyx_v_h) != 0); if (unlikely(__pyx_t_3)) { - /* "pygame/_sdl2/video.pyx":952 + /* "pygame/_sdl2/video.pyx":953 * cdef int h = size[1] * if (SDL_RenderSetLogicalSize(self._renderer, w, h) != 0): * raise error() # <<<<<<<<<<<<<< * * @property */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 952, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_2 = 0; @@ -16736,15 +16736,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_12logical_size_2__set__(stru PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_2, 0+__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 952, __pyx_L1_error) + __PYX_ERR(0, 953, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":951 + /* "pygame/_sdl2/video.pyx":952 * cdef int w = size[0] * cdef int h = size[1] * if (SDL_RenderSetLogicalSize(self._renderer, w, h) != 0): # <<<<<<<<<<<<<< @@ -16753,7 +16753,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_12logical_size_2__set__(stru */ } - /* "pygame/_sdl2/video.pyx":947 + /* "pygame/_sdl2/video.pyx":948 * return (w, h) * * @logical_size.setter # <<<<<<<<<<<<<< @@ -16775,7 +16775,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_12logical_size_2__set__(stru return __pyx_r; } -/* "pygame/_sdl2/video.pyx":954 +/* "pygame/_sdl2/video.pyx":955 * raise error() * * @property # <<<<<<<<<<<<<< @@ -16810,7 +16810,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_5scale___get__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - /* "pygame/_sdl2/video.pyx":960 + /* "pygame/_sdl2/video.pyx":961 * cdef float x * cdef float y * SDL_RenderGetScale(self._renderer, &x, &y) # <<<<<<<<<<<<<< @@ -16819,7 +16819,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_5scale___get__(struct */ SDL_RenderGetScale(__pyx_v_self->_renderer, (&__pyx_v_x), (&__pyx_v_y)); - /* "pygame/_sdl2/video.pyx":961 + /* "pygame/_sdl2/video.pyx":962 * cdef float y * SDL_RenderGetScale(self._renderer, &x, &y) * return (x, y) # <<<<<<<<<<<<<< @@ -16827,11 +16827,11 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_5scale___get__(struct * @scale.setter */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error) + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 961, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); @@ -16843,7 +16843,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_5scale___get__(struct __pyx_t_3 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":954 + /* "pygame/_sdl2/video.pyx":955 * raise error() * * @property # <<<<<<<<<<<<<< @@ -16864,7 +16864,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_5scale___get__(struct return __pyx_r; } -/* "pygame/_sdl2/video.pyx":963 +/* "pygame/_sdl2/video.pyx":964 * return (x, y) * * @scale.setter # <<<<<<<<<<<<<< @@ -16902,33 +16902,33 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_5scale_2__set__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - /* "pygame/_sdl2/video.pyx":965 + /* "pygame/_sdl2/video.pyx":966 * @scale.setter * def scale(self, scale): * cdef float x = scale[0] # <<<<<<<<<<<<<< * cdef float y = scale[1] * if (SDL_RenderSetScale(self._renderer, x, y) != 0): */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_scale, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 965, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_scale, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L1_error) + __pyx_t_2 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 966, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_x = __pyx_t_2; - /* "pygame/_sdl2/video.pyx":966 + /* "pygame/_sdl2/video.pyx":967 * def scale(self, scale): * cdef float x = scale[0] * cdef float y = scale[1] # <<<<<<<<<<<<<< * if (SDL_RenderSetScale(self._renderer, x, y) != 0): * raise error() */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_scale, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 966, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_scale, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 966, __pyx_L1_error) + __pyx_t_2 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_y = __pyx_t_2; - /* "pygame/_sdl2/video.pyx":967 + /* "pygame/_sdl2/video.pyx":968 * cdef float x = scale[0] * cdef float y = scale[1] * if (SDL_RenderSetScale(self._renderer, x, y) != 0): # <<<<<<<<<<<<<< @@ -16938,14 +16938,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_5scale_2__set__(struct __pyx __pyx_t_3 = (SDL_RenderSetScale(__pyx_v_self->_renderer, __pyx_v_x, __pyx_v_y) != 0); if (unlikely(__pyx_t_3)) { - /* "pygame/_sdl2/video.pyx":968 + /* "pygame/_sdl2/video.pyx":969 * cdef float y = scale[1] * if (SDL_RenderSetScale(self._renderer, x, y) != 0): * raise error() # <<<<<<<<<<<<<< * * # TODO ifdef */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 968, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_6 = 0; @@ -16963,15 +16963,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_5scale_2__set__(struct __pyx PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 968, __pyx_L1_error) + __PYX_ERR(0, 969, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":967 + /* "pygame/_sdl2/video.pyx":968 * cdef float x = scale[0] * cdef float y = scale[1] * if (SDL_RenderSetScale(self._renderer, x, y) != 0): # <<<<<<<<<<<<<< @@ -16980,7 +16980,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_5scale_2__set__(struct __pyx */ } - /* "pygame/_sdl2/video.pyx":963 + /* "pygame/_sdl2/video.pyx":964 * return (x, y) * * @scale.setter # <<<<<<<<<<<<<< @@ -17002,7 +17002,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_5scale_2__set__(struct __pyx return __pyx_r; } -/* "pygame/_sdl2/video.pyx":974 +/* "pygame/_sdl2/video.pyx":975 * # return SDL_RenderGetIntegerScale(self._renderer) * * @property # <<<<<<<<<<<<<< @@ -17029,7 +17029,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target___get__(struct __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); - /* "pygame/_sdl2/video.pyx":983 + /* "pygame/_sdl2/video.pyx":984 * """ * # https://wiki.libsdl.org/SDL_GetRenderTarget * return self._target # <<<<<<<<<<<<<< @@ -17041,7 +17041,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target___get__(struct __pyx_r = ((PyObject *)__pyx_v_self->_target); goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":974 + /* "pygame/_sdl2/video.pyx":975 * # return SDL_RenderGetIntegerScale(self._renderer) * * @property # <<<<<<<<<<<<<< @@ -17056,7 +17056,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target___get__(struct return __pyx_r; } -/* "pygame/_sdl2/video.pyx":985 +/* "pygame/_sdl2/video.pyx":986 * return self._target * * @target.setter # <<<<<<<<<<<<<< @@ -17091,7 +17091,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__set__", 0); - /* "pygame/_sdl2/video.pyx":988 + /* "pygame/_sdl2/video.pyx":989 * def target(self, newtarget): * # https://wiki.libsdl.org/SDL_SetRenderTarget * if newtarget is None: # <<<<<<<<<<<<<< @@ -17101,7 +17101,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py __pyx_t_1 = (__pyx_v_newtarget == Py_None); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":989 + /* "pygame/_sdl2/video.pyx":990 * # https://wiki.libsdl.org/SDL_SetRenderTarget * if newtarget is None: * self._target = None # <<<<<<<<<<<<<< @@ -17114,7 +17114,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py __Pyx_DECREF((PyObject *)__pyx_v_self->_target); __pyx_v_self->_target = ((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)Py_None); - /* "pygame/_sdl2/video.pyx":990 + /* "pygame/_sdl2/video.pyx":991 * if newtarget is None: * self._target = None * if SDL_SetRenderTarget(self._renderer, NULL) < 0: # <<<<<<<<<<<<<< @@ -17124,14 +17124,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py __pyx_t_1 = (SDL_SetRenderTarget(__pyx_v_self->_renderer, NULL) < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":991 + /* "pygame/_sdl2/video.pyx":992 * self._target = None * if SDL_SetRenderTarget(self._renderer, NULL) < 0: * raise error() # <<<<<<<<<<<<<< * elif isinstance(newtarget, Texture): * self._target = newtarget */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -17149,15 +17149,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 991, __pyx_L1_error) + __PYX_ERR(0, 992, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":990 + /* "pygame/_sdl2/video.pyx":991 * if newtarget is None: * self._target = None * if SDL_SetRenderTarget(self._renderer, NULL) < 0: # <<<<<<<<<<<<<< @@ -17166,7 +17166,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py */ } - /* "pygame/_sdl2/video.pyx":988 + /* "pygame/_sdl2/video.pyx":989 * def target(self, newtarget): * # https://wiki.libsdl.org/SDL_SetRenderTarget * if newtarget is None: # <<<<<<<<<<<<<< @@ -17176,7 +17176,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py goto __pyx_L3; } - /* "pygame/_sdl2/video.pyx":992 + /* "pygame/_sdl2/video.pyx":993 * if SDL_SetRenderTarget(self._renderer, NULL) < 0: * raise error() * elif isinstance(newtarget, Texture): # <<<<<<<<<<<<<< @@ -17186,14 +17186,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_newtarget, __pyx_ptype_6pygame_5_sdl2_5video_Texture); if (likely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":993 + /* "pygame/_sdl2/video.pyx":994 * raise error() * elif isinstance(newtarget, Texture): * self._target = newtarget # <<<<<<<<<<<<<< * if SDL_SetRenderTarget(self._renderer, * self._target._tex) < 0: */ - if (!(likely(((__pyx_v_newtarget) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_newtarget, __pyx_ptype_6pygame_5_sdl2_5video_Texture))))) __PYX_ERR(0, 993, __pyx_L1_error) + if (!(likely(((__pyx_v_newtarget) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_newtarget, __pyx_ptype_6pygame_5_sdl2_5video_Texture))))) __PYX_ERR(0, 994, __pyx_L1_error) __pyx_t_2 = __pyx_v_newtarget; __Pyx_INCREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); @@ -17202,7 +17202,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py __pyx_v_self->_target = ((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":995 + /* "pygame/_sdl2/video.pyx":996 * self._target = newtarget * if SDL_SetRenderTarget(self._renderer, * self._target._tex) < 0: # <<<<<<<<<<<<<< @@ -17211,7 +17211,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py */ __pyx_t_1 = (SDL_SetRenderTarget(__pyx_v_self->_renderer, __pyx_v_self->_target->_tex) < 0); - /* "pygame/_sdl2/video.pyx":994 + /* "pygame/_sdl2/video.pyx":995 * elif isinstance(newtarget, Texture): * self._target = newtarget * if SDL_SetRenderTarget(self._renderer, # <<<<<<<<<<<<<< @@ -17220,14 +17220,14 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py */ if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":996 + /* "pygame/_sdl2/video.pyx":997 * if SDL_SetRenderTarget(self._renderer, * self._target._tex) < 0: * raise error() # <<<<<<<<<<<<<< * else: * raise TypeError('target must be a Texture or None') */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 996, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -17245,15 +17245,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 996, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 996, __pyx_L1_error) + __PYX_ERR(0, 997, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":994 + /* "pygame/_sdl2/video.pyx":995 * elif isinstance(newtarget, Texture): * self._target = newtarget * if SDL_SetRenderTarget(self._renderer, # <<<<<<<<<<<<<< @@ -17262,7 +17262,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py */ } - /* "pygame/_sdl2/video.pyx":992 + /* "pygame/_sdl2/video.pyx":993 * if SDL_SetRenderTarget(self._renderer, NULL) < 0: * raise error() * elif isinstance(newtarget, Texture): # <<<<<<<<<<<<<< @@ -17272,7 +17272,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py goto __pyx_L3; } - /* "pygame/_sdl2/video.pyx":998 + /* "pygame/_sdl2/video.pyx":999 * raise error() * else: * raise TypeError('target must be a Texture or None') # <<<<<<<<<<<<<< @@ -17280,15 +17280,15 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py * cpdef object blit(self, object source, Rect dest=None, Rect area=None, int special_flags=0): */ /*else*/ { - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 998, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 998, __pyx_L1_error) + __PYX_ERR(0, 999, __pyx_L1_error) } __pyx_L3:; - /* "pygame/_sdl2/video.pyx":985 + /* "pygame/_sdl2/video.pyx":986 * return self._target * * @target.setter # <<<<<<<<<<<<<< @@ -17310,7 +17310,7 @@ static int __pyx_pf_6pygame_5_sdl2_5video_8Renderer_6target_2__set__(struct __py return __pyx_r; } -/* "pygame/_sdl2/video.pyx":1000 +/* "pygame/_sdl2/video.pyx":1001 * raise TypeError('target must be a Texture or None') * * cpdef object blit(self, object source, Rect dest=None, Rect area=None, int special_flags=0): # <<<<<<<<<<<<<< @@ -17365,7 +17365,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_blit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1000, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_blit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #ifdef __Pyx_CyFunction_USED if (!__Pyx_IsCyOrPyCFunction(__pyx_t_1) @@ -17374,7 +17374,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 #endif || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_6pygame_5_sdl2_5video_8Renderer_15blit)) { __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_special_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1000, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_special_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL; @@ -17394,7 +17394,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 4+__pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1000, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } @@ -17416,7 +17416,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 #endif } - /* "pygame/_sdl2/video.pyx":1013 + /* "pygame/_sdl2/video.pyx":1014 * .. note:: Textures created by different Renderers cannot shared with each other! * """ * if isinstance(source, Texture): # <<<<<<<<<<<<<< @@ -17426,7 +17426,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_source, __pyx_ptype_6pygame_5_sdl2_5video_Texture); if (__pyx_t_7) { - /* "pygame/_sdl2/video.pyx":1014 + /* "pygame/_sdl2/video.pyx":1015 * """ * if isinstance(source, Texture): * (source).draw(area, dest) # <<<<<<<<<<<<<< @@ -17436,9 +17436,9 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 __pyx_t_8.__pyx_n = 2; __pyx_t_8.srcrect = ((PyObject *)__pyx_v_area); __pyx_t_8.dstrect = ((PyObject *)__pyx_v_dest); - ((struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Texture *)((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_v_source)->__pyx_vtab)->draw(((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_v_source), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1014, __pyx_L1_error) + ((struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Texture *)((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_v_source)->__pyx_vtab)->draw(((struct __pyx_obj_6pygame_5_sdl2_5video_Texture *)__pyx_v_source), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1015, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1013 + /* "pygame/_sdl2/video.pyx":1014 * .. note:: Textures created by different Renderers cannot shared with each other! * """ * if isinstance(source, Texture): # <<<<<<<<<<<<<< @@ -17448,7 +17448,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 goto __pyx_L3; } - /* "pygame/_sdl2/video.pyx":1015 + /* "pygame/_sdl2/video.pyx":1016 * if isinstance(source, Texture): * (source).draw(area, dest) * elif isinstance(source, Image): # <<<<<<<<<<<<<< @@ -17458,7 +17458,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_source, __pyx_ptype_6pygame_5_sdl2_5video_Image); if (__pyx_t_7) { - /* "pygame/_sdl2/video.pyx":1016 + /* "pygame/_sdl2/video.pyx":1017 * (source).draw(area, dest) * elif isinstance(source, Image): * (source).draw(area, dest) # <<<<<<<<<<<<<< @@ -17468,9 +17468,9 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 __pyx_t_9.__pyx_n = 2; __pyx_t_9.srcrect = ((PyObject *)__pyx_v_area); __pyx_t_9.dstrect = ((PyObject *)__pyx_v_dest); - ((struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Image *)((struct __pyx_obj_6pygame_5_sdl2_5video_Image *)__pyx_v_source)->__pyx_vtab)->draw(((struct __pyx_obj_6pygame_5_sdl2_5video_Image *)__pyx_v_source), 0, &__pyx_t_9); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1016, __pyx_L1_error) + ((struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Image *)((struct __pyx_obj_6pygame_5_sdl2_5video_Image *)__pyx_v_source)->__pyx_vtab)->draw(((struct __pyx_obj_6pygame_5_sdl2_5video_Image *)__pyx_v_source), 0, &__pyx_t_9); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1017, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1015 + /* "pygame/_sdl2/video.pyx":1016 * if isinstance(source, Texture): * (source).draw(area, dest) * elif isinstance(source, Image): # <<<<<<<<<<<<<< @@ -17480,31 +17480,31 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 goto __pyx_L3; } - /* "pygame/_sdl2/video.pyx":1017 + /* "pygame/_sdl2/video.pyx":1018 * elif isinstance(source, Image): * (source).draw(area, dest) * elif not hasattr(source, 'draw'): # <<<<<<<<<<<<<< * raise TypeError('source must be drawable') * else: */ - __pyx_t_7 = __Pyx_HasAttr(__pyx_v_source, __pyx_n_s_draw); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 1017, __pyx_L1_error) + __pyx_t_7 = __Pyx_HasAttr(__pyx_v_source, __pyx_n_s_draw); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 1018, __pyx_L1_error) __pyx_t_10 = (!__pyx_t_7); if (unlikely(__pyx_t_10)) { - /* "pygame/_sdl2/video.pyx":1018 + /* "pygame/_sdl2/video.pyx":1019 * (source).draw(area, dest) * elif not hasattr(source, 'draw'): * raise TypeError('source must be drawable') # <<<<<<<<<<<<<< * else: * source.draw(area, dest) */ - __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1018, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 1018, __pyx_L1_error) + __PYX_ERR(0, 1019, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1017 + /* "pygame/_sdl2/video.pyx":1018 * elif isinstance(source, Image): * (source).draw(area, dest) * elif not hasattr(source, 'draw'): # <<<<<<<<<<<<<< @@ -17513,7 +17513,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 */ } - /* "pygame/_sdl2/video.pyx":1020 + /* "pygame/_sdl2/video.pyx":1021 * raise TypeError('source must be drawable') * else: * source.draw(area, dest) # <<<<<<<<<<<<<< @@ -17521,7 +17521,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 * if not dest: */ /*else*/ { - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_draw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1020, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_draw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; __pyx_t_6 = 0; @@ -17539,7 +17539,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_area), ((PyObject *)__pyx_v_dest)}; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1020, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } @@ -17547,18 +17547,18 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 } __pyx_L3:; - /* "pygame/_sdl2/video.pyx":1022 + /* "pygame/_sdl2/video.pyx":1023 * source.draw(area, dest) * * if not dest: # <<<<<<<<<<<<<< * return self.get_viewport() * return dest */ - __pyx_t_10 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_dest)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 1022, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_dest)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 1023, __pyx_L1_error) __pyx_t_7 = (!__pyx_t_10); if (__pyx_t_7) { - /* "pygame/_sdl2/video.pyx":1023 + /* "pygame/_sdl2/video.pyx":1024 * * if not dest: * return self.get_viewport() # <<<<<<<<<<<<<< @@ -17566,13 +17566,13 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = ((struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Renderer *)__pyx_v_self->__pyx_vtab)->get_viewport(__pyx_v_self, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1023, __pyx_L1_error) + __pyx_t_1 = ((struct __pyx_vtabstruct_6pygame_5_sdl2_5video_Renderer *)__pyx_v_self->__pyx_vtab)->get_viewport(__pyx_v_self, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":1022 + /* "pygame/_sdl2/video.pyx":1023 * source.draw(area, dest) * * if not dest: # <<<<<<<<<<<<<< @@ -17581,7 +17581,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 */ } - /* "pygame/_sdl2/video.pyx":1024 + /* "pygame/_sdl2/video.pyx":1025 * if not dest: * return self.get_viewport() * return dest # <<<<<<<<<<<<<< @@ -17593,7 +17593,7 @@ static PyObject *__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit(struct __pyx_obj_6 __pyx_r = ((PyObject *)__pyx_v_dest); goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":1000 + /* "pygame/_sdl2/video.pyx":1001 * raise TypeError('target must be a Texture or None') * * cpdef object blit(self, object source, Rect dest=None, Rect area=None, int special_flags=0): # <<<<<<<<<<<<<< @@ -17670,33 +17670,33 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_source)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1000, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1001, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dest); if (value) { values[1] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1000, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1001, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_area); if (value) { values[2] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1000, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1001, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_special_flags); if (value) { values[3] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1000, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1001, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "blit") < 0)) __PYX_ERR(0, 1000, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "blit") < 0)) __PYX_ERR(0, 1001, __pyx_L3_error) } } else { switch (__pyx_nargs) { @@ -17715,21 +17715,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_dest = ((pgRectObject *)values[1]); __pyx_v_area = ((pgRectObject *)values[2]); if (values[3]) { - __pyx_v_special_flags = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_special_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1000, __pyx_L3_error) + __pyx_v_special_flags = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_special_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1001, __pyx_L3_error) } else { __pyx_v_special_flags = ((int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("blit", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 1000, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("blit", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 1001, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.blit", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dest), __pyx_ptype_6pygame_5_sdl2_5video_Rect, 1, "dest", 0))) __PYX_ERR(0, 1000, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_area), __pyx_ptype_6pygame_5_sdl2_5video_Rect, 1, "area", 0))) __PYX_ERR(0, 1000, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dest), __pyx_ptype_6pygame_5_sdl2_5video_Rect, 1, "dest", 0))) __PYX_ERR(0, 1001, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_area), __pyx_ptype_6pygame_5_sdl2_5video_Rect, 1, "area", 0))) __PYX_ERR(0, 1001, __pyx_L1_error) __pyx_r = __pyx_pf_6pygame_5_sdl2_5video_8Renderer_14blit(((struct __pyx_obj_6pygame_5_sdl2_5video_Renderer *)__pyx_v_self), __pyx_v_source, __pyx_v_dest, __pyx_v_area, __pyx_v_special_flags); /* function exit code */ @@ -17755,7 +17755,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_14blit(struct __pyx_ob __pyx_t_2.dest = __pyx_v_dest; __pyx_t_2.area = __pyx_v_area; __pyx_t_2.special_flags = __pyx_v_special_flags; - __pyx_t_1 = __pyx_vtabptr_6pygame_5_sdl2_5video_Renderer->blit(__pyx_v_self, __pyx_v_source, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1000, __pyx_L1_error) + __pyx_t_1 = __pyx_vtabptr_6pygame_5_sdl2_5video_Renderer->blit(__pyx_v_self, __pyx_v_source, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; @@ -17772,7 +17772,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_14blit(struct __pyx_ob return __pyx_r; } -/* "pygame/_sdl2/video.pyx":1026 +/* "pygame/_sdl2/video.pyx":1027 * return dest * * def draw_line(self, p1, p2): # <<<<<<<<<<<<<< @@ -17826,19 +17826,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p1)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1026, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1027, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p2)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1026, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1027, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("draw_line", 1, 2, 2, 1); __PYX_ERR(0, 1026, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_line", 1, 2, 2, 1); __PYX_ERR(0, 1027, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_line") < 0)) __PYX_ERR(0, 1026, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_line") < 0)) __PYX_ERR(0, 1027, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; @@ -17851,7 +17851,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("draw_line", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1026, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_line", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1027, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.draw_line", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -17882,39 +17882,39 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_16draw_line(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("draw_line", 0); - /* "pygame/_sdl2/video.pyx":1034 + /* "pygame/_sdl2/video.pyx":1035 * cdef int res * res = SDL_RenderDrawLineF(self._renderer, * p1[0], p1[1], # <<<<<<<<<<<<<< * p2[0], p2[1]) * if res < 0: */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_p1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1034, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_p1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1034, __pyx_L1_error) + __pyx_t_2 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1035, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_p1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1034, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_p1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1034, __pyx_L1_error) + __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1035, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":1035 + /* "pygame/_sdl2/video.pyx":1036 * res = SDL_RenderDrawLineF(self._renderer, * p1[0], p1[1], * p2[0], p2[1]) # <<<<<<<<<<<<<< * if res < 0: * raise error() */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_p2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1035, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_p2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1035, __pyx_L1_error) + __pyx_t_4 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_4 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1036, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_p2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1035, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_p2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1035, __pyx_L1_error) + __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1036, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":1033 + /* "pygame/_sdl2/video.pyx":1034 * """ * cdef int res * res = SDL_RenderDrawLineF(self._renderer, # <<<<<<<<<<<<<< @@ -17923,7 +17923,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_16draw_line(struct __p */ __pyx_v_res = SDL_RenderDrawLineF(__pyx_v_self->_renderer, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5); - /* "pygame/_sdl2/video.pyx":1036 + /* "pygame/_sdl2/video.pyx":1037 * p1[0], p1[1], * p2[0], p2[1]) * if res < 0: # <<<<<<<<<<<<<< @@ -17933,14 +17933,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_16draw_line(struct __p __pyx_t_6 = (__pyx_v_res < 0); if (unlikely(__pyx_t_6)) { - /* "pygame/_sdl2/video.pyx":1037 + /* "pygame/_sdl2/video.pyx":1038 * p2[0], p2[1]) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def draw_point(self, point): */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1037, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = NULL; __pyx_t_9 = 0; @@ -17958,15 +17958,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_16draw_line(struct __p PyObject *__pyx_callargs[1] = {__pyx_t_8, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 0+__pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1037, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 1037, __pyx_L1_error) + __PYX_ERR(0, 1038, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1036 + /* "pygame/_sdl2/video.pyx":1037 * p1[0], p1[1], * p2[0], p2[1]) * if res < 0: # <<<<<<<<<<<<<< @@ -17975,7 +17975,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_16draw_line(struct __p */ } - /* "pygame/_sdl2/video.pyx":1026 + /* "pygame/_sdl2/video.pyx":1027 * return dest * * def draw_line(self, p1, p2): # <<<<<<<<<<<<<< @@ -17998,7 +17998,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_16draw_line(struct __p return __pyx_r; } -/* "pygame/_sdl2/video.pyx":1039 +/* "pygame/_sdl2/video.pyx":1040 * raise error() * * def draw_point(self, point): # <<<<<<<<<<<<<< @@ -18049,12 +18049,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_point)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1039, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1040, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_point") < 0)) __PYX_ERR(0, 1039, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_point") < 0)) __PYX_ERR(0, 1040, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; @@ -18065,7 +18065,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("draw_point", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1039, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_point", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1040, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.draw_point", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -18094,23 +18094,23 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_18draw_point(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("draw_point", 0); - /* "pygame/_sdl2/video.pyx":1047 + /* "pygame/_sdl2/video.pyx":1048 * cdef int res * res = SDL_RenderDrawPointF(self._renderer, * point[0], point[1]) # <<<<<<<<<<<<<< * if res < 0: * raise error() */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_point, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1047, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_point, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1047, __pyx_L1_error) + __pyx_t_2 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_2 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_point, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1047, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_point, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1047, __pyx_L1_error) + __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_t_1); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":1046 + /* "pygame/_sdl2/video.pyx":1047 * # https://wiki.libsdl.org/SDL_RenderDrawPointF * cdef int res * res = SDL_RenderDrawPointF(self._renderer, # <<<<<<<<<<<<<< @@ -18119,7 +18119,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_18draw_point(struct __ */ __pyx_v_res = SDL_RenderDrawPointF(__pyx_v_self->_renderer, __pyx_t_2, __pyx_t_3); - /* "pygame/_sdl2/video.pyx":1048 + /* "pygame/_sdl2/video.pyx":1049 * res = SDL_RenderDrawPointF(self._renderer, * point[0], point[1]) * if res < 0: # <<<<<<<<<<<<<< @@ -18129,14 +18129,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_18draw_point(struct __ __pyx_t_4 = (__pyx_v_res < 0); if (unlikely(__pyx_t_4)) { - /* "pygame/_sdl2/video.pyx":1049 + /* "pygame/_sdl2/video.pyx":1050 * point[0], point[1]) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def draw_rect(self, rect): */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1049, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; @@ -18154,15 +18154,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_18draw_point(struct __ PyObject *__pyx_callargs[1] = {__pyx_t_6, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1049, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 1049, __pyx_L1_error) + __PYX_ERR(0, 1050, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1048 + /* "pygame/_sdl2/video.pyx":1049 * res = SDL_RenderDrawPointF(self._renderer, * point[0], point[1]) * if res < 0: # <<<<<<<<<<<<<< @@ -18171,7 +18171,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_18draw_point(struct __ */ } - /* "pygame/_sdl2/video.pyx":1039 + /* "pygame/_sdl2/video.pyx":1040 * raise error() * * def draw_point(self, point): # <<<<<<<<<<<<<< @@ -18194,7 +18194,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_18draw_point(struct __ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":1051 +/* "pygame/_sdl2/video.pyx":1052 * raise error() * * def draw_rect(self, rect): # <<<<<<<<<<<<<< @@ -18245,12 +18245,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rect)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1051, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1052, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_rect") < 0)) __PYX_ERR(0, 1051, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_rect") < 0)) __PYX_ERR(0, 1052, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; @@ -18261,7 +18261,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("draw_rect", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1051, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_rect", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1052, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.draw_rect", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -18290,7 +18290,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_20draw_rect(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("draw_rect", 0); - /* "pygame/_sdl2/video.pyx":1061 + /* "pygame/_sdl2/video.pyx":1062 * cdef int res * * frectptr = pgFRect_FromObject(rect, &_frect) # <<<<<<<<<<<<<< @@ -18299,7 +18299,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_20draw_rect(struct __p */ __pyx_v_frectptr = pgFRect_FromObject(__pyx_v_rect, (&__pyx_v__frect)); - /* "pygame/_sdl2/video.pyx":1062 + /* "pygame/_sdl2/video.pyx":1063 * * frectptr = pgFRect_FromObject(rect, &_frect) * if frectptr == NULL: # <<<<<<<<<<<<<< @@ -18309,20 +18309,20 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_20draw_rect(struct __p __pyx_t_1 = (__pyx_v_frectptr == NULL); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1063 + /* "pygame/_sdl2/video.pyx":1064 * frectptr = pgFRect_FromObject(rect, &_frect) * if frectptr == NULL: * raise TypeError('expected a rectangle') # <<<<<<<<<<<<<< * * res = SDL_RenderDrawRectF(self._renderer, frectptr) */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1063, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1063, __pyx_L1_error) + __PYX_ERR(0, 1064, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1062 + /* "pygame/_sdl2/video.pyx":1063 * * frectptr = pgFRect_FromObject(rect, &_frect) * if frectptr == NULL: # <<<<<<<<<<<<<< @@ -18331,7 +18331,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_20draw_rect(struct __p */ } - /* "pygame/_sdl2/video.pyx":1065 + /* "pygame/_sdl2/video.pyx":1066 * raise TypeError('expected a rectangle') * * res = SDL_RenderDrawRectF(self._renderer, frectptr) # <<<<<<<<<<<<<< @@ -18340,7 +18340,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_20draw_rect(struct __p */ __pyx_v_res = SDL_RenderDrawRectF(__pyx_v_self->_renderer, __pyx_v_frectptr); - /* "pygame/_sdl2/video.pyx":1067 + /* "pygame/_sdl2/video.pyx":1068 * res = SDL_RenderDrawRectF(self._renderer, frectptr) * * if res < 0: # <<<<<<<<<<<<<< @@ -18350,14 +18350,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_20draw_rect(struct __p __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1068 + /* "pygame/_sdl2/video.pyx":1069 * * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def fill_rect(self, rect): */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1068, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -18375,15 +18375,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_20draw_rect(struct __p PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1068, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1068, __pyx_L1_error) + __PYX_ERR(0, 1069, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1067 + /* "pygame/_sdl2/video.pyx":1068 * res = SDL_RenderDrawRectF(self._renderer, frectptr) * * if res < 0: # <<<<<<<<<<<<<< @@ -18392,7 +18392,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_20draw_rect(struct __p */ } - /* "pygame/_sdl2/video.pyx":1051 + /* "pygame/_sdl2/video.pyx":1052 * raise error() * * def draw_rect(self, rect): # <<<<<<<<<<<<<< @@ -18415,7 +18415,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_20draw_rect(struct __p return __pyx_r; } -/* "pygame/_sdl2/video.pyx":1070 +/* "pygame/_sdl2/video.pyx":1071 * raise error() * * def fill_rect(self, rect): # <<<<<<<<<<<<<< @@ -18466,12 +18466,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rect)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1070, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error) else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fill_rect") < 0)) __PYX_ERR(0, 1070, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fill_rect") < 0)) __PYX_ERR(0, 1071, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; @@ -18482,7 +18482,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("fill_rect", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1070, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("fill_rect", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1071, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.fill_rect", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -18511,7 +18511,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_22fill_rect(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fill_rect", 0); - /* "pygame/_sdl2/video.pyx":1081 + /* "pygame/_sdl2/video.pyx":1082 * * * frectptr = pgFRect_FromObject(rect, &_frect) # <<<<<<<<<<<<<< @@ -18520,7 +18520,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_22fill_rect(struct __p */ __pyx_v_frectptr = pgFRect_FromObject(__pyx_v_rect, (&__pyx_v__frect)); - /* "pygame/_sdl2/video.pyx":1082 + /* "pygame/_sdl2/video.pyx":1083 * * frectptr = pgFRect_FromObject(rect, &_frect) * if frectptr == NULL: # <<<<<<<<<<<<<< @@ -18530,20 +18530,20 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_22fill_rect(struct __p __pyx_t_1 = (__pyx_v_frectptr == NULL); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1083 + /* "pygame/_sdl2/video.pyx":1084 * frectptr = pgFRect_FromObject(rect, &_frect) * if frectptr == NULL: * raise TypeError('expected a rectangle') # <<<<<<<<<<<<<< * * res = SDL_RenderFillRectF(self._renderer, frectptr) */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1083, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1083, __pyx_L1_error) + __PYX_ERR(0, 1084, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1082 + /* "pygame/_sdl2/video.pyx":1083 * * frectptr = pgFRect_FromObject(rect, &_frect) * if frectptr == NULL: # <<<<<<<<<<<<<< @@ -18552,7 +18552,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_22fill_rect(struct __p */ } - /* "pygame/_sdl2/video.pyx":1085 + /* "pygame/_sdl2/video.pyx":1086 * raise TypeError('expected a rectangle') * * res = SDL_RenderFillRectF(self._renderer, frectptr) # <<<<<<<<<<<<<< @@ -18561,7 +18561,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_22fill_rect(struct __p */ __pyx_v_res = SDL_RenderFillRectF(__pyx_v_self->_renderer, __pyx_v_frectptr); - /* "pygame/_sdl2/video.pyx":1087 + /* "pygame/_sdl2/video.pyx":1088 * res = SDL_RenderFillRectF(self._renderer, frectptr) * * if res < 0: # <<<<<<<<<<<<<< @@ -18571,14 +18571,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_22fill_rect(struct __p __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1088 + /* "pygame/_sdl2/video.pyx":1089 * * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def draw_triangle(self, p1, p2, p3): */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1088, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -18596,15 +18596,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_22fill_rect(struct __p PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1088, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1088, __pyx_L1_error) + __PYX_ERR(0, 1089, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1087 + /* "pygame/_sdl2/video.pyx":1088 * res = SDL_RenderFillRectF(self._renderer, frectptr) * * if res < 0: # <<<<<<<<<<<<<< @@ -18613,7 +18613,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_22fill_rect(struct __p */ } - /* "pygame/_sdl2/video.pyx":1070 + /* "pygame/_sdl2/video.pyx":1071 * raise error() * * def fill_rect(self, rect): # <<<<<<<<<<<<<< @@ -18636,7 +18636,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_22fill_rect(struct __p return __pyx_r; } -/* "pygame/_sdl2/video.pyx":1090 +/* "pygame/_sdl2/video.pyx":1091 * raise error() * * def draw_triangle(self, p1, p2, p3): # <<<<<<<<<<<<<< @@ -18692,26 +18692,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p1)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1090, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1091, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p2)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1090, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1091, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("draw_triangle", 1, 3, 3, 1); __PYX_ERR(0, 1090, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_triangle", 1, 3, 3, 1); __PYX_ERR(0, 1091, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p3)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1090, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1091, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("draw_triangle", 1, 3, 3, 2); __PYX_ERR(0, 1090, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_triangle", 1, 3, 3, 2); __PYX_ERR(0, 1091, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_triangle") < 0)) __PYX_ERR(0, 1090, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_triangle") < 0)) __PYX_ERR(0, 1091, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; @@ -18726,7 +18726,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("draw_triangle", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1090, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_triangle", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1091, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.draw_triangle", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -18759,7 +18759,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_24draw_triangle(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("draw_triangle", 0); - /* "pygame/_sdl2/video.pyx":1094 + /* "pygame/_sdl2/video.pyx":1095 * cdef SDL_FPoint fpoints[4] * * for i, pos in enumerate((p1, p2, p3, p1)): # <<<<<<<<<<<<<< @@ -18768,7 +18768,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_24draw_triangle(struct */ __Pyx_INCREF(__pyx_int_0); __pyx_t_1 = __pyx_int_0; - __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1094, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_p1); __Pyx_GIVEREF(__pyx_v_p1); @@ -18787,50 +18787,50 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_24draw_triangle(struct for (;;) { if (__pyx_t_4 >= 4) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 1094, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 1095, __pyx_L1_error) #else - __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1094, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_pos, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1094, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":1095 + /* "pygame/_sdl2/video.pyx":1096 * * for i, pos in enumerate((p1, p2, p3, p1)): * fpoints[i].x = pos[0] # <<<<<<<<<<<<<< * fpoints[i].y = pos[1] * */ - __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1095, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_2); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1095, __pyx_L1_error) + __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_2); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1096, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1095, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1096, __pyx_L1_error) (__pyx_v_fpoints[__pyx_t_6]).x = __pyx_t_5; - /* "pygame/_sdl2/video.pyx":1096 + /* "pygame/_sdl2/video.pyx":1097 * for i, pos in enumerate((p1, p2, p3, p1)): * fpoints[i].x = pos[0] * fpoints[i].y = pos[1] # <<<<<<<<<<<<<< * * res = SDL_RenderDrawLinesF(self._renderer, fpoints, 4) */ - __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1096, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_2); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1096, __pyx_L1_error) + __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_2); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1097, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1096, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1097, __pyx_L1_error) (__pyx_v_fpoints[__pyx_t_6]).y = __pyx_t_5; - /* "pygame/_sdl2/video.pyx":1094 + /* "pygame/_sdl2/video.pyx":1095 * cdef SDL_FPoint fpoints[4] * * for i, pos in enumerate((p1, p2, p3, p1)): # <<<<<<<<<<<<<< @@ -18841,7 +18841,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_24draw_triangle(struct __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":1098 + /* "pygame/_sdl2/video.pyx":1099 * fpoints[i].y = pos[1] * * res = SDL_RenderDrawLinesF(self._renderer, fpoints, 4) # <<<<<<<<<<<<<< @@ -18850,7 +18850,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_24draw_triangle(struct */ __pyx_v_res = SDL_RenderDrawLinesF(__pyx_v_self->_renderer, __pyx_v_fpoints, 4); - /* "pygame/_sdl2/video.pyx":1100 + /* "pygame/_sdl2/video.pyx":1101 * res = SDL_RenderDrawLinesF(self._renderer, fpoints, 4) * * if res < 0: # <<<<<<<<<<<<<< @@ -18860,14 +18860,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_24draw_triangle(struct __pyx_t_7 = (__pyx_v_res < 0); if (unlikely(__pyx_t_7)) { - /* "pygame/_sdl2/video.pyx":1101 + /* "pygame/_sdl2/video.pyx":1102 * * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def fill_triangle(self, p1, p2, p3): */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1101, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; __pyx_t_8 = 0; @@ -18885,15 +18885,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_24draw_triangle(struct PyObject *__pyx_callargs[1] = {__pyx_t_2, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1101, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 1101, __pyx_L1_error) + __PYX_ERR(0, 1102, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1100 + /* "pygame/_sdl2/video.pyx":1101 * res = SDL_RenderDrawLinesF(self._renderer, fpoints, 4) * * if res < 0: # <<<<<<<<<<<<<< @@ -18902,7 +18902,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_24draw_triangle(struct */ } - /* "pygame/_sdl2/video.pyx":1090 + /* "pygame/_sdl2/video.pyx":1091 * raise error() * * def draw_triangle(self, p1, p2, p3): # <<<<<<<<<<<<<< @@ -18927,7 +18927,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_24draw_triangle(struct return __pyx_r; } -/* "pygame/_sdl2/video.pyx":1103 +/* "pygame/_sdl2/video.pyx":1104 * raise error() * * def fill_triangle(self, p1, p2, p3): # <<<<<<<<<<<<<< @@ -18983,26 +18983,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p1)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1103, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1104, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p2)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1103, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1104, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("fill_triangle", 1, 3, 3, 1); __PYX_ERR(0, 1103, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("fill_triangle", 1, 3, 3, 1); __PYX_ERR(0, 1104, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p3)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1103, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1104, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("fill_triangle", 1, 3, 3, 2); __PYX_ERR(0, 1103, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("fill_triangle", 1, 3, 3, 2); __PYX_ERR(0, 1104, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fill_triangle") < 0)) __PYX_ERR(0, 1103, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fill_triangle") < 0)) __PYX_ERR(0, 1104, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; @@ -19017,7 +19017,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("fill_triangle", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1103, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("fill_triangle", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1104, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.fill_triangle", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -19051,7 +19051,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fill_triangle", 0); - /* "pygame/_sdl2/video.pyx":1105 + /* "pygame/_sdl2/video.pyx":1106 * def fill_triangle(self, p1, p2, p3): * # https://wiki.libsdl.org/SDL_RenderGeometry * if not SDL_VERSION_ATLEAST(2, 0, 18): # <<<<<<<<<<<<<< @@ -19061,14 +19061,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct __pyx_t_1 = (!(SDL_VERSION_ATLEAST(2, 0, 18) != 0)); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1106 + /* "pygame/_sdl2/video.pyx":1107 * # https://wiki.libsdl.org/SDL_RenderGeometry * if not SDL_VERSION_ATLEAST(2, 0, 18): * raise error("fill_triangle requires SDL 2.0.18 or newer") # <<<<<<<<<<<<<< * * cdef Uint8[4] rgba */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1106, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -19086,15 +19086,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_fill_triangle_requires_SDL_2_0_1}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1106, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1106, __pyx_L1_error) + __PYX_ERR(0, 1107, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1105 + /* "pygame/_sdl2/video.pyx":1106 * def fill_triangle(self, p1, p2, p3): * # https://wiki.libsdl.org/SDL_RenderGeometry * if not SDL_VERSION_ATLEAST(2, 0, 18): # <<<<<<<<<<<<<< @@ -19103,7 +19103,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct */ } - /* "pygame/_sdl2/video.pyx":1110 + /* "pygame/_sdl2/video.pyx":1111 * cdef Uint8[4] rgba * * cdef int res = SDL_GetRenderDrawColor(self._renderer, # <<<<<<<<<<<<<< @@ -19112,7 +19112,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct */ __pyx_v_res = SDL_GetRenderDrawColor(__pyx_v_self->_renderer, (&(__pyx_v_rgba[0])), (&(__pyx_v_rgba[1])), (&(__pyx_v_rgba[2])), (&(__pyx_v_rgba[3]))); - /* "pygame/_sdl2/video.pyx":1116 + /* "pygame/_sdl2/video.pyx":1117 * &(rgba[3])) * * if res < 0: # <<<<<<<<<<<<<< @@ -19122,14 +19122,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1117 + /* "pygame/_sdl2/video.pyx":1118 * * if res < 0: * raise error() # <<<<<<<<<<<<<< * * cdef SDL_Vertex vertices[3] */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1117, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -19147,15 +19147,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1117, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1117, __pyx_L1_error) + __PYX_ERR(0, 1118, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1116 + /* "pygame/_sdl2/video.pyx":1117 * &(rgba[3])) * * if res < 0: # <<<<<<<<<<<<<< @@ -19164,7 +19164,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct */ } - /* "pygame/_sdl2/video.pyx":1120 + /* "pygame/_sdl2/video.pyx":1121 * * cdef SDL_Vertex vertices[3] * for i, pos in enumerate((p1, p2, p3)): # <<<<<<<<<<<<<< @@ -19173,7 +19173,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct */ __Pyx_INCREF(__pyx_int_0); __pyx_t_2 = __pyx_int_0; - __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1120, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_p1); __Pyx_GIVEREF(__pyx_v_p1); @@ -19189,90 +19189,90 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct for (;;) { if (__pyx_t_6 >= 3) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 1120, __pyx_L1_error) + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 1121, __pyx_L1_error) #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1120, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_pos, __pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); - __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1120, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; - /* "pygame/_sdl2/video.pyx":1121 + /* "pygame/_sdl2/video.pyx":1122 * cdef SDL_Vertex vertices[3] * for i, pos in enumerate((p1, p2, p3)): * vertices[i].position.x = pos[0] # <<<<<<<<<<<<<< * vertices[i].position.y = pos[1] * vertices[i].color.r = rgba[0] */ - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1121, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_7 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1121, __pyx_L1_error) + __pyx_t_7 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_7 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1121, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1122, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).position.x = __pyx_t_7; - /* "pygame/_sdl2/video.pyx":1122 + /* "pygame/_sdl2/video.pyx":1123 * for i, pos in enumerate((p1, p2, p3)): * vertices[i].position.x = pos[0] * vertices[i].position.y = pos[1] # <<<<<<<<<<<<<< * vertices[i].color.r = rgba[0] * vertices[i].color.g = rgba[1] */ - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1122, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_7 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1122, __pyx_L1_error) + __pyx_t_7 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_7 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1123, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1122, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1123, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).position.y = __pyx_t_7; - /* "pygame/_sdl2/video.pyx":1123 + /* "pygame/_sdl2/video.pyx":1124 * vertices[i].position.x = pos[0] * vertices[i].position.y = pos[1] * vertices[i].color.r = rgba[0] # <<<<<<<<<<<<<< * vertices[i].color.g = rgba[1] * vertices[i].color.b = rgba[2] */ - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1123, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1124, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).color.r = (__pyx_v_rgba[0]); - /* "pygame/_sdl2/video.pyx":1124 + /* "pygame/_sdl2/video.pyx":1125 * vertices[i].position.y = pos[1] * vertices[i].color.r = rgba[0] * vertices[i].color.g = rgba[1] # <<<<<<<<<<<<<< * vertices[i].color.b = rgba[2] * vertices[i].color.a = rgba[3] */ - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1124, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1125, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).color.g = (__pyx_v_rgba[1]); - /* "pygame/_sdl2/video.pyx":1125 + /* "pygame/_sdl2/video.pyx":1126 * vertices[i].color.r = rgba[0] * vertices[i].color.g = rgba[1] * vertices[i].color.b = rgba[2] # <<<<<<<<<<<<<< * vertices[i].color.a = rgba[3] * */ - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1125, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1126, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).color.b = (__pyx_v_rgba[2]); - /* "pygame/_sdl2/video.pyx":1126 + /* "pygame/_sdl2/video.pyx":1127 * vertices[i].color.g = rgba[1] * vertices[i].color.b = rgba[2] * vertices[i].color.a = rgba[3] # <<<<<<<<<<<<<< * * res = SDL_RenderGeometry(self._renderer, NULL, vertices, 3, NULL, 0) */ - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1126, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1127, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).color.a = (__pyx_v_rgba[3]); - /* "pygame/_sdl2/video.pyx":1120 + /* "pygame/_sdl2/video.pyx":1121 * * cdef SDL_Vertex vertices[3] * for i, pos in enumerate((p1, p2, p3)): # <<<<<<<<<<<<<< @@ -19283,7 +19283,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":1128 + /* "pygame/_sdl2/video.pyx":1129 * vertices[i].color.a = rgba[3] * * res = SDL_RenderGeometry(self._renderer, NULL, vertices, 3, NULL, 0) # <<<<<<<<<<<<<< @@ -19292,7 +19292,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct */ __pyx_v_res = SDL_RenderGeometry(__pyx_v_self->_renderer, NULL, __pyx_v_vertices, 3, NULL, 0); - /* "pygame/_sdl2/video.pyx":1129 + /* "pygame/_sdl2/video.pyx":1130 * * res = SDL_RenderGeometry(self._renderer, NULL, vertices, 3, NULL, 0) * if res < 0: # <<<<<<<<<<<<<< @@ -19302,14 +19302,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1130 + /* "pygame/_sdl2/video.pyx":1131 * res = SDL_RenderGeometry(self._renderer, NULL, vertices, 3, NULL, 0) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def draw_quad(self, p1, p2, p3, p4): */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1130, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = NULL; __pyx_t_5 = 0; @@ -19327,15 +19327,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1130, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1130, __pyx_L1_error) + __PYX_ERR(0, 1131, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1129 + /* "pygame/_sdl2/video.pyx":1130 * * res = SDL_RenderGeometry(self._renderer, NULL, vertices, 3, NULL, 0) * if res < 0: # <<<<<<<<<<<<<< @@ -19344,7 +19344,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct */ } - /* "pygame/_sdl2/video.pyx":1103 + /* "pygame/_sdl2/video.pyx":1104 * raise error() * * def fill_triangle(self, p1, p2, p3): # <<<<<<<<<<<<<< @@ -19369,7 +19369,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_26fill_triangle(struct return __pyx_r; } -/* "pygame/_sdl2/video.pyx":1132 +/* "pygame/_sdl2/video.pyx":1133 * raise error() * * def draw_quad(self, p1, p2, p3, p4): # <<<<<<<<<<<<<< @@ -19428,33 +19428,33 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p1)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1132, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1133, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p2)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1132, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1133, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("draw_quad", 1, 4, 4, 1); __PYX_ERR(0, 1132, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_quad", 1, 4, 4, 1); __PYX_ERR(0, 1133, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p3)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1132, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1133, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("draw_quad", 1, 4, 4, 2); __PYX_ERR(0, 1132, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_quad", 1, 4, 4, 2); __PYX_ERR(0, 1133, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p4)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1132, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1133, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("draw_quad", 1, 4, 4, 3); __PYX_ERR(0, 1132, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_quad", 1, 4, 4, 3); __PYX_ERR(0, 1133, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_quad") < 0)) __PYX_ERR(0, 1132, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "draw_quad") < 0)) __PYX_ERR(0, 1133, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; @@ -19471,7 +19471,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("draw_quad", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 1132, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("draw_quad", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 1133, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.draw_quad", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -19504,7 +19504,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_28draw_quad(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("draw_quad", 0); - /* "pygame/_sdl2/video.pyx":1135 + /* "pygame/_sdl2/video.pyx":1136 * # https://wiki.libsdl.org/SDL_RenderDrawLinesF * cdef SDL_FPoint fpoints[5] * for i, pos in enumerate((p1, p2, p3, p4, p1)): # <<<<<<<<<<<<<< @@ -19513,7 +19513,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_28draw_quad(struct __p */ __Pyx_INCREF(__pyx_int_0); __pyx_t_1 = __pyx_int_0; - __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1135, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_p1); __Pyx_GIVEREF(__pyx_v_p1); @@ -19535,50 +19535,50 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_28draw_quad(struct __p for (;;) { if (__pyx_t_4 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 1135, __pyx_L1_error) + __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 1136, __pyx_L1_error) #else - __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1135, __pyx_L1_error) + __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_pos, __pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1135, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":1136 + /* "pygame/_sdl2/video.pyx":1137 * cdef SDL_FPoint fpoints[5] * for i, pos in enumerate((p1, p2, p3, p4, p1)): * fpoints[i].x = pos[0] # <<<<<<<<<<<<<< * fpoints[i].y = pos[1] * */ - __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1136, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_2); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1136, __pyx_L1_error) + __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_2); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1137, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1136, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1137, __pyx_L1_error) (__pyx_v_fpoints[__pyx_t_6]).x = __pyx_t_5; - /* "pygame/_sdl2/video.pyx":1137 + /* "pygame/_sdl2/video.pyx":1138 * for i, pos in enumerate((p1, p2, p3, p4, p1)): * fpoints[i].x = pos[0] * fpoints[i].y = pos[1] # <<<<<<<<<<<<<< * * res = SDL_RenderDrawLinesF(self._renderer, fpoints, 5) */ - __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1137, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_2); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1137, __pyx_L1_error) + __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_2); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1137, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1138, __pyx_L1_error) (__pyx_v_fpoints[__pyx_t_6]).y = __pyx_t_5; - /* "pygame/_sdl2/video.pyx":1135 + /* "pygame/_sdl2/video.pyx":1136 * # https://wiki.libsdl.org/SDL_RenderDrawLinesF * cdef SDL_FPoint fpoints[5] * for i, pos in enumerate((p1, p2, p3, p4, p1)): # <<<<<<<<<<<<<< @@ -19589,7 +19589,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_28draw_quad(struct __p __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":1139 + /* "pygame/_sdl2/video.pyx":1140 * fpoints[i].y = pos[1] * * res = SDL_RenderDrawLinesF(self._renderer, fpoints, 5) # <<<<<<<<<<<<<< @@ -19598,7 +19598,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_28draw_quad(struct __p */ __pyx_v_res = SDL_RenderDrawLinesF(__pyx_v_self->_renderer, __pyx_v_fpoints, 5); - /* "pygame/_sdl2/video.pyx":1141 + /* "pygame/_sdl2/video.pyx":1142 * res = SDL_RenderDrawLinesF(self._renderer, fpoints, 5) * * if res < 0: # <<<<<<<<<<<<<< @@ -19608,14 +19608,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_28draw_quad(struct __p __pyx_t_7 = (__pyx_v_res < 0); if (unlikely(__pyx_t_7)) { - /* "pygame/_sdl2/video.pyx":1142 + /* "pygame/_sdl2/video.pyx":1143 * * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def fill_quad(self, p1, p2, p3, p4): */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1142, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; __pyx_t_8 = 0; @@ -19633,15 +19633,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_28draw_quad(struct __p PyObject *__pyx_callargs[1] = {__pyx_t_2, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_8, 0+__pyx_t_8); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1142, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 1142, __pyx_L1_error) + __PYX_ERR(0, 1143, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1141 + /* "pygame/_sdl2/video.pyx":1142 * res = SDL_RenderDrawLinesF(self._renderer, fpoints, 5) * * if res < 0: # <<<<<<<<<<<<<< @@ -19650,7 +19650,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_28draw_quad(struct __p */ } - /* "pygame/_sdl2/video.pyx":1132 + /* "pygame/_sdl2/video.pyx":1133 * raise error() * * def draw_quad(self, p1, p2, p3, p4): # <<<<<<<<<<<<<< @@ -19675,7 +19675,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_28draw_quad(struct __p return __pyx_r; } -/* "pygame/_sdl2/video.pyx":1144 +/* "pygame/_sdl2/video.pyx":1145 * raise error() * * def fill_quad(self, p1, p2, p3, p4): # <<<<<<<<<<<<<< @@ -19734,33 +19734,33 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p1)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1144, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1145, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p2)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1144, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1145, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("fill_quad", 1, 4, 4, 1); __PYX_ERR(0, 1144, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("fill_quad", 1, 4, 4, 1); __PYX_ERR(0, 1145, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p3)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1144, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1145, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("fill_quad", 1, 4, 4, 2); __PYX_ERR(0, 1144, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("fill_quad", 1, 4, 4, 2); __PYX_ERR(0, 1145, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_p4)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1144, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1145, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("fill_quad", 1, 4, 4, 3); __PYX_ERR(0, 1144, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("fill_quad", 1, 4, 4, 3); __PYX_ERR(0, 1145, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fill_quad") < 0)) __PYX_ERR(0, 1144, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fill_quad") < 0)) __PYX_ERR(0, 1145, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; @@ -19777,7 +19777,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("fill_quad", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 1144, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("fill_quad", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 1145, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.fill_quad", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -19811,7 +19811,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("fill_quad", 0); - /* "pygame/_sdl2/video.pyx":1146 + /* "pygame/_sdl2/video.pyx":1147 * def fill_quad(self, p1, p2, p3, p4): * # https://wiki.libsdl.org/SDL_RenderGeometry * if not SDL_VERSION_ATLEAST(2, 0, 18): # <<<<<<<<<<<<<< @@ -19821,14 +19821,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p __pyx_t_1 = (!(SDL_VERSION_ATLEAST(2, 0, 18) != 0)); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1147 + /* "pygame/_sdl2/video.pyx":1148 * # https://wiki.libsdl.org/SDL_RenderGeometry * if not SDL_VERSION_ATLEAST(2, 0, 18): * raise error("fill_quad requires SDL 2.0.18 or newer") # <<<<<<<<<<<<<< * * cdef Uint8[4] rgba */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1147, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -19846,15 +19846,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_s_fill_quad_requires_SDL_2_0_18_or}; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1147, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1147, __pyx_L1_error) + __PYX_ERR(0, 1148, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1146 + /* "pygame/_sdl2/video.pyx":1147 * def fill_quad(self, p1, p2, p3, p4): * # https://wiki.libsdl.org/SDL_RenderGeometry * if not SDL_VERSION_ATLEAST(2, 0, 18): # <<<<<<<<<<<<<< @@ -19863,7 +19863,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p */ } - /* "pygame/_sdl2/video.pyx":1151 + /* "pygame/_sdl2/video.pyx":1152 * cdef Uint8[4] rgba * * cdef int res = SDL_GetRenderDrawColor(self._renderer, # <<<<<<<<<<<<<< @@ -19872,7 +19872,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p */ __pyx_v_res = SDL_GetRenderDrawColor(__pyx_v_self->_renderer, (&(__pyx_v_rgba[0])), (&(__pyx_v_rgba[1])), (&(__pyx_v_rgba[2])), (&(__pyx_v_rgba[3]))); - /* "pygame/_sdl2/video.pyx":1157 + /* "pygame/_sdl2/video.pyx":1158 * &(rgba[3])) * * if res < 0: # <<<<<<<<<<<<<< @@ -19882,14 +19882,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1158 + /* "pygame/_sdl2/video.pyx":1159 * * if res < 0: * raise error() # <<<<<<<<<<<<<< * * cdef SDL_Vertex vertices[6] */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1158, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; __pyx_t_5 = 0; @@ -19907,15 +19907,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p PyObject *__pyx_callargs[1] = {__pyx_t_4, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1158, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1158, __pyx_L1_error) + __PYX_ERR(0, 1159, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1157 + /* "pygame/_sdl2/video.pyx":1158 * &(rgba[3])) * * if res < 0: # <<<<<<<<<<<<<< @@ -19924,7 +19924,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p */ } - /* "pygame/_sdl2/video.pyx":1161 + /* "pygame/_sdl2/video.pyx":1162 * * cdef SDL_Vertex vertices[6] * for i, pos in enumerate((p1, p2, p3, p3, p4, p1)): # <<<<<<<<<<<<<< @@ -19933,7 +19933,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p */ __Pyx_INCREF(__pyx_int_0); __pyx_t_2 = __pyx_int_0; - __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1161, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_p1); __Pyx_GIVEREF(__pyx_v_p1); @@ -19958,90 +19958,90 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p for (;;) { if (__pyx_t_6 >= 6) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 1161, __pyx_L1_error) + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 1162, __pyx_L1_error) #else - __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1161, __pyx_L1_error) + __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_pos, __pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_2); - __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1161, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; - /* "pygame/_sdl2/video.pyx":1162 + /* "pygame/_sdl2/video.pyx":1163 * cdef SDL_Vertex vertices[6] * for i, pos in enumerate((p1, p2, p3, p3, p4, p1)): * vertices[i].position.x = pos[0] # <<<<<<<<<<<<<< * vertices[i].position.y = pos[1] * vertices[i].color.r = rgba[0] */ - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1162, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_7 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1162, __pyx_L1_error) + __pyx_t_7 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_7 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1162, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1163, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).position.x = __pyx_t_7; - /* "pygame/_sdl2/video.pyx":1163 + /* "pygame/_sdl2/video.pyx":1164 * for i, pos in enumerate((p1, p2, p3, p3, p4, p1)): * vertices[i].position.x = pos[0] * vertices[i].position.y = pos[1] # <<<<<<<<<<<<<< * vertices[i].color.r = rgba[0] * vertices[i].color.g = rgba[1] */ - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1163, __pyx_L1_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pos, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_7 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1163, __pyx_L1_error) + __pyx_t_7 = __pyx_PyFloat_AsFloat(__pyx_t_3); if (unlikely((__pyx_t_7 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1164, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1163, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1164, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).position.y = __pyx_t_7; - /* "pygame/_sdl2/video.pyx":1164 + /* "pygame/_sdl2/video.pyx":1165 * vertices[i].position.x = pos[0] * vertices[i].position.y = pos[1] * vertices[i].color.r = rgba[0] # <<<<<<<<<<<<<< * vertices[i].color.g = rgba[1] * vertices[i].color.b = rgba[2] */ - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1164, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1165, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).color.r = (__pyx_v_rgba[0]); - /* "pygame/_sdl2/video.pyx":1165 + /* "pygame/_sdl2/video.pyx":1166 * vertices[i].position.y = pos[1] * vertices[i].color.r = rgba[0] * vertices[i].color.g = rgba[1] # <<<<<<<<<<<<<< * vertices[i].color.b = rgba[2] * vertices[i].color.a = rgba[3] */ - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1165, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1166, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).color.g = (__pyx_v_rgba[1]); - /* "pygame/_sdl2/video.pyx":1166 + /* "pygame/_sdl2/video.pyx":1167 * vertices[i].color.r = rgba[0] * vertices[i].color.g = rgba[1] * vertices[i].color.b = rgba[2] # <<<<<<<<<<<<<< * vertices[i].color.a = rgba[3] * */ - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1166, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1167, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).color.b = (__pyx_v_rgba[2]); - /* "pygame/_sdl2/video.pyx":1167 + /* "pygame/_sdl2/video.pyx":1168 * vertices[i].color.g = rgba[1] * vertices[i].color.b = rgba[2] * vertices[i].color.a = rgba[3] # <<<<<<<<<<<<<< * * res = SDL_RenderGeometry(self._renderer, NULL, vertices, 6, NULL, 0) */ - __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1167, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1168, __pyx_L1_error) (__pyx_v_vertices[__pyx_t_8]).color.a = (__pyx_v_rgba[3]); - /* "pygame/_sdl2/video.pyx":1161 + /* "pygame/_sdl2/video.pyx":1162 * * cdef SDL_Vertex vertices[6] * for i, pos in enumerate((p1, p2, p3, p3, p4, p1)): # <<<<<<<<<<<<<< @@ -20052,7 +20052,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":1169 + /* "pygame/_sdl2/video.pyx":1170 * vertices[i].color.a = rgba[3] * * res = SDL_RenderGeometry(self._renderer, NULL, vertices, 6, NULL, 0) # <<<<<<<<<<<<<< @@ -20061,7 +20061,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p */ __pyx_v_res = SDL_RenderGeometry(__pyx_v_self->_renderer, NULL, __pyx_v_vertices, 6, NULL, 0); - /* "pygame/_sdl2/video.pyx":1170 + /* "pygame/_sdl2/video.pyx":1171 * * res = SDL_RenderGeometry(self._renderer, NULL, vertices, 6, NULL, 0) * if res < 0: # <<<<<<<<<<<<<< @@ -20071,14 +20071,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p __pyx_t_1 = (__pyx_v_res < 0); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1171 + /* "pygame/_sdl2/video.pyx":1172 * res = SDL_RenderGeometry(self._renderer, NULL, vertices, 6, NULL, 0) * if res < 0: * raise error() # <<<<<<<<<<<<<< * * def to_surface(self, surface=None, area=None): */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1171, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = NULL; __pyx_t_5 = 0; @@ -20096,15 +20096,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p PyObject *__pyx_callargs[1] = {__pyx_t_3, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1171, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1171, __pyx_L1_error) + __PYX_ERR(0, 1172, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1170 + /* "pygame/_sdl2/video.pyx":1171 * * res = SDL_RenderGeometry(self._renderer, NULL, vertices, 6, NULL, 0) * if res < 0: # <<<<<<<<<<<<<< @@ -20113,7 +20113,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p */ } - /* "pygame/_sdl2/video.pyx":1144 + /* "pygame/_sdl2/video.pyx":1145 * raise error() * * def fill_quad(self, p1, p2, p3, p4): # <<<<<<<<<<<<<< @@ -20138,7 +20138,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_30fill_quad(struct __p return __pyx_r; } -/* "pygame/_sdl2/video.pyx":1173 +/* "pygame/_sdl2/video.pyx":1174 * raise error() * * def to_surface(self, surface=None, area=None): # <<<<<<<<<<<<<< @@ -20196,19 +20196,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_surface); if (value) { values[0] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1173, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1174, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_area); if (value) { values[1] = value; kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1173, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1174, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "to_surface") < 0)) __PYX_ERR(0, 1173, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "to_surface") < 0)) __PYX_ERR(0, 1174, __pyx_L3_error) } } else { switch (__pyx_nargs) { @@ -20225,7 +20225,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("to_surface", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1173, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("to_surface", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1174, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.to_surface", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -20261,7 +20261,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __Pyx_RefNannySetupContext("to_surface", 0); __Pyx_INCREF(__pyx_v_surface); - /* "pygame/_sdl2/video.pyx":1201 + /* "pygame/_sdl2/video.pyx":1202 * * # obtain area to use * if area is not None: # <<<<<<<<<<<<<< @@ -20271,7 +20271,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_t_1 = (__pyx_v_area != Py_None); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":1203 + /* "pygame/_sdl2/video.pyx":1204 * if area is not None: * * rectptr = pgRect_FromObject(area, &rarea) # <<<<<<<<<<<<<< @@ -20280,7 +20280,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ __pyx_v_rectptr = pgRect_FromObject(__pyx_v_area, (&__pyx_v_rarea)); - /* "pygame/_sdl2/video.pyx":1204 + /* "pygame/_sdl2/video.pyx":1205 * * rectptr = pgRect_FromObject(area, &rarea) * if rectptr == NULL: # <<<<<<<<<<<<<< @@ -20290,20 +20290,20 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_t_1 = (__pyx_v_rectptr == NULL); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1205 + /* "pygame/_sdl2/video.pyx":1206 * rectptr = pgRect_FromObject(area, &rarea) * if rectptr == NULL: * raise TypeError('area must be None or a rect') # <<<<<<<<<<<<<< * * # clip area */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1205, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1205, __pyx_L1_error) + __PYX_ERR(0, 1206, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1204 + /* "pygame/_sdl2/video.pyx":1205 * * rectptr = pgRect_FromObject(area, &rarea) * if rectptr == NULL: # <<<<<<<<<<<<<< @@ -20312,7 +20312,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ } - /* "pygame/_sdl2/video.pyx":1208 + /* "pygame/_sdl2/video.pyx":1209 * * # clip area * SDL_RenderGetViewport(self._renderer, &tempviewport) # <<<<<<<<<<<<<< @@ -20321,7 +20321,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ SDL_RenderGetViewport(__pyx_v_self->_renderer, (&__pyx_v_tempviewport)); - /* "pygame/_sdl2/video.pyx":1209 + /* "pygame/_sdl2/video.pyx":1210 * # clip area * SDL_RenderGetViewport(self._renderer, &tempviewport) * SDL_IntersectRect(rectptr, &tempviewport, rectptr) # <<<<<<<<<<<<<< @@ -20330,7 +20330,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ (void)(SDL_IntersectRect(__pyx_v_rectptr, (&__pyx_v_tempviewport), __pyx_v_rectptr)); - /* "pygame/_sdl2/video.pyx":1211 + /* "pygame/_sdl2/video.pyx":1212 * SDL_IntersectRect(rectptr, &tempviewport, rectptr) * * areaparam = rectptr # <<<<<<<<<<<<<< @@ -20339,7 +20339,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ __pyx_v_areaparam = __pyx_v_rectptr; - /* "pygame/_sdl2/video.pyx":1212 + /* "pygame/_sdl2/video.pyx":1213 * * areaparam = rectptr * rarea.x = rectptr.x # <<<<<<<<<<<<<< @@ -20349,7 +20349,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_t_3 = __pyx_v_rectptr->x; __pyx_v_rarea.x = __pyx_t_3; - /* "pygame/_sdl2/video.pyx":1213 + /* "pygame/_sdl2/video.pyx":1214 * areaparam = rectptr * rarea.x = rectptr.x * rarea.y = rectptr.y # <<<<<<<<<<<<<< @@ -20359,7 +20359,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_t_3 = __pyx_v_rectptr->y; __pyx_v_rarea.y = __pyx_t_3; - /* "pygame/_sdl2/video.pyx":1214 + /* "pygame/_sdl2/video.pyx":1215 * rarea.x = rectptr.x * rarea.y = rectptr.y * rarea.w = rectptr.w # <<<<<<<<<<<<<< @@ -20369,7 +20369,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_t_3 = __pyx_v_rectptr->w; __pyx_v_rarea.w = __pyx_t_3; - /* "pygame/_sdl2/video.pyx":1215 + /* "pygame/_sdl2/video.pyx":1216 * rarea.y = rectptr.y * rarea.w = rectptr.w * rarea.h = rectptr.h # <<<<<<<<<<<<<< @@ -20379,7 +20379,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_t_3 = __pyx_v_rectptr->h; __pyx_v_rarea.h = __pyx_t_3; - /* "pygame/_sdl2/video.pyx":1201 + /* "pygame/_sdl2/video.pyx":1202 * * # obtain area to use * if area is not None: # <<<<<<<<<<<<<< @@ -20389,7 +20389,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ goto __pyx_L3; } - /* "pygame/_sdl2/video.pyx":1217 + /* "pygame/_sdl2/video.pyx":1218 * rarea.h = rectptr.h * else: * SDL_RenderGetViewport(self._renderer, &rarea) # <<<<<<<<<<<<<< @@ -20399,7 +20399,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ /*else*/ { SDL_RenderGetViewport(__pyx_v_self->_renderer, (&__pyx_v_rarea)); - /* "pygame/_sdl2/video.pyx":1218 + /* "pygame/_sdl2/video.pyx":1219 * else: * SDL_RenderGetViewport(self._renderer, &rarea) * areaparam = NULL # <<<<<<<<<<<<<< @@ -20410,7 +20410,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ } __pyx_L3:; - /* "pygame/_sdl2/video.pyx":1221 + /* "pygame/_sdl2/video.pyx":1222 * * # prepare surface * if surface is None: # <<<<<<<<<<<<<< @@ -20420,7 +20420,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_t_1 = (__pyx_v_surface == Py_None); if (__pyx_t_1) { - /* "pygame/_sdl2/video.pyx":1223 + /* "pygame/_sdl2/video.pyx":1224 * if surface is None: * # create a new surface * format = SDL_GetWindowPixelFormat(self._win._win) # <<<<<<<<<<<<<< @@ -20429,7 +20429,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ __pyx_v_format = SDL_GetWindowPixelFormat(__pyx_v_self->_win->_win); - /* "pygame/_sdl2/video.pyx":1224 + /* "pygame/_sdl2/video.pyx":1225 * # create a new surface * format = SDL_GetWindowPixelFormat(self._win._win) * if format == SDL_PIXELFORMAT_UNKNOWN: # <<<<<<<<<<<<<< @@ -20439,14 +20439,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_t_1 = (__pyx_v_format == SDL_PIXELFORMAT_UNKNOWN); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1225 + /* "pygame/_sdl2/video.pyx":1226 * format = SDL_GetWindowPixelFormat(self._win._win) * if format == SDL_PIXELFORMAT_UNKNOWN: * raise error() # <<<<<<<<<<<<<< * * surf = SDL_CreateRGBSurfaceWithFormat( */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1225, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_3 = 0; @@ -20464,15 +20464,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_3, 0+__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1225, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1225, __pyx_L1_error) + __PYX_ERR(0, 1226, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1224 + /* "pygame/_sdl2/video.pyx":1225 * # create a new surface * format = SDL_GetWindowPixelFormat(self._win._win) * if format == SDL_PIXELFORMAT_UNKNOWN: # <<<<<<<<<<<<<< @@ -20481,7 +20481,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ } - /* "pygame/_sdl2/video.pyx":1227 + /* "pygame/_sdl2/video.pyx":1228 * raise error() * * surf = SDL_CreateRGBSurfaceWithFormat( # <<<<<<<<<<<<<< @@ -20490,7 +20490,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ __pyx_v_surf = SDL_CreateRGBSurfaceWithFormat(0, __pyx_v_rarea.w, __pyx_v_rarea.h, SDL_BITSPERPIXEL(__pyx_v_format), __pyx_v_format); - /* "pygame/_sdl2/video.pyx":1232 + /* "pygame/_sdl2/video.pyx":1233 * SDL_BITSPERPIXEL(format), * format) * if surf == NULL: # <<<<<<<<<<<<<< @@ -20500,20 +20500,20 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_t_1 = (__pyx_v_surf == NULL); if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1233 + /* "pygame/_sdl2/video.pyx":1234 * format) * if surf == NULL: * raise MemoryError("not enough memory for the surface") # <<<<<<<<<<<<<< * * surface = pgSurface_New2(surf, 1) */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1233, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1233, __pyx_L1_error) + __PYX_ERR(0, 1234, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1232 + /* "pygame/_sdl2/video.pyx":1233 * SDL_BITSPERPIXEL(format), * format) * if surf == NULL: # <<<<<<<<<<<<<< @@ -20522,12 +20522,12 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ } - /* "pygame/_sdl2/video.pyx":1235 + /* "pygame/_sdl2/video.pyx":1236 * raise MemoryError("not enough memory for the surface") * * surface = pgSurface_New2(surf, 1) # <<<<<<<<<<<<<< - * elif pgSurface_Check(surface): - * surf = pgSurface_AsSurface(surface) + * # casting to makes cython assume reference counting of the object and it increments + * # it by one, however, pgSurface_New2 already returns a new reference to an object, so */ __pyx_t_6 = pgSurface_New2(__pyx_v_surf, 1); __pyx_t_2 = ((PyObject *)__pyx_t_6); @@ -20535,7 +20535,16 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __Pyx_DECREF_SET(__pyx_v_surface, __pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":1221 + /* "pygame/_sdl2/video.pyx":1241 + * # we need to decrement that reference cython has added on top + * # see https://github.com/cython/cython/issues/2589#issuecomment-417604249 for additional context + * Py_DECREF(surface) # <<<<<<<<<<<<<< + * elif pgSurface_Check(surface): + * surf = pgSurface_AsSurface(surface) + */ + Py_DECREF(__pyx_v_surface); + + /* "pygame/_sdl2/video.pyx":1222 * * # prepare surface * if surface is None: # <<<<<<<<<<<<<< @@ -20545,9 +20554,9 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ goto __pyx_L5; } - /* "pygame/_sdl2/video.pyx":1236 - * - * surface = pgSurface_New2(surf, 1) + /* "pygame/_sdl2/video.pyx":1242 + * # see https://github.com/cython/cython/issues/2589#issuecomment-417604249 for additional context + * Py_DECREF(surface) * elif pgSurface_Check(surface): # <<<<<<<<<<<<<< * surf = pgSurface_AsSurface(surface) * if surf.w < rarea.w or surf.h < rarea.h: @@ -20555,8 +20564,8 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_t_1 = (pgSurface_Check(__pyx_v_surface) != 0); if (likely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1237 - * surface = pgSurface_New2(surf, 1) + /* "pygame/_sdl2/video.pyx":1243 + * Py_DECREF(surface) * elif pgSurface_Check(surface): * surf = pgSurface_AsSurface(surface) # <<<<<<<<<<<<<< * if surf.w < rarea.w or surf.h < rarea.h: @@ -20564,7 +20573,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ __pyx_v_surf = pgSurface_AsSurface(__pyx_v_surface); - /* "pygame/_sdl2/video.pyx":1238 + /* "pygame/_sdl2/video.pyx":1244 * elif pgSurface_Check(surface): * surf = pgSurface_AsSurface(surface) * if surf.w < rarea.w or surf.h < rarea.h: # <<<<<<<<<<<<<< @@ -20582,20 +20591,20 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_L9_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1239 + /* "pygame/_sdl2/video.pyx":1245 * surf = pgSurface_AsSurface(surface) * if surf.w < rarea.w or surf.h < rarea.h: * raise ValueError("the surface is too small") # <<<<<<<<<<<<<< * format = surf.format.format * else: */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1239, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1239, __pyx_L1_error) + __PYX_ERR(0, 1245, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1238 + /* "pygame/_sdl2/video.pyx":1244 * elif pgSurface_Check(surface): * surf = pgSurface_AsSurface(surface) * if surf.w < rarea.w or surf.h < rarea.h: # <<<<<<<<<<<<<< @@ -20604,7 +20613,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ } - /* "pygame/_sdl2/video.pyx":1240 + /* "pygame/_sdl2/video.pyx":1246 * if surf.w < rarea.w or surf.h < rarea.h: * raise ValueError("the surface is too small") * format = surf.format.format # <<<<<<<<<<<<<< @@ -20614,9 +20623,9 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_t_8 = __pyx_v_surf->format->format; __pyx_v_format = __pyx_t_8; - /* "pygame/_sdl2/video.pyx":1236 - * - * surface = pgSurface_New2(surf, 1) + /* "pygame/_sdl2/video.pyx":1242 + * # see https://github.com/cython/cython/issues/2589#issuecomment-417604249 for additional context + * Py_DECREF(surface) * elif pgSurface_Check(surface): # <<<<<<<<<<<<<< * surf = pgSurface_AsSurface(surface) * if surf.w < rarea.w or surf.h < rarea.h: @@ -20624,7 +20633,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ goto __pyx_L5; } - /* "pygame/_sdl2/video.pyx":1242 + /* "pygame/_sdl2/video.pyx":1248 * format = surf.format.format * else: * raise TypeError("'surface' must be a surface or None") # <<<<<<<<<<<<<< @@ -20632,15 +20641,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ * if SDL_RenderReadPixels(self._renderer, */ /*else*/ { - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1242, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1242, __pyx_L1_error) + __PYX_ERR(0, 1248, __pyx_L1_error) } __pyx_L5:; - /* "pygame/_sdl2/video.pyx":1246 + /* "pygame/_sdl2/video.pyx":1252 * if SDL_RenderReadPixels(self._renderer, * areaparam, * format, surf.pixels, surf.pitch) < 0: # <<<<<<<<<<<<<< @@ -20649,7 +20658,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ __pyx_t_1 = (SDL_RenderReadPixels(__pyx_v_self->_renderer, __pyx_v_areaparam, __pyx_v_format, __pyx_v_surf->pixels, __pyx_v_surf->pitch) < 0); - /* "pygame/_sdl2/video.pyx":1244 + /* "pygame/_sdl2/video.pyx":1250 * raise TypeError("'surface' must be a surface or None") * * if SDL_RenderReadPixels(self._renderer, # <<<<<<<<<<<<<< @@ -20658,14 +20667,14 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ if (unlikely(__pyx_t_1)) { - /* "pygame/_sdl2/video.pyx":1247 + /* "pygame/_sdl2/video.pyx":1253 * areaparam, * format, surf.pixels, surf.pitch) < 0: * raise error() # <<<<<<<<<<<<<< * return surface * */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1247, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_3 = 0; @@ -20683,15 +20692,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ PyObject *__pyx_callargs[1] = {__pyx_t_5, }; __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_3, 0+__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1247, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1247, __pyx_L1_error) + __PYX_ERR(0, 1253, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1244 + /* "pygame/_sdl2/video.pyx":1250 * raise TypeError("'surface' must be a surface or None") * * if SDL_RenderReadPixels(self._renderer, # <<<<<<<<<<<<<< @@ -20700,7 +20709,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ */ } - /* "pygame/_sdl2/video.pyx":1248 + /* "pygame/_sdl2/video.pyx":1254 * format, surf.pixels, surf.pitch) < 0: * raise error() * return surface # <<<<<<<<<<<<<< @@ -20712,7 +20721,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ __pyx_r = __pyx_v_surface; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":1173 + /* "pygame/_sdl2/video.pyx":1174 * raise error() * * def to_surface(self, surface=None, area=None): # <<<<<<<<<<<<<< @@ -20734,7 +20743,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_32to_surface(struct __ return __pyx_r; } -/* "pygame/_sdl2/video.pyx":1250 +/* "pygame/_sdl2/video.pyx":1256 * return surface * * @staticmethod # <<<<<<<<<<<<<< @@ -20788,19 +20797,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds switch (__pyx_nargs) { case 0: if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_color_mode)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1250, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1256, __pyx_L3_error) else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_alpha_mode)) != 0)) kw_args--; - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1250, __pyx_L3_error) + else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1256, __pyx_L3_error) else { - __Pyx_RaiseArgtupleInvalid("compose_custom_blend_mode", 1, 2, 2, 1); __PYX_ERR(0, 1250, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compose_custom_blend_mode", 1, 2, 2, 1); __PYX_ERR(0, 1256, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "compose_custom_blend_mode") < 0)) __PYX_ERR(0, 1250, __pyx_L3_error) + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "compose_custom_blend_mode") < 0)) __PYX_ERR(0, 1256, __pyx_L3_error) } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; @@ -20813,7 +20822,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("compose_custom_blend_mode", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1250, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("compose_custom_blend_mode", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1256, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pygame._sdl2.video.Renderer.compose_custom_blend_mode", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); @@ -20846,79 +20855,79 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_34compose_custom_blend int __pyx_clineno = 0; __Pyx_RefNannySetupContext("compose_custom_blend_mode", 0); - /* "pygame/_sdl2/video.pyx":1263 + /* "pygame/_sdl2/video.pyx":1269 * """ * # https://wiki.libsdl.org/SDL_ComposeCustomBlendMode * cdef int res = SDL_ComposeCustomBlendMode(color_mode[0], # <<<<<<<<<<<<<< * color_mode[1], * color_mode[2], */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_color_mode, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1263, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_color_mode, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = ((SDL_BlendFactor)__Pyx_PyInt_As_SDL_BlendFactor(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1263, __pyx_L1_error) + __pyx_t_2 = ((SDL_BlendFactor)__Pyx_PyInt_As_SDL_BlendFactor(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1269, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":1264 + /* "pygame/_sdl2/video.pyx":1270 * # https://wiki.libsdl.org/SDL_ComposeCustomBlendMode * cdef int res = SDL_ComposeCustomBlendMode(color_mode[0], * color_mode[1], # <<<<<<<<<<<<<< * color_mode[2], * alpha_mode[0], */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_color_mode, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1264, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_color_mode, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((SDL_BlendFactor)__Pyx_PyInt_As_SDL_BlendFactor(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1264, __pyx_L1_error) + __pyx_t_3 = ((SDL_BlendFactor)__Pyx_PyInt_As_SDL_BlendFactor(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":1265 + /* "pygame/_sdl2/video.pyx":1271 * cdef int res = SDL_ComposeCustomBlendMode(color_mode[0], * color_mode[1], * color_mode[2], # <<<<<<<<<<<<<< * alpha_mode[0], * alpha_mode[1], */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_color_mode, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1265, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_color_mode, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = ((SDL_BlendOperation)__Pyx_PyInt_As_SDL_BlendOperation(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1265, __pyx_L1_error) + __pyx_t_4 = ((SDL_BlendOperation)__Pyx_PyInt_As_SDL_BlendOperation(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":1266 + /* "pygame/_sdl2/video.pyx":1272 * color_mode[1], * color_mode[2], * alpha_mode[0], # <<<<<<<<<<<<<< * alpha_mode[1], * alpha_mode[2]) */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_alpha_mode, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1266, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_alpha_mode, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = ((SDL_BlendFactor)__Pyx_PyInt_As_SDL_BlendFactor(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1266, __pyx_L1_error) + __pyx_t_5 = ((SDL_BlendFactor)__Pyx_PyInt_As_SDL_BlendFactor(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":1267 + /* "pygame/_sdl2/video.pyx":1273 * color_mode[2], * alpha_mode[0], * alpha_mode[1], # <<<<<<<<<<<<<< * alpha_mode[2]) * if res < 0: */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_alpha_mode, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1267, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_alpha_mode, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = ((SDL_BlendFactor)__Pyx_PyInt_As_SDL_BlendFactor(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1267, __pyx_L1_error) + __pyx_t_6 = ((SDL_BlendFactor)__Pyx_PyInt_As_SDL_BlendFactor(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":1268 + /* "pygame/_sdl2/video.pyx":1274 * alpha_mode[0], * alpha_mode[1], * alpha_mode[2]) # <<<<<<<<<<<<<< * if res < 0: * raise error() */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_alpha_mode, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1268, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_alpha_mode, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = ((SDL_BlendOperation)__Pyx_PyInt_As_SDL_BlendOperation(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1268, __pyx_L1_error) + __pyx_t_7 = ((SDL_BlendOperation)__Pyx_PyInt_As_SDL_BlendOperation(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1274, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pygame/_sdl2/video.pyx":1263 + /* "pygame/_sdl2/video.pyx":1269 * """ * # https://wiki.libsdl.org/SDL_ComposeCustomBlendMode * cdef int res = SDL_ComposeCustomBlendMode(color_mode[0], # <<<<<<<<<<<<<< @@ -20927,7 +20936,7 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_34compose_custom_blend */ __pyx_v_res = SDL_ComposeCustomBlendMode(__pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7); - /* "pygame/_sdl2/video.pyx":1269 + /* "pygame/_sdl2/video.pyx":1275 * alpha_mode[1], * alpha_mode[2]) * if res < 0: # <<<<<<<<<<<<<< @@ -20937,13 +20946,13 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_34compose_custom_blend __pyx_t_8 = (__pyx_v_res < 0); if (unlikely(__pyx_t_8)) { - /* "pygame/_sdl2/video.pyx":1270 + /* "pygame/_sdl2/video.pyx":1276 * alpha_mode[2]) * if res < 0: * raise error() # <<<<<<<<<<<<<< * return res */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1270, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_error); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; __pyx_t_11 = 0; @@ -20961,15 +20970,15 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_34compose_custom_blend PyObject *__pyx_callargs[1] = {__pyx_t_10, }; __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_11, 0+__pyx_t_11); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1270, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 1270, __pyx_L1_error) + __PYX_ERR(0, 1276, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1269 + /* "pygame/_sdl2/video.pyx":1275 * alpha_mode[1], * alpha_mode[2]) * if res < 0: # <<<<<<<<<<<<<< @@ -20978,19 +20987,19 @@ static PyObject *__pyx_pf_6pygame_5_sdl2_5video_8Renderer_34compose_custom_blend */ } - /* "pygame/_sdl2/video.pyx":1271 + /* "pygame/_sdl2/video.pyx":1277 * if res < 0: * raise error() * return res # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_res); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1271, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_res); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "pygame/_sdl2/video.pyx":1250 + /* "pygame/_sdl2/video.pyx":1256 * return surface * * @staticmethod # <<<<<<<<<<<<<< @@ -22245,12 +22254,12 @@ static int __Pyx_CreateStringTabAndInitStrings(void) { } /* #### Code section: cached_builtins ### */ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_n_s_staticmethod); if (!__pyx_builtin_staticmethod) __PYX_ERR(0, 272, __pyx_L1_error) - __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 129, __pyx_L1_error) - __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 130, __pyx_L1_error) - __pyx_builtin_reversed = __Pyx_GetBuiltinName(__pyx_n_s_reversed); if (!__pyx_builtin_reversed) __PYX_ERR(0, 130, __pyx_L1_error) - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 164, __pyx_L1_error) - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_n_s_staticmethod); if (!__pyx_builtin_staticmethod) __PYX_ERR(0, 273, __pyx_L1_error) + __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 130, __pyx_L1_error) + __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 131, __pyx_L1_error) + __pyx_builtin_reversed = __Pyx_GetBuiltinName(__pyx_n_s_reversed); if (!__pyx_builtin_reversed) __PYX_ERR(0, 131, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 165, __pyx_L1_error) + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 282, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; @@ -22261,606 +22270,606 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "pygame/_sdl2/video.pyx":73 + /* "pygame/_sdl2/video.pyx":74 * bint warn=False, * bint error=False, * buttons=('OK', ), # <<<<<<<<<<<<<< * return_button=0, * escape_button=0): */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_n_s_OK); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 73, __pyx_L1_error) + __pyx_tuple__2 = PyTuple_Pack(1, __pyx_n_s_OK); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); - /* "pygame/_sdl2/video.pyx":164 + /* "pygame/_sdl2/video.pyx":165 * Amask = 0xFF << 24 * else: * raise ValueError("no standard masks exist for given bitdepth with alpha") # <<<<<<<<<<<<<< * return SDL_MasksToPixelFormatEnum(depth, * Rmask, Gmask, Bmask, Amask) */ - __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_no_standard_masks_exist_for_give); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 164, __pyx_L1_error) + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_no_standard_masks_exist_for_give); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); - /* "pygame/_sdl2/video.pyx":229 + /* "pygame/_sdl2/video.pyx":230 * cdef int width, height * if len(size) != 2: * raise ValueError('size must have two elements') # <<<<<<<<<<<<<< * width, height = size[0], size[1] * if width <= 0 or height <= 0: */ - __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_size_must_have_two_elements); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_size_must_have_two_elements); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); - /* "pygame/_sdl2/video.pyx":232 + /* "pygame/_sdl2/video.pyx":233 * width, height = size[0], size[1] * if width <= 0 or height <= 0: * raise ValueError('size must contain two positive values') # <<<<<<<<<<<<<< * * cdef int access */ - __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_size_must_contain_two_positive_v); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 232, __pyx_L1_error) + __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_size_must_contain_two_positive_v); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); - /* "pygame/_sdl2/video.pyx":237 + /* "pygame/_sdl2/video.pyx":238 * if static: * if streaming or target: * raise ValueError('only one of static, streaming, or target can be true') # <<<<<<<<<<<<<< * access = _SDL_TEXTUREACCESS_STATIC * elif streaming: */ - __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_only_one_of_static_streaming_or); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 237, __pyx_L1_error) + __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_only_one_of_static_streaming_or); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); - /* "pygame/_sdl2/video.pyx":281 + /* "pygame/_sdl2/video.pyx":282 * # https://wiki.libsdl.org/SDL_CreateTextureFromSurface * if not pgSurface_Check(surface): * raise TypeError('2nd argument must be a surface') # <<<<<<<<<<<<<< * cdef Texture self = Texture.__new__(Texture) * self.renderer = renderer */ - __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_2nd_argument_must_be_a_surface); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_2nd_argument_must_be_a_surface); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); - /* "pygame/_sdl2/video.pyx":412 + /* "pygame/_sdl2/video.pyx":413 * csrcrect = pgRect_FromObject(srcrect, &src) * if not csrcrect: * raise TypeError("the argument is not a rectangle or None") # <<<<<<<<<<<<<< * * if dstrect is not None: */ - __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_the_argument_is_not_a_rectangle); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 412, __pyx_L1_error) + __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_the_argument_is_not_a_rectangle); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 413, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); - /* "pygame/_sdl2/video.pyx":424 + /* "pygame/_sdl2/video.pyx":425 * cdstrect = &dst * else: * raise TypeError('dstrect must be a position, rect, or None') # <<<<<<<<<<<<<< * * if origin: */ - __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_dstrect_must_be_a_position_rect); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 424, __pyx_L1_error) + __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_dstrect_must_be_a_position_rect); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); - /* "pygame/_sdl2/video.pyx":445 + /* "pygame/_sdl2/video.pyx":446 * * def draw_triangle(self, p1_xy, p2_xy, p3_xy, * p1_uv=(0.0, 0.0), p2_uv=(1.0, 1.0), p3_uv=(0.0, 1.0), # <<<<<<<<<<<<<< * p1_mod=(255, 255, 255, 255), p2_mod=(255, 255, 255, 255), p3_mod=(255, 255, 255, 255)): * """Copy a triangle portion of the texture to the rendering target using the given coordinates */ - __pyx_tuple__10 = PyTuple_Pack(2, __pyx_float_0_0, __pyx_float_0_0); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 445, __pyx_L1_error) + __pyx_tuple__10 = PyTuple_Pack(2, __pyx_float_0_0, __pyx_float_0_0); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); - __pyx_tuple__11 = PyTuple_Pack(2, __pyx_float_1_0, __pyx_float_1_0); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 445, __pyx_L1_error) + __pyx_tuple__11 = PyTuple_Pack(2, __pyx_float_1_0, __pyx_float_1_0); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); - __pyx_tuple__12 = PyTuple_Pack(2, __pyx_float_0_0, __pyx_float_1_0); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 445, __pyx_L1_error) + __pyx_tuple__12 = PyTuple_Pack(2, __pyx_float_0_0, __pyx_float_1_0); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); - /* "pygame/_sdl2/video.pyx":446 + /* "pygame/_sdl2/video.pyx":447 * def draw_triangle(self, p1_xy, p2_xy, p3_xy, * p1_uv=(0.0, 0.0), p2_uv=(1.0, 1.0), p3_uv=(0.0, 1.0), * p1_mod=(255, 255, 255, 255), p2_mod=(255, 255, 255, 255), p3_mod=(255, 255, 255, 255)): # <<<<<<<<<<<<<< * """Copy a triangle portion of the texture to the rendering target using the given coordinates * */ - __pyx_tuple__13 = PyTuple_Pack(4, __pyx_int_255, __pyx_int_255, __pyx_int_255, __pyx_int_255); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 446, __pyx_L1_error) + __pyx_tuple__13 = PyTuple_Pack(4, __pyx_int_255, __pyx_int_255, __pyx_int_255, __pyx_int_255); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); - /* "pygame/_sdl2/video.pyx":490 + /* "pygame/_sdl2/video.pyx":491 * * def draw_quad(self, p1_xy, p2_xy, p3_xy, p4_xy, * p1_uv=(0.0, 0.0), p2_uv=(1.0, 0.0), # <<<<<<<<<<<<<< * p3_uv=(1.0, 1.0), p4_uv=(0.0, 1.0), * p1_mod=(255, 255, 255, 255), p2_mod=(255, 255, 255, 255), */ - __pyx_tuple__14 = PyTuple_Pack(2, __pyx_float_1_0, __pyx_float_0_0); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 490, __pyx_L1_error) + __pyx_tuple__14 = PyTuple_Pack(2, __pyx_float_1_0, __pyx_float_0_0); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); - /* "pygame/_sdl2/video.pyx":562 + /* "pygame/_sdl2/video.pyx":563 * * if not pgSurface_Check(surface): * raise TypeError("update source should be a Surface.") # <<<<<<<<<<<<<< * * cdef SDL_Rect rect */ - __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_update_source_should_be_a_Surfac); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 562, __pyx_L1_error) + __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_update_source_should_be_a_Surfac); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); - /* "pygame/_sdl2/video.pyx":571 + /* "pygame/_sdl2/video.pyx":572 * * if rectptr == NULL and area is not None: * raise TypeError('area must be a rectangle or None') # <<<<<<<<<<<<<< * * cdef int dst_width, dst_height */ - __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_area_must_be_a_rectangle_or_None); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 571, __pyx_L1_error) + __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_area_must_be_a_rectangle_or_None); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); - /* "pygame/_sdl2/video.pyx":665 + /* "pygame/_sdl2/video.pyx":666 * rectptr = pgRect_FromObject(srcrect, &temp) * if rectptr == NULL: * raise TypeError('srcrect must be None or a rectangle') # <<<<<<<<<<<<<< * temp.x = rectptr.x * temp.y = rectptr.y */ - __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_srcrect_must_be_None_or_a_rectan); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 665, __pyx_L1_error) + __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_srcrect_must_be_None_or_a_rectan); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 666, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); - /* "pygame/_sdl2/video.pyx":675 + /* "pygame/_sdl2/video.pyx":676 * temp.x + temp.w > self.srcrect.w or \ * temp.y + temp.h > self.srcrect.h: * raise ValueError('rect values are out of range') # <<<<<<<<<<<<<< * temp.x += self.srcrect.x * temp.y += self.srcrect.y */ - __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_rect_values_are_out_of_range); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 675, __pyx_L1_error) + __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_rect_values_are_out_of_range); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 676, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); - /* "pygame/_sdl2/video.pyx":691 + /* "pygame/_sdl2/video.pyx":692 * pg_RGBAFromObjEx(new_color, rgba, PG_COLOR_HANDLE_ALL) * * self._color[:3] = rgba[:3] # <<<<<<<<<<<<<< * * @property */ - __pyx_slice__19 = PySlice_New(Py_None, __pyx_int_3, Py_None); if (unlikely(!__pyx_slice__19)) __PYX_ERR(0, 691, __pyx_L1_error) + __pyx_slice__19 = PySlice_New(Py_None, __pyx_int_3, Py_None); if (unlikely(!__pyx_slice__19)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__19); __Pyx_GIVEREF(__pyx_slice__19); - /* "pygame/_sdl2/video.pyx":933 + /* "pygame/_sdl2/video.pyx":934 * cdef SDL_Rect *rectptr = pgRect_FromObject(area, &tmprect) * if rectptr == NULL: * raise TypeError('expected a rectangle') # <<<<<<<<<<<<<< * * if SDL_RenderSetViewport(self._renderer, rectptr) < 0: */ - __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_expected_a_rectangle); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 933, __pyx_L1_error) + __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_expected_a_rectangle); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 934, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20); - /* "pygame/_sdl2/video.pyx":998 + /* "pygame/_sdl2/video.pyx":999 * raise error() * else: * raise TypeError('target must be a Texture or None') # <<<<<<<<<<<<<< * * cpdef object blit(self, object source, Rect dest=None, Rect area=None, int special_flags=0): */ - __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_target_must_be_a_Texture_or_None); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 998, __pyx_L1_error) + __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_target_must_be_a_Texture_or_None); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); - /* "pygame/_sdl2/video.pyx":1018 + /* "pygame/_sdl2/video.pyx":1019 * (source).draw(area, dest) * elif not hasattr(source, 'draw'): * raise TypeError('source must be drawable') # <<<<<<<<<<<<<< * else: * source.draw(area, dest) */ - __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_source_must_be_drawable); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 1018, __pyx_L1_error) + __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_source_must_be_drawable); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 1019, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22); - /* "pygame/_sdl2/video.pyx":1205 + /* "pygame/_sdl2/video.pyx":1206 * rectptr = pgRect_FromObject(area, &rarea) * if rectptr == NULL: * raise TypeError('area must be None or a rect') # <<<<<<<<<<<<<< * * # clip area */ - __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_area_must_be_None_or_a_rect); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 1205, __pyx_L1_error) + __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_area_must_be_None_or_a_rect); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 1206, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); - /* "pygame/_sdl2/video.pyx":1233 + /* "pygame/_sdl2/video.pyx":1234 * format) * if surf == NULL: * raise MemoryError("not enough memory for the surface") # <<<<<<<<<<<<<< * * surface = pgSurface_New2(surf, 1) */ - __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_not_enough_memory_for_the_surfac); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 1233, __pyx_L1_error) + __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_not_enough_memory_for_the_surfac); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 1234, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24); - /* "pygame/_sdl2/video.pyx":1239 + /* "pygame/_sdl2/video.pyx":1245 * surf = pgSurface_AsSurface(surface) * if surf.w < rarea.w or surf.h < rarea.h: * raise ValueError("the surface is too small") # <<<<<<<<<<<<<< * format = surf.format.format * else: */ - __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_the_surface_is_too_small); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 1239, __pyx_L1_error) + __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_the_surface_is_too_small); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 1245, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); - /* "pygame/_sdl2/video.pyx":1242 + /* "pygame/_sdl2/video.pyx":1248 * format = surf.format.format * else: * raise TypeError("'surface' must be a surface or None") # <<<<<<<<<<<<<< * * if SDL_RenderReadPixels(self._renderer, */ - __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_surface_must_be_a_surface_or_No); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 1242, __pyx_L1_error) + __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_surface_must_be_a_surface_or_No); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26); - /* "pygame/_sdl2/video.pyx":26 + /* "pygame/_sdl2/video.pyx":27 * * class RendererDriverInfo: * def __repr__(self): # <<<<<<<<<<<<<< * return "<%s(name: %s, flags: 0x%02x, num_texture_formats: %d, max_texture_width: %d, max_texture_height: %d)>" % ( * self.__class__.__name__, */ - __pyx_tuple__28 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 26, __pyx_L1_error) + __pyx_tuple__28 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28); - __pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_repr, 26, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__29)) __PYX_ERR(0, 26, __pyx_L1_error) + __pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_repr, 27, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__29)) __PYX_ERR(0, 27, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":36 + /* "pygame/_sdl2/video.pyx":37 * ) * * def get_drivers(): # <<<<<<<<<<<<<< * """Yield info about the rendering drivers available for Renderer objects * """ */ - __pyx_tuple__30 = PyTuple_Pack(4, __pyx_n_s_num, __pyx_n_s_info, __pyx_n_s_ind, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 36, __pyx_L1_error) + __pyx_tuple__30 = PyTuple_Pack(4, __pyx_n_s_num, __pyx_n_s_info, __pyx_n_s_ind, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30); - __pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__30, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_get_drivers, 36, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 36, __pyx_L1_error) + __pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_GENERATOR, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__30, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_get_drivers, 37, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 37, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":53 + /* "pygame/_sdl2/video.pyx":54 * * * def get_grabbed_window(): # <<<<<<<<<<<<<< * """Get the window with input grab enabled * */ - __pyx_tuple__31 = PyTuple_Pack(2, __pyx_n_s_win, __pyx_n_s_ptr); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 53, __pyx_L1_error) + __pyx_tuple__31 = PyTuple_Pack(2, __pyx_n_s_win, __pyx_n_s_ptr); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31); - __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_get_grabbed_window, 53, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 53, __pyx_L1_error) + __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_get_grabbed_window, 54, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 54, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":68 + /* "pygame/_sdl2/video.pyx":69 * return None * * def messagebox(title, message, # <<<<<<<<<<<<<< * Window window=None, * bint info=False, */ - __pyx_tuple__33 = PyTuple_Pack(17, __pyx_n_s_title, __pyx_n_s_message, __pyx_n_s_window, __pyx_n_s_info, __pyx_n_s_warn, __pyx_n_s_error, __pyx_n_s_buttons, __pyx_n_s_return_button, __pyx_n_s_escape_button, __pyx_n_s_c_buttons, __pyx_n_s_data, __pyx_n_s_button, __pyx_n_s_buttons_utf8, __pyx_n_s_i, __pyx_n_s_but, __pyx_n_s_buttonid, __pyx_n_s_s); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_tuple__33 = PyTuple_Pack(17, __pyx_n_s_title, __pyx_n_s_message, __pyx_n_s_window, __pyx_n_s_info, __pyx_n_s_warn, __pyx_n_s_error, __pyx_n_s_buttons, __pyx_n_s_return_button, __pyx_n_s_escape_button, __pyx_n_s_c_buttons, __pyx_n_s_data, __pyx_n_s_button, __pyx_n_s_buttons_utf8, __pyx_n_s_i, __pyx_n_s_but, __pyx_n_s_buttonid, __pyx_n_s_s); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33); - __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(9, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_messagebox, 68, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(9, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_messagebox, 69, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 69, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":272 + /* "pygame/_sdl2/video.pyx":273 * self.width, self.height = width, height * * @staticmethod # <<<<<<<<<<<<<< * def from_surface(Renderer renderer, surface): * """Create a texture from an existing surface */ - __pyx_tuple__35 = PyTuple_Pack(5, __pyx_n_s_renderer, __pyx_n_s_surface, __pyx_n_s_self, __pyx_n_s_renderer_2, __pyx_n_s_surf_ptr); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 272, __pyx_L1_error) + __pyx_tuple__35 = PyTuple_Pack(5, __pyx_n_s_renderer, __pyx_n_s_surface, __pyx_n_s_self, __pyx_n_s_renderer_2, __pyx_n_s_surf_ptr); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35); - __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_from_surface, 272, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 272, __pyx_L1_error) + __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_from_surface, 273, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 273, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":371 + /* "pygame/_sdl2/video.pyx":372 * raise error() * * def get_rect(self, **kwargs): # <<<<<<<<<<<<<< * """Get the rectangular area of the texture * */ - __pyx_tuple__37 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_kwargs, __pyx_n_s_rect, __pyx_n_s_key); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 371, __pyx_L1_error) + __pyx_tuple__37 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_kwargs, __pyx_n_s_rect, __pyx_n_s_key); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37); - __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_get_rect, 371, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 371, __pyx_L1_error) + __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_get_rect, 372, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 372, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":385 + /* "pygame/_sdl2/video.pyx":386 * return rect * * cpdef void draw(self, srcrect=None, dstrect=None, float angle=0, origin=None, # <<<<<<<<<<<<<< * bint flip_x=False, bint flip_y=False): * """Copy a portion of the texture to the rendering target */ - __pyx_tuple__39 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_srcrect, __pyx_n_s_dstrect, __pyx_n_s_angle, __pyx_n_s_origin, __pyx_n_s_flip_x, __pyx_n_s_flip_y); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_tuple__39 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_srcrect, __pyx_n_s_dstrect, __pyx_n_s_angle, __pyx_n_s_origin, __pyx_n_s_flip_x, __pyx_n_s_flip_y); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39); - __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw, 385, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 385, __pyx_L1_error) - __pyx_tuple__41 = PyTuple_Pack(6, Py_None, Py_None, __pyx_float_0_0, Py_None, Py_False, Py_False); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw, 386, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 386, __pyx_L1_error) + __pyx_tuple__41 = PyTuple_Pack(6, Py_None, Py_None, __pyx_float_0_0, Py_None, Py_False, Py_False); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__41); __Pyx_GIVEREF(__pyx_tuple__41); - /* "pygame/_sdl2/video.pyx":444 + /* "pygame/_sdl2/video.pyx":445 * raise error() * * def draw_triangle(self, p1_xy, p2_xy, p3_xy, # <<<<<<<<<<<<<< * p1_uv=(0.0, 0.0), p2_uv=(1.0, 1.0), p3_uv=(0.0, 1.0), * p1_mod=(255, 255, 255, 255), p2_mod=(255, 255, 255, 255), p3_mod=(255, 255, 255, 255)): */ - __pyx_tuple__42 = PyTuple_Pack(25, __pyx_n_s_self, __pyx_n_s_p1_xy, __pyx_n_s_p2_xy, __pyx_n_s_p3_xy, __pyx_n_s_p1_uv, __pyx_n_s_p2_uv, __pyx_n_s_p3_uv, __pyx_n_s_p1_mod, __pyx_n_s_p2_mod, __pyx_n_s_p3_mod, __pyx_n_s_r_mod, __pyx_n_s_g_mod, __pyx_n_s_b_mod, __pyx_n_s_a_mod, __pyx_n_s_r_mod_2, __pyx_n_s_g_mod_2, __pyx_n_s_b_mod_2, __pyx_n_s_a_mod_2, __pyx_n_s_vertices, __pyx_n_s_i, __pyx_n_s_vert, __pyx_n_s_xy, __pyx_n_s_mod, __pyx_n_s_uv, __pyx_n_s_res); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 444, __pyx_L1_error) + __pyx_tuple__42 = PyTuple_Pack(25, __pyx_n_s_self, __pyx_n_s_p1_xy, __pyx_n_s_p2_xy, __pyx_n_s_p3_xy, __pyx_n_s_p1_uv, __pyx_n_s_p2_uv, __pyx_n_s_p3_uv, __pyx_n_s_p1_mod, __pyx_n_s_p2_mod, __pyx_n_s_p3_mod, __pyx_n_s_r_mod, __pyx_n_s_g_mod, __pyx_n_s_b_mod, __pyx_n_s_a_mod, __pyx_n_s_r_mod_2, __pyx_n_s_g_mod_2, __pyx_n_s_b_mod_2, __pyx_n_s_a_mod_2, __pyx_n_s_vertices, __pyx_n_s_i, __pyx_n_s_vert, __pyx_n_s_xy, __pyx_n_s_mod, __pyx_n_s_uv, __pyx_n_s_res); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 445, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__42); __Pyx_GIVEREF(__pyx_tuple__42); - __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 25, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_triangle, 444, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(0, 444, __pyx_L1_error) - __pyx_tuple__44 = PyTuple_Pack(6, __pyx_tuple__10, __pyx_tuple__11, __pyx_tuple__12, __pyx_tuple__13, __pyx_tuple__13, __pyx_tuple__13); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(0, 444, __pyx_L1_error) + __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 25, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_triangle, 445, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(0, 445, __pyx_L1_error) + __pyx_tuple__44 = PyTuple_Pack(6, __pyx_tuple__10, __pyx_tuple__11, __pyx_tuple__12, __pyx_tuple__13, __pyx_tuple__13, __pyx_tuple__13); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(0, 445, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__44); __Pyx_GIVEREF(__pyx_tuple__44); - /* "pygame/_sdl2/video.pyx":489 + /* "pygame/_sdl2/video.pyx":490 * raise error() * * def draw_quad(self, p1_xy, p2_xy, p3_xy, p4_xy, # <<<<<<<<<<<<<< * p1_uv=(0.0, 0.0), p2_uv=(1.0, 0.0), * p3_uv=(1.0, 1.0), p4_uv=(0.0, 1.0), */ - __pyx_tuple__45 = PyTuple_Pack(28, __pyx_n_s_self, __pyx_n_s_p1_xy, __pyx_n_s_p2_xy, __pyx_n_s_p3_xy, __pyx_n_s_p4_xy, __pyx_n_s_p1_uv, __pyx_n_s_p2_uv, __pyx_n_s_p3_uv, __pyx_n_s_p4_uv, __pyx_n_s_p1_mod, __pyx_n_s_p2_mod, __pyx_n_s_p3_mod, __pyx_n_s_p4_mod, __pyx_n_s_r_mod, __pyx_n_s_g_mod, __pyx_n_s_b_mod, __pyx_n_s_a_mod, __pyx_n_s_r_mod_2, __pyx_n_s_g_mod_2, __pyx_n_s_b_mod_2, __pyx_n_s_a_mod_2, __pyx_n_s_vertices, __pyx_n_s_i, __pyx_n_s_vert, __pyx_n_s_xy, __pyx_n_s_mod, __pyx_n_s_uv, __pyx_n_s_res); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 489, __pyx_L1_error) + __pyx_tuple__45 = PyTuple_Pack(28, __pyx_n_s_self, __pyx_n_s_p1_xy, __pyx_n_s_p2_xy, __pyx_n_s_p3_xy, __pyx_n_s_p4_xy, __pyx_n_s_p1_uv, __pyx_n_s_p2_uv, __pyx_n_s_p3_uv, __pyx_n_s_p4_uv, __pyx_n_s_p1_mod, __pyx_n_s_p2_mod, __pyx_n_s_p3_mod, __pyx_n_s_p4_mod, __pyx_n_s_r_mod, __pyx_n_s_g_mod, __pyx_n_s_b_mod, __pyx_n_s_a_mod, __pyx_n_s_r_mod_2, __pyx_n_s_g_mod_2, __pyx_n_s_b_mod_2, __pyx_n_s_a_mod_2, __pyx_n_s_vertices, __pyx_n_s_i, __pyx_n_s_vert, __pyx_n_s_xy, __pyx_n_s_mod, __pyx_n_s_uv, __pyx_n_s_res); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 490, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__45); __Pyx_GIVEREF(__pyx_tuple__45); - __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(13, 0, 0, 28, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_quad, 489, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 489, __pyx_L1_error) - __pyx_tuple__47 = PyTuple_Pack(8, __pyx_tuple__10, __pyx_tuple__14, __pyx_tuple__11, __pyx_tuple__12, __pyx_tuple__13, __pyx_tuple__13, __pyx_tuple__13, __pyx_tuple__13); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 489, __pyx_L1_error) + __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(13, 0, 0, 28, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_quad, 490, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 490, __pyx_L1_error) + __pyx_tuple__47 = PyTuple_Pack(8, __pyx_tuple__10, __pyx_tuple__14, __pyx_tuple__11, __pyx_tuple__12, __pyx_tuple__13, __pyx_tuple__13, __pyx_tuple__13, __pyx_tuple__13); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 490, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__47); __Pyx_GIVEREF(__pyx_tuple__47); - /* "pygame/_sdl2/video.pyx":542 + /* "pygame/_sdl2/video.pyx":543 * raise error() * * def update(self, surface, area=None): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_UpdateTexture * # Should it accept a raw pixel data array too? */ - __pyx_tuple__48 = PyTuple_Pack(13, __pyx_n_s_self, __pyx_n_s_surface, __pyx_n_s_area, __pyx_n_s_rect, __pyx_n_s_rectptr, __pyx_n_s_surf, __pyx_n_s_dst_width, __pyx_n_s_dst_height, __pyx_n_s_converted_surf, __pyx_n_s_pixel_format, __pyx_n_s_blend, __pyx_n_s_format, __pyx_n_s_res); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 542, __pyx_L1_error) + __pyx_tuple__48 = PyTuple_Pack(13, __pyx_n_s_self, __pyx_n_s_surface, __pyx_n_s_area, __pyx_n_s_rect, __pyx_n_s_rectptr, __pyx_n_s_surf, __pyx_n_s_dst_width, __pyx_n_s_dst_height, __pyx_n_s_converted_surf, __pyx_n_s_pixel_format, __pyx_n_s_blend, __pyx_n_s_format, __pyx_n_s_res); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 543, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__48); __Pyx_GIVEREF(__pyx_tuple__48); - __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_update, 542, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(0, 542, __pyx_L1_error) - __pyx_tuple__50 = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(0, 542, __pyx_L1_error) + __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_update, 543, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(0, 543, __pyx_L1_error) + __pyx_tuple__50 = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(0, 543, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__50); __Pyx_GIVEREF(__pyx_tuple__50); - /* "pygame/_sdl2/video.pyx":716 + /* "pygame/_sdl2/video.pyx":717 * self._originptr = NULL * * def get_rect(self): # <<<<<<<<<<<<<< * """Get the rectangular area of the Image * */ - __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_get_rect, 716, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(0, 716, __pyx_L1_error) + __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_get_rect, 717, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(0, 717, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":726 + /* "pygame/_sdl2/video.pyx":727 * return pgRect_New(&self.srcrect.r) * * cpdef void draw(self, srcrect=None, dstrect=None): # <<<<<<<<<<<<<< * """Copy a portion of the Image to the rendering target * */ - __pyx_tuple__52 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_srcrect, __pyx_n_s_dstrect); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(0, 726, __pyx_L1_error) + __pyx_tuple__52 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_srcrect, __pyx_n_s_dstrect); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__52); __Pyx_GIVEREF(__pyx_tuple__52); - __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw, 726, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 726, __pyx_L1_error) - __pyx_tuple__54 = PyTuple_Pack(2, Py_None, Py_None); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 726, __pyx_L1_error) + __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw, 727, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 727, __pyx_L1_error) + __pyx_tuple__54 = PyTuple_Pack(2, Py_None, Py_None); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__54); __Pyx_GIVEREF(__pyx_tuple__54); - /* "pygame/_sdl2/video.pyx":751 + /* "pygame/_sdl2/video.pyx":752 * cdef class Renderer: * * @classmethod # <<<<<<<<<<<<<< * def from_window(cls, Window window): * cdef Renderer self = cls.__new__(cls) */ - __pyx_tuple__55 = PyTuple_Pack(3, __pyx_n_s_cls, __pyx_n_s_window, __pyx_n_s_self); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 751, __pyx_L1_error) + __pyx_tuple__55 = PyTuple_Pack(3, __pyx_n_s_cls, __pyx_n_s_window, __pyx_n_s_self); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__55); __Pyx_GIVEREF(__pyx_tuple__55); - __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_from_window, 751, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 751, __pyx_L1_error) + __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_from_window, 752, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 752, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":892 + /* "pygame/_sdl2/video.pyx":893 * raise error() * * def clear(self): # <<<<<<<<<<<<<< * """Clear the current rendering target with the drawing color * """ */ - __pyx_tuple__57 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_res); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 892, __pyx_L1_error) + __pyx_tuple__57 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_res); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 893, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__57); __Pyx_GIVEREF(__pyx_tuple__57); - __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_clear, 892, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 892, __pyx_L1_error) + __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_clear, 893, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 893, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":900 + /* "pygame/_sdl2/video.pyx":901 * raise error() * * def present(self): # <<<<<<<<<<<<<< * """Update the screen with any rendering performed since the previous call * */ - __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_present, 900, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 900, __pyx_L1_error) + __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_present, 901, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 901, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":909 + /* "pygame/_sdl2/video.pyx":910 * SDL_RenderPresent(self._renderer) * * cpdef get_viewport(self): # <<<<<<<<<<<<<< * """Get the drawing area on the rendering target * """ */ - __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_get_viewport, 909, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(0, 909, __pyx_L1_error) + __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_get_viewport, 910, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(0, 910, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":917 + /* "pygame/_sdl2/video.pyx":918 * return pgRect_New(&rect) * * def set_viewport(self, area): # <<<<<<<<<<<<<< * """Set the drawing area on the rendering target * */ - __pyx_tuple__61 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_area, __pyx_n_s_tmprect, __pyx_n_s_rectptr); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(0, 917, __pyx_L1_error) + __pyx_tuple__61 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_area, __pyx_n_s_tmprect, __pyx_n_s_rectptr); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__61); __Pyx_GIVEREF(__pyx_tuple__61); - __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_set_viewport, 917, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 917, __pyx_L1_error) + __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_set_viewport, 918, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 918, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1000 + /* "pygame/_sdl2/video.pyx":1001 * raise TypeError('target must be a Texture or None') * * cpdef object blit(self, object source, Rect dest=None, Rect area=None, int special_flags=0): # <<<<<<<<<<<<<< * """Draw textures using a Surface-like API * */ - __pyx_tuple__63 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_source, __pyx_n_s_dest, __pyx_n_s_area, __pyx_n_s_special_flags); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(0, 1000, __pyx_L1_error) + __pyx_tuple__63 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_source, __pyx_n_s_dest, __pyx_n_s_area, __pyx_n_s_special_flags); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(0, 1001, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__63); __Pyx_GIVEREF(__pyx_tuple__63); - __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__63, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_blit, 1000, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(0, 1000, __pyx_L1_error) - __pyx_tuple__65 = PyTuple_Pack(3, Py_None, Py_None, __pyx_int_0); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(0, 1000, __pyx_L1_error) + __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__63, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_blit, 1001, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(0, 1001, __pyx_L1_error) + __pyx_tuple__65 = PyTuple_Pack(3, Py_None, Py_None, __pyx_int_0); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(0, 1001, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__65); __Pyx_GIVEREF(__pyx_tuple__65); - /* "pygame/_sdl2/video.pyx":1026 + /* "pygame/_sdl2/video.pyx":1027 * return dest * * def draw_line(self, p1, p2): # <<<<<<<<<<<<<< * """Draw a line * */ - __pyx_tuple__66 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_p1, __pyx_n_s_p2, __pyx_n_s_res); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(0, 1026, __pyx_L1_error) + __pyx_tuple__66 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_p1, __pyx_n_s_p2, __pyx_n_s_res); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(0, 1027, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__66); __Pyx_GIVEREF(__pyx_tuple__66); - __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_line, 1026, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 1026, __pyx_L1_error) + __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_line, 1027, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 1027, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1039 + /* "pygame/_sdl2/video.pyx":1040 * raise error() * * def draw_point(self, point): # <<<<<<<<<<<<<< * """Draw a point * */ - __pyx_tuple__68 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_point, __pyx_n_s_res); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(0, 1039, __pyx_L1_error) + __pyx_tuple__68 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_point, __pyx_n_s_res); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(0, 1040, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__68); __Pyx_GIVEREF(__pyx_tuple__68); - __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_point, 1039, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(0, 1039, __pyx_L1_error) + __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_point, 1040, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(0, 1040, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1051 + /* "pygame/_sdl2/video.pyx":1052 * raise error() * * def draw_rect(self, rect): # <<<<<<<<<<<<<< * """Draw a rectangle outline * */ - __pyx_tuple__70 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_rect, __pyx_n_s_frect, __pyx_n_s_frectptr, __pyx_n_s_res); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(0, 1051, __pyx_L1_error) + __pyx_tuple__70 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_rect, __pyx_n_s_frect, __pyx_n_s_frectptr, __pyx_n_s_res); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(0, 1052, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__70); __Pyx_GIVEREF(__pyx_tuple__70); - __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_rect, 1051, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(0, 1051, __pyx_L1_error) + __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_rect, 1052, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(0, 1052, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1070 + /* "pygame/_sdl2/video.pyx":1071 * raise error() * * def fill_rect(self, rect): # <<<<<<<<<<<<<< * """Draw a filled rectangle * */ - __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_fill_rect, 1070, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 1070, __pyx_L1_error) + __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__70, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_fill_rect, 1071, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 1071, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1090 + /* "pygame/_sdl2/video.pyx":1091 * raise error() * * def draw_triangle(self, p1, p2, p3): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_RenderDrawLinesF * cdef SDL_FPoint fpoints[4] */ - __pyx_tuple__73 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_p1, __pyx_n_s_p2, __pyx_n_s_p3, __pyx_n_s_fpoints, __pyx_n_s_i, __pyx_n_s_pos, __pyx_n_s_res); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 1090, __pyx_L1_error) + __pyx_tuple__73 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_p1, __pyx_n_s_p2, __pyx_n_s_p3, __pyx_n_s_fpoints, __pyx_n_s_i, __pyx_n_s_pos, __pyx_n_s_res); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 1091, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__73); __Pyx_GIVEREF(__pyx_tuple__73); - __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_triangle, 1090, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 1090, __pyx_L1_error) + __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_triangle, 1091, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 1091, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1103 + /* "pygame/_sdl2/video.pyx":1104 * raise error() * * def fill_triangle(self, p1, p2, p3): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_RenderGeometry * if not SDL_VERSION_ATLEAST(2, 0, 18): */ - __pyx_tuple__75 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_p1, __pyx_n_s_p2, __pyx_n_s_p3, __pyx_n_s_rgba, __pyx_n_s_res, __pyx_n_s_vertices, __pyx_n_s_i, __pyx_n_s_pos); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 1103, __pyx_L1_error) + __pyx_tuple__75 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_p1, __pyx_n_s_p2, __pyx_n_s_p3, __pyx_n_s_rgba, __pyx_n_s_res, __pyx_n_s_vertices, __pyx_n_s_i, __pyx_n_s_pos); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 1104, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__75); __Pyx_GIVEREF(__pyx_tuple__75); - __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_fill_triangle, 1103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 1103, __pyx_L1_error) + __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_fill_triangle, 1104, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 1104, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1132 + /* "pygame/_sdl2/video.pyx":1133 * raise error() * * def draw_quad(self, p1, p2, p3, p4): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_RenderDrawLinesF * cdef SDL_FPoint fpoints[5] */ - __pyx_tuple__77 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_p1, __pyx_n_s_p2, __pyx_n_s_p3, __pyx_n_s_p4, __pyx_n_s_fpoints, __pyx_n_s_i, __pyx_n_s_pos, __pyx_n_s_res); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 1132, __pyx_L1_error) + __pyx_tuple__77 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_p1, __pyx_n_s_p2, __pyx_n_s_p3, __pyx_n_s_p4, __pyx_n_s_fpoints, __pyx_n_s_i, __pyx_n_s_pos, __pyx_n_s_res); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__77); __Pyx_GIVEREF(__pyx_tuple__77); - __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_quad, 1132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 1132, __pyx_L1_error) + __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_draw_quad, 1133, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 1133, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1144 + /* "pygame/_sdl2/video.pyx":1145 * raise error() * * def fill_quad(self, p1, p2, p3, p4): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_RenderGeometry * if not SDL_VERSION_ATLEAST(2, 0, 18): */ - __pyx_tuple__79 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_p1, __pyx_n_s_p2, __pyx_n_s_p3, __pyx_n_s_p4, __pyx_n_s_rgba, __pyx_n_s_res, __pyx_n_s_vertices, __pyx_n_s_i, __pyx_n_s_pos); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(0, 1144, __pyx_L1_error) + __pyx_tuple__79 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_p1, __pyx_n_s_p2, __pyx_n_s_p3, __pyx_n_s_p4, __pyx_n_s_rgba, __pyx_n_s_res, __pyx_n_s_vertices, __pyx_n_s_i, __pyx_n_s_pos); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(0, 1145, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__79); __Pyx_GIVEREF(__pyx_tuple__79); - __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_fill_quad, 1144, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(0, 1144, __pyx_L1_error) + __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_fill_quad, 1145, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(0, 1145, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1173 + /* "pygame/_sdl2/video.pyx":1174 * raise error() * * def to_surface(self, surface=None, area=None): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_RenderReadPixels * """Read pixels from current rendering target and create a Surface (slow operation, use sparingly) */ - __pyx_tuple__81 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_surface, __pyx_n_s_area, __pyx_n_s_format_2, __pyx_n_s_rarea, __pyx_n_s_tempviewport, __pyx_n_s_areaparam, __pyx_n_s_surf, __pyx_n_s_rectptr); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(0, 1173, __pyx_L1_error) + __pyx_tuple__81 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_surface, __pyx_n_s_area, __pyx_n_s_format_2, __pyx_n_s_rarea, __pyx_n_s_tempviewport, __pyx_n_s_areaparam, __pyx_n_s_surf, __pyx_n_s_rectptr); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__81); __Pyx_GIVEREF(__pyx_tuple__81); - __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_to_surface, 1173, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(0, 1173, __pyx_L1_error) + __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_to_surface, 1174, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(0, 1174, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":1250 + /* "pygame/_sdl2/video.pyx":1256 * return surface * * @staticmethod # <<<<<<<<<<<<<< * def compose_custom_blend_mode(color_mode, alpha_mode): * """Compose a custom blend mode */ - __pyx_tuple__83 = PyTuple_Pack(3, __pyx_n_s_color_mode, __pyx_n_s_alpha_mode, __pyx_n_s_res); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(0, 1250, __pyx_L1_error) + __pyx_tuple__83 = PyTuple_Pack(3, __pyx_n_s_color_mode, __pyx_n_s_alpha_mode, __pyx_n_s_res); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(0, 1256, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__83); __Pyx_GIVEREF(__pyx_tuple__83); - __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_compose_custom_blend_mode, 1250, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(0, 1250, __pyx_L1_error) + __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_c_cython_pygame__sdl2_video, __pyx_n_s_compose_custom_blend_mode, 1256, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(0, 1256, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -22944,15 +22953,15 @@ static int __Pyx_modinit_type_init_code(void) { __pyx_vtable_6pygame_5_sdl2_5video_Renderer.get_viewport = (PyObject *(*)(struct __pyx_obj_6pygame_5_sdl2_5video_Renderer *, int __pyx_skip_dispatch))__pyx_f_6pygame_5_sdl2_5video_8Renderer_get_viewport; __pyx_vtable_6pygame_5_sdl2_5video_Renderer.blit = (PyObject *(*)(struct __pyx_obj_6pygame_5_sdl2_5video_Renderer *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_6pygame_5_sdl2_5video_8Renderer_blit *__pyx_optional_args))__pyx_f_6pygame_5_sdl2_5video_8Renderer_blit; #if CYTHON_USE_TYPE_SPECS - __pyx_ptype_6pygame_5_sdl2_5video_Renderer = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6pygame_5_sdl2_5video_Renderer_spec, NULL); if (unlikely(!__pyx_ptype_6pygame_5_sdl2_5video_Renderer)) __PYX_ERR(0, 749, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6pygame_5_sdl2_5video_Renderer_spec, __pyx_ptype_6pygame_5_sdl2_5video_Renderer) < 0) __PYX_ERR(0, 749, __pyx_L1_error) + __pyx_ptype_6pygame_5_sdl2_5video_Renderer = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6pygame_5_sdl2_5video_Renderer_spec, NULL); if (unlikely(!__pyx_ptype_6pygame_5_sdl2_5video_Renderer)) __PYX_ERR(0, 750, __pyx_L1_error) + if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6pygame_5_sdl2_5video_Renderer_spec, __pyx_ptype_6pygame_5_sdl2_5video_Renderer) < 0) __PYX_ERR(0, 750, __pyx_L1_error) #else __pyx_ptype_6pygame_5_sdl2_5video_Renderer = &__pyx_type_6pygame_5_sdl2_5video_Renderer; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_6pygame_5_sdl2_5video_Renderer) < 0) __PYX_ERR(0, 749, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_ptype_6pygame_5_sdl2_5video_Renderer) < 0) __PYX_ERR(0, 750, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_print = 0; @@ -22964,7 +22973,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_UPDATE_DESCRIPTOR_DOC { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(0, 749, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(0, 750, __pyx_L1_error) if (__Pyx_IS_TYPE(wrapper, &PyWrapperDescr_Type)) { __pyx_wrapperbase_6pygame_5_sdl2_5video_8Renderer_2__init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_6pygame_5_sdl2_5video_8Renderer_2__init__.doc = __pyx_doc_6pygame_5_sdl2_5video_8Renderer_2__init__; @@ -22972,23 +22981,23 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_ptype_6pygame_5_sdl2_5video_Renderer, __pyx_vtabptr_6pygame_5_sdl2_5video_Renderer) < 0) __PYX_ERR(0, 749, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_ptype_6pygame_5_sdl2_5video_Renderer, __pyx_vtabptr_6pygame_5_sdl2_5video_Renderer) < 0) __PYX_ERR(0, 750, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_MergeVtables(__pyx_ptype_6pygame_5_sdl2_5video_Renderer) < 0) __PYX_ERR(0, 749, __pyx_L1_error) + if (__Pyx_MergeVtables(__pyx_ptype_6pygame_5_sdl2_5video_Renderer) < 0) __PYX_ERR(0, 750, __pyx_L1_error) #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Renderer, (PyObject *) __pyx_ptype_6pygame_5_sdl2_5video_Renderer) < 0) __PYX_ERR(0, 749, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Renderer, (PyObject *) __pyx_ptype_6pygame_5_sdl2_5video_Renderer) < 0) __PYX_ERR(0, 750, __pyx_L1_error) __pyx_vtabptr_6pygame_5_sdl2_5video_Texture = &__pyx_vtable_6pygame_5_sdl2_5video_Texture; __pyx_vtable_6pygame_5_sdl2_5video_Texture.draw = (void (*)(struct __pyx_obj_6pygame_5_sdl2_5video_Texture *, int __pyx_skip_dispatch, struct __pyx_opt_args_6pygame_5_sdl2_5video_7Texture_draw *__pyx_optional_args))__pyx_f_6pygame_5_sdl2_5video_7Texture_draw; #if CYTHON_USE_TYPE_SPECS - __pyx_ptype_6pygame_5_sdl2_5video_Texture = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6pygame_5_sdl2_5video_Texture_spec, NULL); if (unlikely(!__pyx_ptype_6pygame_5_sdl2_5video_Texture)) __PYX_ERR(0, 171, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6pygame_5_sdl2_5video_Texture_spec, __pyx_ptype_6pygame_5_sdl2_5video_Texture) < 0) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_ptype_6pygame_5_sdl2_5video_Texture = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6pygame_5_sdl2_5video_Texture_spec, NULL); if (unlikely(!__pyx_ptype_6pygame_5_sdl2_5video_Texture)) __PYX_ERR(0, 172, __pyx_L1_error) + if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6pygame_5_sdl2_5video_Texture_spec, __pyx_ptype_6pygame_5_sdl2_5video_Texture) < 0) __PYX_ERR(0, 172, __pyx_L1_error) #else __pyx_ptype_6pygame_5_sdl2_5video_Texture = &__pyx_type_6pygame_5_sdl2_5video_Texture; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_6pygame_5_sdl2_5video_Texture) < 0) __PYX_ERR(0, 171, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_ptype_6pygame_5_sdl2_5video_Texture) < 0) __PYX_ERR(0, 172, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_print = 0; @@ -23000,7 +23009,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_UPDATE_DESCRIPTOR_DOC { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(0, 171, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(0, 172, __pyx_L1_error) if (__Pyx_IS_TYPE(wrapper, &PyWrapperDescr_Type)) { __pyx_wrapperbase_6pygame_5_sdl2_5video_7Texture___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_6pygame_5_sdl2_5video_7Texture___init__.doc = __pyx_doc_6pygame_5_sdl2_5video_7Texture___init__; @@ -23008,23 +23017,23 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_ptype_6pygame_5_sdl2_5video_Texture, __pyx_vtabptr_6pygame_5_sdl2_5video_Texture) < 0) __PYX_ERR(0, 171, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_ptype_6pygame_5_sdl2_5video_Texture, __pyx_vtabptr_6pygame_5_sdl2_5video_Texture) < 0) __PYX_ERR(0, 172, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_MergeVtables(__pyx_ptype_6pygame_5_sdl2_5video_Texture) < 0) __PYX_ERR(0, 171, __pyx_L1_error) + if (__Pyx_MergeVtables(__pyx_ptype_6pygame_5_sdl2_5video_Texture) < 0) __PYX_ERR(0, 172, __pyx_L1_error) #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Texture, (PyObject *) __pyx_ptype_6pygame_5_sdl2_5video_Texture) < 0) __PYX_ERR(0, 171, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Texture, (PyObject *) __pyx_ptype_6pygame_5_sdl2_5video_Texture) < 0) __PYX_ERR(0, 172, __pyx_L1_error) __pyx_vtabptr_6pygame_5_sdl2_5video_Image = &__pyx_vtable_6pygame_5_sdl2_5video_Image; __pyx_vtable_6pygame_5_sdl2_5video_Image.draw = (void (*)(struct __pyx_obj_6pygame_5_sdl2_5video_Image *, int __pyx_skip_dispatch, struct __pyx_opt_args_6pygame_5_sdl2_5video_5Image_draw *__pyx_optional_args))__pyx_f_6pygame_5_sdl2_5video_5Image_draw; #if CYTHON_USE_TYPE_SPECS - __pyx_ptype_6pygame_5_sdl2_5video_Image = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6pygame_5_sdl2_5video_Image_spec, NULL); if (unlikely(!__pyx_ptype_6pygame_5_sdl2_5video_Image)) __PYX_ERR(0, 623, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6pygame_5_sdl2_5video_Image_spec, __pyx_ptype_6pygame_5_sdl2_5video_Image) < 0) __PYX_ERR(0, 623, __pyx_L1_error) + __pyx_ptype_6pygame_5_sdl2_5video_Image = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6pygame_5_sdl2_5video_Image_spec, NULL); if (unlikely(!__pyx_ptype_6pygame_5_sdl2_5video_Image)) __PYX_ERR(0, 624, __pyx_L1_error) + if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6pygame_5_sdl2_5video_Image_spec, __pyx_ptype_6pygame_5_sdl2_5video_Image) < 0) __PYX_ERR(0, 624, __pyx_L1_error) #else __pyx_ptype_6pygame_5_sdl2_5video_Image = &__pyx_type_6pygame_5_sdl2_5video_Image; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_6pygame_5_sdl2_5video_Image) < 0) __PYX_ERR(0, 623, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_ptype_6pygame_5_sdl2_5video_Image) < 0) __PYX_ERR(0, 624, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_6pygame_5_sdl2_5video_Image->tp_print = 0; @@ -23036,7 +23045,7 @@ static int __Pyx_modinit_type_init_code(void) { #endif #if CYTHON_UPDATE_DESCRIPTOR_DOC { - PyObject *wrapper = PyObject_GetAttrString((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Image, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(0, 623, __pyx_L1_error) + PyObject *wrapper = PyObject_GetAttrString((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Image, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(0, 624, __pyx_L1_error) if (__Pyx_IS_TYPE(wrapper, &PyWrapperDescr_Type)) { __pyx_wrapperbase_6pygame_5_sdl2_5video_5Image_2__init__ = *((PyWrapperDescrObject *)wrapper)->d_base; __pyx_wrapperbase_6pygame_5_sdl2_5video_5Image_2__init__.doc = __pyx_doc_6pygame_5_sdl2_5video_5Image_2__init__; @@ -23044,21 +23053,21 @@ static int __Pyx_modinit_type_init_code(void) { } } #endif - if (__Pyx_SetVtable(__pyx_ptype_6pygame_5_sdl2_5video_Image, __pyx_vtabptr_6pygame_5_sdl2_5video_Image) < 0) __PYX_ERR(0, 623, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_ptype_6pygame_5_sdl2_5video_Image, __pyx_vtabptr_6pygame_5_sdl2_5video_Image) < 0) __PYX_ERR(0, 624, __pyx_L1_error) #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_MergeVtables(__pyx_ptype_6pygame_5_sdl2_5video_Image) < 0) __PYX_ERR(0, 623, __pyx_L1_error) + if (__Pyx_MergeVtables(__pyx_ptype_6pygame_5_sdl2_5video_Image) < 0) __PYX_ERR(0, 624, __pyx_L1_error) #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Image, (PyObject *) __pyx_ptype_6pygame_5_sdl2_5video_Image) < 0) __PYX_ERR(0, 623, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Image, (PyObject *) __pyx_ptype_6pygame_5_sdl2_5video_Image) < 0) __PYX_ERR(0, 624, __pyx_L1_error) #if CYTHON_USE_TYPE_SPECS - __pyx_ptype_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers_spec, NULL); if (unlikely(!__pyx_ptype_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers)) __PYX_ERR(0, 36, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers_spec, __pyx_ptype_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers) < 0) __PYX_ERR(0, 36, __pyx_L1_error) + __pyx_ptype_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers_spec, NULL); if (unlikely(!__pyx_ptype_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers)) __PYX_ERR(0, 37, __pyx_L1_error) + if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers_spec, __pyx_ptype_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers) < 0) __PYX_ERR(0, 37, __pyx_L1_error) #else __pyx_ptype_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers = &__pyx_type_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers; #endif #if !CYTHON_COMPILING_IN_LIMITED_API #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers) < 0) __PYX_ERR(0, 36, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_ptype_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers) < 0) __PYX_ERR(0, 37, __pyx_L1_error) #endif #if PY_MAJOR_VERSION < 3 __pyx_ptype_6pygame_5_sdl2_5video___pyx_scope_struct__get_drivers->tp_print = 0; @@ -23416,145 +23425,145 @@ if (!__Pyx_RefNanny) { if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif - /* "pygame/_sdl2/video.pyx":3 - * from cpython cimport PyObject + /* "pygame/_sdl2/video.pyx":4 + * from cpython.ref cimport Py_DECREF * cimport cython * from pygame._sdl2.sdl2 import error # <<<<<<<<<<<<<< * from pygame._sdl2.sdl2 import error as errorfnc * from libc.stdlib cimport free, malloc */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3, __pyx_L1_error) + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_error); __Pyx_GIVEREF(__pyx_n_s_error); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_error); - __pyx_t_3 = __Pyx_Import(__pyx_n_s_pygame__sdl2_sdl2, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3, __pyx_L1_error) + __pyx_t_3 = __Pyx_Import(__pyx_n_s_pygame__sdl2_sdl2, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3, __pyx_L1_error) + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_error, __pyx_t_2) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_error, __pyx_t_2) < 0) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pygame/_sdl2/video.pyx":4 + /* "pygame/_sdl2/video.pyx":5 * cimport cython * from pygame._sdl2.sdl2 import error * from pygame._sdl2.sdl2 import error as errorfnc # <<<<<<<<<<<<<< * from libc.stdlib cimport free, malloc * */ - __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4, __pyx_L1_error) + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_s_error); __Pyx_GIVEREF(__pyx_n_s_error); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_error); - __pyx_t_2 = __Pyx_Import(__pyx_n_s_pygame__sdl2_sdl2, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error) + __pyx_t_2 = __Pyx_Import(__pyx_n_s_pygame__sdl2_sdl2, __pyx_t_3, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4, __pyx_L1_error) + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_errorfnc, __pyx_t_3) < 0) __PYX_ERR(0, 4, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_errorfnc, __pyx_t_3) < 0) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":8 + /* "pygame/_sdl2/video.pyx":9 * * * WINDOWPOS_UNDEFINED = _SDL_WINDOWPOS_UNDEFINED # <<<<<<<<<<<<<< * WINDOWPOS_CENTERED = _SDL_WINDOWPOS_CENTERED * */ - __pyx_t_2 = __Pyx_PyInt_From_int(SDL_WINDOWPOS_UNDEFINED); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_int(SDL_WINDOWPOS_UNDEFINED); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_WINDOWPOS_UNDEFINED, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_WINDOWPOS_UNDEFINED, __pyx_t_2) < 0) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":9 + /* "pygame/_sdl2/video.pyx":10 * * WINDOWPOS_UNDEFINED = _SDL_WINDOWPOS_UNDEFINED * WINDOWPOS_CENTERED = _SDL_WINDOWPOS_CENTERED # <<<<<<<<<<<<<< * * MESSAGEBOX_ERROR = _SDL_MESSAGEBOX_ERROR */ - __pyx_t_2 = __Pyx_PyInt_From_int(SDL_WINDOWPOS_CENTERED); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_int(SDL_WINDOWPOS_CENTERED); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_WINDOWPOS_CENTERED, __pyx_t_2) < 0) __PYX_ERR(0, 9, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_WINDOWPOS_CENTERED, __pyx_t_2) < 0) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":11 + /* "pygame/_sdl2/video.pyx":12 * WINDOWPOS_CENTERED = _SDL_WINDOWPOS_CENTERED * * MESSAGEBOX_ERROR = _SDL_MESSAGEBOX_ERROR # <<<<<<<<<<<<<< * MESSAGEBOX_WARNING = _SDL_MESSAGEBOX_WARNING * MESSAGEBOX_INFORMATION = _SDL_MESSAGEBOX_INFORMATION */ - __pyx_t_2 = __Pyx_PyInt_From_Uint32(SDL_MESSAGEBOX_ERROR); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_Uint32(SDL_MESSAGEBOX_ERROR); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MESSAGEBOX_ERROR, __pyx_t_2) < 0) __PYX_ERR(0, 11, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MESSAGEBOX_ERROR, __pyx_t_2) < 0) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":12 + /* "pygame/_sdl2/video.pyx":13 * * MESSAGEBOX_ERROR = _SDL_MESSAGEBOX_ERROR * MESSAGEBOX_WARNING = _SDL_MESSAGEBOX_WARNING # <<<<<<<<<<<<<< * MESSAGEBOX_INFORMATION = _SDL_MESSAGEBOX_INFORMATION * */ - __pyx_t_2 = __Pyx_PyInt_From_Uint32(SDL_MESSAGEBOX_WARNING); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_Uint32(SDL_MESSAGEBOX_WARNING); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MESSAGEBOX_WARNING, __pyx_t_2) < 0) __PYX_ERR(0, 12, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MESSAGEBOX_WARNING, __pyx_t_2) < 0) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":13 + /* "pygame/_sdl2/video.pyx":14 * MESSAGEBOX_ERROR = _SDL_MESSAGEBOX_ERROR * MESSAGEBOX_WARNING = _SDL_MESSAGEBOX_WARNING * MESSAGEBOX_INFORMATION = _SDL_MESSAGEBOX_INFORMATION # <<<<<<<<<<<<<< * * SCALEQUALITY_NEAREST=SDL_ScaleMode.SDL_ScaleModeNearest */ - __pyx_t_2 = __Pyx_PyInt_From_Uint32(SDL_MESSAGEBOX_INFORMATION); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_Uint32(SDL_MESSAGEBOX_INFORMATION); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MESSAGEBOX_INFORMATION, __pyx_t_2) < 0) __PYX_ERR(0, 13, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MESSAGEBOX_INFORMATION, __pyx_t_2) < 0) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":15 + /* "pygame/_sdl2/video.pyx":16 * MESSAGEBOX_INFORMATION = _SDL_MESSAGEBOX_INFORMATION * * SCALEQUALITY_NEAREST=SDL_ScaleMode.SDL_ScaleModeNearest # <<<<<<<<<<<<<< * SCALEQUALITY_LINEAR=SDL_ScaleMode.SDL_ScaleModeLinear * SCALEQUALITY_BEST=SDL_ScaleMode.SDL_ScaleModeBest */ - __pyx_t_2 = __Pyx_PyInt_From__pgsdlScaleMode(SDL_ScaleModeNearest); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From__pgsdlScaleMode(SDL_ScaleModeNearest); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SCALEQUALITY_NEAREST, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SCALEQUALITY_NEAREST, __pyx_t_2) < 0) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":16 + /* "pygame/_sdl2/video.pyx":17 * * SCALEQUALITY_NEAREST=SDL_ScaleMode.SDL_ScaleModeNearest * SCALEQUALITY_LINEAR=SDL_ScaleMode.SDL_ScaleModeLinear # <<<<<<<<<<<<<< * SCALEQUALITY_BEST=SDL_ScaleMode.SDL_ScaleModeBest * */ - __pyx_t_2 = __Pyx_PyInt_From__pgsdlScaleMode(SDL_ScaleModeLinear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From__pgsdlScaleMode(SDL_ScaleModeLinear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SCALEQUALITY_LINEAR, __pyx_t_2) < 0) __PYX_ERR(0, 16, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SCALEQUALITY_LINEAR, __pyx_t_2) < 0) __PYX_ERR(0, 17, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":17 + /* "pygame/_sdl2/video.pyx":18 * SCALEQUALITY_NEAREST=SDL_ScaleMode.SDL_ScaleModeNearest * SCALEQUALITY_LINEAR=SDL_ScaleMode.SDL_ScaleModeLinear * SCALEQUALITY_BEST=SDL_ScaleMode.SDL_ScaleModeBest # <<<<<<<<<<<<<< * * import_pygame_base() */ - __pyx_t_2 = __Pyx_PyInt_From__pgsdlScaleMode(SDL_ScaleModeBest); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From__pgsdlScaleMode(SDL_ScaleModeBest); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SCALEQUALITY_BEST, __pyx_t_2) < 0) __PYX_ERR(0, 17, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SCALEQUALITY_BEST, __pyx_t_2) < 0) __PYX_ERR(0, 18, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":19 + /* "pygame/_sdl2/video.pyx":20 * SCALEQUALITY_BEST=SDL_ScaleMode.SDL_ScaleModeBest * * import_pygame_base() # <<<<<<<<<<<<<< @@ -23563,7 +23572,7 @@ if (!__Pyx_RefNanny) { */ import_pygame_base(); - /* "pygame/_sdl2/video.pyx":20 + /* "pygame/_sdl2/video.pyx":21 * * import_pygame_base() * import_pygame_color() # <<<<<<<<<<<<<< @@ -23572,7 +23581,7 @@ if (!__Pyx_RefNanny) { */ import_pygame_color(); - /* "pygame/_sdl2/video.pyx":21 + /* "pygame/_sdl2/video.pyx":22 * import_pygame_base() * import_pygame_color() * import_pygame_surface() # <<<<<<<<<<<<<< @@ -23581,7 +23590,7 @@ if (!__Pyx_RefNanny) { */ import_pygame_surface(); - /* "pygame/_sdl2/video.pyx":22 + /* "pygame/_sdl2/video.pyx":23 * import_pygame_color() * import_pygame_surface() * import_pygame_rect() # <<<<<<<<<<<<<< @@ -23590,7 +23599,7 @@ if (!__Pyx_RefNanny) { */ import_pygame_rect(); - /* "pygame/_sdl2/video.pyx":23 + /* "pygame/_sdl2/video.pyx":24 * import_pygame_surface() * import_pygame_rect() * import_pygame_window() # <<<<<<<<<<<<<< @@ -23599,103 +23608,103 @@ if (!__Pyx_RefNanny) { */ import_pygame_window(); - /* "pygame/_sdl2/video.pyx":25 + /* "pygame/_sdl2/video.pyx":26 * import_pygame_window() * * class RendererDriverInfo: # <<<<<<<<<<<<<< * def __repr__(self): * return "<%s(name: %s, flags: 0x%02x, num_texture_formats: %d, max_texture_width: %d, max_texture_height: %d)>" % ( */ - __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_RendererDriverInfo, __pyx_n_s_RendererDriverInfo, (PyObject *) NULL, __pyx_n_s_pygame__sdl2_video, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) + __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_RendererDriverInfo, __pyx_n_s_RendererDriverInfo, (PyObject *) NULL, __pyx_n_s_pygame__sdl2_video, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - /* "pygame/_sdl2/video.pyx":26 + /* "pygame/_sdl2/video.pyx":27 * * class RendererDriverInfo: * def __repr__(self): # <<<<<<<<<<<<<< * return "<%s(name: %s, flags: 0x%02x, num_texture_formats: %d, max_texture_width: %d, max_texture_height: %d)>" % ( * self.__class__.__name__, */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_18RendererDriverInfo_1__repr__, 0, __pyx_n_s_RendererDriverInfo___repr, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_18RendererDriverInfo_1__repr__, 0, __pyx_n_s_RendererDriverInfo___repr, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_repr, __pyx_t_3) < 0) __PYX_ERR(0, 26, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_repr, __pyx_t_3) < 0) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pygame/_sdl2/video.pyx":25 + /* "pygame/_sdl2/video.pyx":26 * import_pygame_window() * * class RendererDriverInfo: # <<<<<<<<<<<<<< * def __repr__(self): * return "<%s(name: %s, flags: 0x%02x, num_texture_formats: %d, max_texture_width: %d, max_texture_height: %d)>" % ( */ - __pyx_t_3 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_RendererDriverInfo, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25, __pyx_L1_error) + __pyx_t_3 = __Pyx_Py3ClassCreate(((PyObject*)&PyType_Type), __pyx_n_s_RendererDriverInfo, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_RendererDriverInfo, __pyx_t_3) < 0) __PYX_ERR(0, 25, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RendererDriverInfo, __pyx_t_3) < 0) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":36 + /* "pygame/_sdl2/video.pyx":37 * ) * * def get_drivers(): # <<<<<<<<<<<<<< * """Yield info about the rendering drivers available for Renderer objects * """ */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_1get_drivers, 0, __pyx_n_s_get_drivers, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj_)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_1get_drivers, 0, __pyx_n_s_get_drivers, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj_)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_drivers, __pyx_t_2) < 0) __PYX_ERR(0, 36, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_drivers, __pyx_t_2) < 0) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":53 + /* "pygame/_sdl2/video.pyx":54 * * * def get_grabbed_window(): # <<<<<<<<<<<<<< * """Get the window with input grab enabled * */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_4get_grabbed_window, 0, __pyx_n_s_get_grabbed_window, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_4get_grabbed_window, 0, __pyx_n_s_get_grabbed_window, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_grabbed_window, __pyx_t_2) < 0) __PYX_ERR(0, 53, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_grabbed_window, __pyx_t_2) < 0) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pygame/_sdl2/video.pyx":70 + /* "pygame/_sdl2/video.pyx":71 * def messagebox(title, message, * Window window=None, * bint info=False, # <<<<<<<<<<<<<< * bint warn=False, * bint error=False, */ - __pyx_t_2 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - /* "pygame/_sdl2/video.pyx":71 + /* "pygame/_sdl2/video.pyx":72 * Window window=None, * bint info=False, * bint warn=False, # <<<<<<<<<<<<<< * bint error=False, * buttons=('OK', ), */ - __pyx_t_3 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 71, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - /* "pygame/_sdl2/video.pyx":72 + /* "pygame/_sdl2/video.pyx":73 * bint info=False, * bint warn=False, * bint error=False, # <<<<<<<<<<<<<< * buttons=('OK', ), * return_button=0, */ - __pyx_t_4 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 72, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyBool_FromLong(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "pygame/_sdl2/video.pyx":68 + /* "pygame/_sdl2/video.pyx":69 * return None * * def messagebox(title, message, # <<<<<<<<<<<<<< * Window window=None, * bint info=False, */ - __pyx_t_5 = PyTuple_New(7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)Py_None)); __Pyx_GIVEREF(((PyObject *)Py_None)); @@ -23718,381 +23727,381 @@ if (!__Pyx_RefNanny) { __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_6messagebox, 0, __pyx_n_s_messagebox, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 68, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_6messagebox, 0, __pyx_n_s_messagebox, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_messagebox, __pyx_t_4) < 0) __PYX_ERR(0, 68, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_messagebox, __pyx_t_4) < 0) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pygame/_sdl2/video.pyx":148 + /* "pygame/_sdl2/video.pyx":149 * return buttonid * * globals()["Window"] = Window # <<<<<<<<<<<<<< * _Window = Window * */ - __pyx_t_4 = __Pyx_Globals(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 148, __pyx_L1_error) + __pyx_t_4 = __Pyx_Globals(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_n_s_Window, ((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Window)) < 0))) __PYX_ERR(0, 148, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_n_s_Window, ((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Window)) < 0))) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pygame/_sdl2/video.pyx":149 + /* "pygame/_sdl2/video.pyx":150 * * globals()["Window"] = Window * _Window = Window # <<<<<<<<<<<<<< * * cdef Uint32 format_from_depth(int depth): */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_Window_2, ((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Window)) < 0) __PYX_ERR(0, 149, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_Window_2, ((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Window)) < 0) __PYX_ERR(0, 150, __pyx_L1_error) - /* "pygame/_sdl2/video.pyx":272 + /* "pygame/_sdl2/video.pyx":273 * self.width, self.height = width, height * * @staticmethod # <<<<<<<<<<<<<< * def from_surface(Renderer renderer, surface): * """Create a texture from an existing surface */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_3from_surface, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_from_surface, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_3from_surface, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_from_surface, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_from_surface, __pyx_t_4) < 0) __PYX_ERR(0, 272, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_from_surface, __pyx_t_4) < 0) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Texture); - __Pyx_GetNameInClass(__pyx_t_4, (PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture, __pyx_n_s_from_surface); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_4, (PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture, __pyx_n_s_from_surface); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 272, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_from_surface, __pyx_t_5) < 0) __PYX_ERR(0, 272, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_from_surface, __pyx_t_5) < 0) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Texture); - /* "pygame/_sdl2/video.pyx":371 + /* "pygame/_sdl2/video.pyx":372 * raise error() * * def get_rect(self, **kwargs): # <<<<<<<<<<<<<< * """Get the rectangular area of the texture * */ - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_7get_rect, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_get_rect, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_7get_rect, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_get_rect, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_get_rect, __pyx_t_5) < 0) __PYX_ERR(0, 371, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_get_rect, __pyx_t_5) < 0) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Texture); - /* "pygame/_sdl2/video.pyx":385 + /* "pygame/_sdl2/video.pyx":386 * return rect * * cpdef void draw(self, srcrect=None, dstrect=None, float angle=0, origin=None, # <<<<<<<<<<<<<< * bint flip_x=False, bint flip_y=False): * """Copy a portion of the texture to the rendering target */ - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_9draw, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_draw, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 385, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_9draw, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_draw, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__41); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_draw, __pyx_t_5) < 0) __PYX_ERR(0, 385, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_draw, __pyx_t_5) < 0) __PYX_ERR(0, 386, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Texture); - /* "pygame/_sdl2/video.pyx":444 + /* "pygame/_sdl2/video.pyx":445 * raise error() * * def draw_triangle(self, p1_xy, p2_xy, p3_xy, # <<<<<<<<<<<<<< * p1_uv=(0.0, 0.0), p2_uv=(1.0, 1.0), p3_uv=(0.0, 1.0), * p1_mod=(255, 255, 255, 255), p2_mod=(255, 255, 255, 255), p3_mod=(255, 255, 255, 255)): */ - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_11draw_triangle, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_draw_triangle, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 444, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_11draw_triangle, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_draw_triangle, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__44); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_draw_triangle, __pyx_t_5) < 0) __PYX_ERR(0, 444, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_draw_triangle, __pyx_t_5) < 0) __PYX_ERR(0, 445, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Texture); - /* "pygame/_sdl2/video.pyx":489 + /* "pygame/_sdl2/video.pyx":490 * raise error() * * def draw_quad(self, p1_xy, p2_xy, p3_xy, p4_xy, # <<<<<<<<<<<<<< * p1_uv=(0.0, 0.0), p2_uv=(1.0, 0.0), * p3_uv=(1.0, 1.0), p4_uv=(0.0, 1.0), */ - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_13draw_quad, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_draw_quad, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 489, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_13draw_quad, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_draw_quad, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__47); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_draw_quad, __pyx_t_5) < 0) __PYX_ERR(0, 489, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_draw_quad, __pyx_t_5) < 0) __PYX_ERR(0, 490, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Texture); - /* "pygame/_sdl2/video.pyx":542 + /* "pygame/_sdl2/video.pyx":543 * raise error() * * def update(self, surface, area=None): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_UpdateTexture * # Should it accept a raw pixel data array too? */ - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_15update, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_update, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 542, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_7Texture_15update, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Texture_update, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__50); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_update, __pyx_t_5) < 0) __PYX_ERR(0, 542, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Texture->tp_dict, __pyx_n_s_update, __pyx_t_5) < 0) __PYX_ERR(0, 543, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Texture); - /* "pygame/_sdl2/video.pyx":716 + /* "pygame/_sdl2/video.pyx":717 * self._originptr = NULL * * def get_rect(self): # <<<<<<<<<<<<<< * """Get the rectangular area of the Image * */ - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_5Image_5get_rect, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Image_get_rect, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 716, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_5Image_5get_rect, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Image_get_rect, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Image->tp_dict, __pyx_n_s_get_rect, __pyx_t_5) < 0) __PYX_ERR(0, 716, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Image->tp_dict, __pyx_n_s_get_rect, __pyx_t_5) < 0) __PYX_ERR(0, 717, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Image); - /* "pygame/_sdl2/video.pyx":726 + /* "pygame/_sdl2/video.pyx":727 * return pgRect_New(&self.srcrect.r) * * cpdef void draw(self, srcrect=None, dstrect=None): # <<<<<<<<<<<<<< * """Copy a portion of the Image to the rendering target * */ - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_5Image_7draw, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Image_draw, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_5Image_7draw, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Image_draw, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_tuple__54); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Image->tp_dict, __pyx_n_s_draw, __pyx_t_5) < 0) __PYX_ERR(0, 726, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Image->tp_dict, __pyx_n_s_draw, __pyx_t_5) < 0) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Image); - /* "pygame/_sdl2/video.pyx":751 + /* "pygame/_sdl2/video.pyx":752 * cdef class Renderer: * * @classmethod # <<<<<<<<<<<<<< * def from_window(cls, Window window): * cdef Renderer self = cls.__new__(cls) */ - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_1from_window, __Pyx_CYFUNCTION_CLASSMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_from_window, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 751, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_1from_window, __Pyx_CYFUNCTION_CLASSMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_from_window, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_from_window, __pyx_t_5) < 0) __PYX_ERR(0, 751, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_from_window, __pyx_t_5) < 0) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - __Pyx_GetNameInClass(__pyx_t_5, (PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer, __pyx_n_s_from_window); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 751, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_5, (PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer, __pyx_n_s_from_window); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_Method_ClassMethod(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 751, __pyx_L1_error) + __pyx_t_4 = __Pyx_Method_ClassMethod(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_from_window, __pyx_t_4) < 0) __PYX_ERR(0, 751, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_from_window, __pyx_t_4) < 0) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":892 + /* "pygame/_sdl2/video.pyx":893 * raise error() * * def clear(self): # <<<<<<<<<<<<<< * """Clear the current rendering target with the drawing color * """ */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_7clear, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_clear, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 892, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_7clear, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_clear, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_clear, __pyx_t_4) < 0) __PYX_ERR(0, 892, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_clear, __pyx_t_4) < 0) __PYX_ERR(0, 893, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":900 + /* "pygame/_sdl2/video.pyx":901 * raise error() * * def present(self): # <<<<<<<<<<<<<< * """Update the screen with any rendering performed since the previous call * */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_9present, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_present, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 900, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_9present, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_present, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_present, __pyx_t_4) < 0) __PYX_ERR(0, 900, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_present, __pyx_t_4) < 0) __PYX_ERR(0, 901, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":909 + /* "pygame/_sdl2/video.pyx":910 * SDL_RenderPresent(self._renderer) * * cpdef get_viewport(self): # <<<<<<<<<<<<<< * """Get the drawing area on the rendering target * """ */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_11get_viewport, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_get_viewport, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 909, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_11get_viewport, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_get_viewport, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_get_viewport, __pyx_t_4) < 0) __PYX_ERR(0, 909, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_get_viewport, __pyx_t_4) < 0) __PYX_ERR(0, 910, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":917 + /* "pygame/_sdl2/video.pyx":918 * return pgRect_New(&rect) * * def set_viewport(self, area): # <<<<<<<<<<<<<< * """Set the drawing area on the rendering target * */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_13set_viewport, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_set_viewport, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 917, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_13set_viewport, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_set_viewport, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_set_viewport, __pyx_t_4) < 0) __PYX_ERR(0, 917, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_set_viewport, __pyx_t_4) < 0) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":1000 + /* "pygame/_sdl2/video.pyx":1001 * raise TypeError('target must be a Texture or None') * * cpdef object blit(self, object source, Rect dest=None, Rect area=None, int special_flags=0): # <<<<<<<<<<<<<< * """Draw textures using a Surface-like API * */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_15blit, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_blit, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1000, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_15blit, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_blit, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__65); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_blit, __pyx_t_4) < 0) __PYX_ERR(0, 1000, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_blit, __pyx_t_4) < 0) __PYX_ERR(0, 1001, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":1026 + /* "pygame/_sdl2/video.pyx":1027 * return dest * * def draw_line(self, p1, p2): # <<<<<<<<<<<<<< * """Draw a line * */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_17draw_line, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_draw_line, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1026, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_17draw_line, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_draw_line, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_draw_line, __pyx_t_4) < 0) __PYX_ERR(0, 1026, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_draw_line, __pyx_t_4) < 0) __PYX_ERR(0, 1027, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":1039 + /* "pygame/_sdl2/video.pyx":1040 * raise error() * * def draw_point(self, point): # <<<<<<<<<<<<<< * """Draw a point * */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_19draw_point, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_draw_point, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1039, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_19draw_point, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_draw_point, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_draw_point, __pyx_t_4) < 0) __PYX_ERR(0, 1039, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_draw_point, __pyx_t_4) < 0) __PYX_ERR(0, 1040, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":1051 + /* "pygame/_sdl2/video.pyx":1052 * raise error() * * def draw_rect(self, rect): # <<<<<<<<<<<<<< * """Draw a rectangle outline * */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_21draw_rect, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_draw_rect, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__71)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1051, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_21draw_rect, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_draw_rect, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__71)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_draw_rect, __pyx_t_4) < 0) __PYX_ERR(0, 1051, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_draw_rect, __pyx_t_4) < 0) __PYX_ERR(0, 1052, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":1070 + /* "pygame/_sdl2/video.pyx":1071 * raise error() * * def fill_rect(self, rect): # <<<<<<<<<<<<<< * """Draw a filled rectangle * */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_23fill_rect, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_fill_rect, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1070, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_23fill_rect, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_fill_rect, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_fill_rect, __pyx_t_4) < 0) __PYX_ERR(0, 1070, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_fill_rect, __pyx_t_4) < 0) __PYX_ERR(0, 1071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":1090 + /* "pygame/_sdl2/video.pyx":1091 * raise error() * * def draw_triangle(self, p1, p2, p3): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_RenderDrawLinesF * cdef SDL_FPoint fpoints[4] */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_25draw_triangle, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_draw_triangle, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1090, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_25draw_triangle, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_draw_triangle, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_draw_triangle, __pyx_t_4) < 0) __PYX_ERR(0, 1090, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_draw_triangle, __pyx_t_4) < 0) __PYX_ERR(0, 1091, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":1103 + /* "pygame/_sdl2/video.pyx":1104 * raise error() * * def fill_triangle(self, p1, p2, p3): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_RenderGeometry * if not SDL_VERSION_ATLEAST(2, 0, 18): */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_27fill_triangle, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_fill_triangle, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1103, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_27fill_triangle, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_fill_triangle, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_fill_triangle, __pyx_t_4) < 0) __PYX_ERR(0, 1103, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_fill_triangle, __pyx_t_4) < 0) __PYX_ERR(0, 1104, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":1132 + /* "pygame/_sdl2/video.pyx":1133 * raise error() * * def draw_quad(self, p1, p2, p3, p4): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_RenderDrawLinesF * cdef SDL_FPoint fpoints[5] */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_29draw_quad, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_draw_quad, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1132, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_29draw_quad, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_draw_quad, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_draw_quad, __pyx_t_4) < 0) __PYX_ERR(0, 1132, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_draw_quad, __pyx_t_4) < 0) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":1144 + /* "pygame/_sdl2/video.pyx":1145 * raise error() * * def fill_quad(self, p1, p2, p3, p4): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_RenderGeometry * if not SDL_VERSION_ATLEAST(2, 0, 18): */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_31fill_quad, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_fill_quad, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1144, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_31fill_quad, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_fill_quad, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_fill_quad, __pyx_t_4) < 0) __PYX_ERR(0, 1144, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_fill_quad, __pyx_t_4) < 0) __PYX_ERR(0, 1145, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":1173 + /* "pygame/_sdl2/video.pyx":1174 * raise error() * * def to_surface(self, surface=None, area=None): # <<<<<<<<<<<<<< * # https://wiki.libsdl.org/SDL_RenderReadPixels * """Read pixels from current rendering target and create a Surface (slow operation, use sparingly) */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_33to_surface, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_to_surface, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1173, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_33to_surface, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_to_surface, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__54); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_to_surface, __pyx_t_4) < 0) __PYX_ERR(0, 1173, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_to_surface, __pyx_t_4) < 0) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - /* "pygame/_sdl2/video.pyx":1250 + /* "pygame/_sdl2/video.pyx":1256 * return surface * * @staticmethod # <<<<<<<<<<<<<< * def compose_custom_blend_mode(color_mode, alpha_mode): * """Compose a custom blend mode */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_35compose_custom_blend_mode, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_compose_custom_blend_mo, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1250, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_6pygame_5_sdl2_5video_8Renderer_35compose_custom_blend_mode, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Renderer_compose_custom_blend_mo, NULL, __pyx_n_s_pygame__sdl2_video, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_compose_custom_blend_mode, __pyx_t_4) < 0) __PYX_ERR(0, 1250, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_compose_custom_blend_mode, __pyx_t_4) < 0) __PYX_ERR(0, 1256, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); - __Pyx_GetNameInClass(__pyx_t_4, (PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer, __pyx_n_s_compose_custom_blend_mode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1250, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_4, (PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer, __pyx_n_s_compose_custom_blend_mode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1250, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_compose_custom_blend_mode, __pyx_t_5) < 0) __PYX_ERR(0, 1250, __pyx_L1_error) + if (PyDict_SetItem((PyObject *)__pyx_ptype_6pygame_5_sdl2_5video_Renderer->tp_dict, __pyx_n_s_compose_custom_blend_mode, __pyx_t_5) < 0) __PYX_ERR(0, 1256, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_6pygame_5_sdl2_5video_Renderer); /* "pygame/_sdl2/video.pyx":1 * from cpython cimport PyObject # <<<<<<<<<<<<<< + * from cpython.ref cimport Py_DECREF * cimport cython - * from pygame._sdl2.sdl2 import error */ __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); diff --git a/src_c/cython/pygame/_sdl2/video.pyx b/src_c/cython/pygame/_sdl2/video.pyx index 59a11a1851..0dd2308b84 100644 --- a/src_c/cython/pygame/_sdl2/video.pyx +++ b/src_c/cython/pygame/_sdl2/video.pyx @@ -1,4 +1,5 @@ from cpython cimport PyObject +from cpython.ref cimport Py_DECREF cimport cython from pygame._sdl2.sdl2 import error from pygame._sdl2.sdl2 import error as errorfnc @@ -1233,6 +1234,11 @@ cdef class Renderer: raise MemoryError("not enough memory for the surface") surface = pgSurface_New2(surf, 1) + # casting to makes cython assume reference counting of the object and it increments + # it by one, however, pgSurface_New2 already returns a new reference to an object, so + # we need to decrement that reference cython has added on top + # see https://github.com/cython/cython/issues/2589#issuecomment-417604249 for additional context + Py_DECREF(surface) elif pgSurface_Check(surface): surf = pgSurface_AsSurface(surface) if surf.w < rarea.w or surf.h < rarea.h: diff --git a/test/video_test.py b/test/video_test.py index 55ef4149fd..3013cfeb2c 100644 --- a/test/video_test.py +++ b/test/video_test.py @@ -1,3 +1,4 @@ +import platform import unittest import sys import pygame @@ -5,6 +6,9 @@ from pygame._sdl2 import video +IS_PYPY = "PyPy" == platform.python_implementation() + + class VideoModuleTest(unittest.TestCase): default_caption = "pygame window" @@ -21,6 +25,18 @@ def test_renderer_set_viewport(self): renderer.set_viewport(rect) self.assertEqual(renderer.get_viewport(), (0, 0, 1920, 1080)) + @unittest.skipIf(IS_PYPY, "PyPy doesn't have sys.getrefcount") + def test_renderer_to_surface_refcount(self): + """Make sure to_surface doesn't leak memory due to reference counting.""" + window = video.Window(title=self.default_caption, size=(800, 600)) + renderer = video.Renderer(window=window) + surface = pygame.Surface(window.size) + + # directly getting a refcount returns the actual refcount + # as opposed to using an itermediate variable where it's 1 more than expected + self.assertEqual(sys.getrefcount(renderer.to_surface()), 1) + self.assertEqual(sys.getrefcount(renderer.to_surface(surface=surface)), 2) + if __name__ == "__main__": unittest.main() From 8d9b594a4dfaee51a5d789fbe68239ad485695e4 Mon Sep 17 00:00:00 2001 From: Alberto <103119829+itzpr3d4t0r@users.noreply.github.com> Date: Sun, 28 Jan 2024 11:41:00 +0100 Subject: [PATCH 19/31] Merge pull request #2697 from Starbuck5/fix-formatting-for-latest-black Fix formatting for latest black version --- examples/go_over_there.py | 1 + test/math_test.py | 4 +--- test/test_utils/buftools.py | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/go_over_there.py b/examples/go_over_there.py index d4b9b59bcf..a2f300cb10 100644 --- a/examples/go_over_there.py +++ b/examples/go_over_there.py @@ -9,6 +9,7 @@ Keyboard Controls: * Press R to restart the demo """ + import pygame import random diff --git a/test/math_test.py b/test/math_test.py index 1d8408fbb4..cbfa81c816 100644 --- a/test/math_test.py +++ b/test/math_test.py @@ -911,9 +911,7 @@ def test_elementwise(self): self.assertEqual( v2.elementwise() // v1.elementwise(), (v2.x // v1.x, v2.y // v1.y) ) - self.assertEqual( - v2.elementwise() ** v1.elementwise(), (v2.x**v1.x, v2.y**v1.y) - ) + self.assertEqual(v2.elementwise() ** v1.elementwise(), (v2.x**v1.x, v2.y**v1.y)) self.assertEqual( v2.elementwise() % v1.elementwise(), (v2.x % v1.x, v2.y % v1.y) ) diff --git a/test/test_utils/buftools.py b/test/test_utils/buftools.py index 9c26002760..7b8abbf536 100644 --- a/test/test_utils/buftools.py +++ b/test/test_utils/buftools.py @@ -19,6 +19,7 @@ python -m pygame.tests.test_utils.array """ + import pygame import pygame.newbuffer From 312d16f4eaa653b99b2d373b9825b61d12792b9f Mon Sep 17 00:00:00 2001 From: Ankith Date: Mon, 29 Jan 2024 21:30:49 +0530 Subject: [PATCH 20/31] Merge pull request #2701 from pygame-community/dependabot/github_actions/robinraju/release-downloader-1.9 Bump robinraju/release-downloader from 1.8 to 1.9 --- .github/workflows/release-pypi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-pypi.yml b/.github/workflows/release-pypi.yml index a07ba32ec2..bb27dbcb1c 100644 --- a/.github/workflows/release-pypi.yml +++ b/.github/workflows/release-pypi.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v4.1.1 - name: Pull all release assets - uses: robinraju/release-downloader@v1.8 + uses: robinraju/release-downloader@v1.9 with: releaseId: ${{ github.event.release.id }} fileName: "*" From a81f85e3680ed04ca1be3af5d461420b50b083e0 Mon Sep 17 00:00:00 2001 From: Ankith Date: Mon, 29 Jan 2024 21:31:34 +0530 Subject: [PATCH 21/31] Merge pull request #2700 from pygame-community/dependabot/github_actions/uraimo/run-on-arch-action-2.7.1 Bump uraimo/run-on-arch-action from 2.6.0 to 2.7.1 --- .github/workflows/build-debian-multiarch.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-debian-multiarch.yml b/.github/workflows/build-debian-multiarch.yml index f3559ca8d3..7040456c33 100644 --- a/.github/workflows/build-debian-multiarch.yml +++ b/.github/workflows/build-debian-multiarch.yml @@ -50,7 +50,7 @@ jobs: - uses: actions/checkout@v4.1.1 - name: Build sources and run tests - uses: uraimo/run-on-arch-action@v2.6.0 + uses: uraimo/run-on-arch-action@v2.7.1 id: build with: arch: ${{ matrix.arch }} From d1c5473eb407c585f9385a9901cb83ce385204a3 Mon Sep 17 00:00:00 2001 From: Ankith Date: Mon, 29 Jan 2024 22:01:17 +0530 Subject: [PATCH 22/31] Merge pull request #2702 from pygame-community/dependabot/github_actions/pypa/cibuildwheel-2.16.4 Bump pypa/cibuildwheel from 2.16.2 to 2.16.4 --- .circleci/config.yml | 2 +- .github/workflows/build-macos.yml | 2 +- .github/workflows/build-manylinux.yml | 2 +- .github/workflows/build-windows.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7380d04873..90dc06a873 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -48,7 +48,7 @@ jobs: - run: name: Build the Linux wheels. command: | - pip3 install --user cibuildwheel==2.16.2 + pip3 install --user cibuildwheel==2.16.4 PATH="$HOME/.local/bin:$PATH" cibuildwheel --output-dir wheelhouse - store_artifacts: diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 7ccb2bdc54..c32d492fa4 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -177,7 +177,7 @@ jobs: fail-on-cache-miss: true - name: Build and test wheels - uses: pypa/cibuildwheel@v2.16.2 + uses: pypa/cibuildwheel@v2.16.4 - uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/build-manylinux.yml b/.github/workflows/build-manylinux.yml index 0bc38c7727..c397daf4bc 100644 --- a/.github/workflows/build-manylinux.yml +++ b/.github/workflows/build-manylinux.yml @@ -118,7 +118,7 @@ jobs: CIBW_MANYLINUX_I686_IMAGE: ghcr.io/${{ github.repository }}_i686:${{ steps.meta.outputs.version }} CIBW_MANYLINUX_PYPY_I686_IMAGE: ghcr.io/${{ github.repository }}_i686:${{ steps.meta.outputs.version }} - uses: pypa/cibuildwheel@v2.16.2 + uses: pypa/cibuildwheel@v2.16.4 # We upload the generated files under github actions assets - name: Upload dist diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 1cd46b2844..55384fa331 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -158,7 +158,7 @@ jobs: set MSSdk=1 python -m pip install setuptools wheel requests numpy Sphinx"<7.2.0" python setup.py docs - python -m pip --disable-pip-version-check install cibuildwheel==2.16.2 + python -m pip --disable-pip-version-check install cibuildwheel==2.16.4 python -m cibuildwheel --output-dir wheelhouse - uses: actions/upload-artifact@v4 From 4d88fd57974c6353f5dbca611ff8649167631ba7 Mon Sep 17 00:00:00 2001 From: Charlie Hayden <46412508+Starbuck5@users.noreply.github.com> Date: Mon, 29 Jan 2024 23:08:40 -0800 Subject: [PATCH 23/31] Merge pull request #2666 from Matiiss/matiiss-remove-deprecated-groups Further deprecation of deprecated sprite groups --- docs/reST/ref/sprite.rst | 5 ++-- docs/reST/tutorials/en/intro-to-sprites.rst | 25 ++++--------------- docs/reST/tutorials/en/tom-games6.rst | 4 +-- .../tutorials/es/ChimpanceLineaporLinea.rst | 9 ++----- src_c/doc/sprite_doc.h | 2 +- src_py/sprite.py | 11 ++++---- test/sprite_test.py | 2 -- 7 files changed, 17 insertions(+), 41 deletions(-) diff --git a/docs/reST/ref/sprite.rst b/docs/reST/ref/sprite.rst index eb6b87355d..d2e772bbd4 100644 --- a/docs/reST/ref/sprite.rst +++ b/docs/reST/ref/sprite.rst @@ -23,8 +23,7 @@ The basic Group class can draw the Sprites it contains to a Surface. The ``Group.draw()`` method requires that each Sprite have a ``Sprite.image`` attribute and a ``Sprite.rect``. The ``Group.clear()`` method requires these same attributes, and can be used to erase all the Sprites with background. -There are also more advanced Groups: ``pygame.sprite.RenderUpdates()`` and -``pygame.sprite.OrderedUpdates()``. +There are also more advanced Groups: ``pygame.sprite.RenderUpdates()``. Lastly, this module contains several collision functions. These help find sprites inside multiple groups that have intersecting bounding rectangles. To @@ -366,7 +365,7 @@ Sprites are not thread safe. So lock them yourself if using threads. .. class:: LayeredUpdates - | :sl:`LayeredUpdates is a sprite group that handles layers and draws like OrderedUpdates.` + | :sl:`LayeredUpdates is a sprite group that handles layers and draws like RenderUpdates.` | :sg:`LayeredUpdates(*sprites, **kwargs) -> LayeredUpdates` This group is fully compatible with :class:`pygame.sprite.Sprite`. diff --git a/docs/reST/tutorials/en/intro-to-sprites.rst b/docs/reST/tutorials/en/intro-to-sprites.rst index 6fc01e7dd1..53d6978293 100644 --- a/docs/reST/tutorials/en/intro-to-sprites.rst +++ b/docs/reST/tutorials/en/intro-to-sprites.rst @@ -203,24 +203,9 @@ sprite module. it "forgets" about any previous sprites it had. Therefore it always contains only one or zero sprites. - :class:`RenderPlain ` - - This is a standard group derived from ``Group``. It has a draw() method - that draws all the sprites it contains to the screen (or any ``Surface``). For - this to work, it requires all sprites it contains to have a "image" and "rect" - attributes. It uses these to know what to blit, and where to blit it. - - :class:`RenderClear ` - - This is derived from the ``RenderPlain`` group, and adds a method named - ``clear()``. This will erase the previous position of all drawn sprites. It - uses a background image to fill in the areas where the sprite were. It is smart - enough to handle deleted sprites and properly clear them from the screen when - the ``clear()`` method is called. - :class:`RenderUpdates ` - This group is inherited from ``RenderClear``, but changes the + This group is inherited from ``Group``, but changes the ``draw()`` method to also return a list of pygame ``Rects``, which represent all the areas on screen that have been changed. Generally you don't need to use this group, but it is included for @@ -242,8 +227,8 @@ The Rendering Groups -------------------- From above we can see there are three different rendering groups. We could -probably just get away with the ``RenderPlain`` one. For a scrolling or stationary -type game, you should probably go with the ``RenderPlain`` group here to manage +probably just get away with the ``Group`` one. For a scrolling or stationary +type game, you should probably go with the ``Group`` group here to manage your rendering. Also note that there's nothing stopping you from mixing and matching these @@ -342,11 +327,11 @@ Looking at the current ``Sprite`` groups should be enough example on how to create your own. For example, here is the source code for a rendering ``Group`` that calls a -``render()`` method for each sprite, instead of just blitting an "image" +``draw()`` method for each sprite, instead of just blitting an "image" variable from it. Since we want it to also handle updated areas, we will start with a copy of the original ``RenderUpdates`` group, here is the code:: - class RenderUpdatesDraw(RenderClear): + class RenderUpdatesDraw(Group): """call sprite.draw(screen) to render sprites""" def draw(self, surface): dirty = self.lostsprites diff --git a/docs/reST/tutorials/en/tom-games6.rst b/docs/reST/tutorials/en/tom-games6.rst index b4beeaacbe..5ac50550b3 100644 --- a/docs/reST/tutorials/en/tom-games6.rst +++ b/docs/reST/tutorials/en/tom-games6.rst @@ -274,8 +274,8 @@ like this:: ball = Ball((0,0),(0.47,speed)) # Initialise sprites - playersprites = pygame.sprite.RenderPlain((player1, player2)) - ballsprite = pygame.sprite.RenderPlain(ball) + playersprites = pygame.sprite.Group((player1, player2)) + ballsprite = pygame.sprite.Group(ball) # Blit everything to the screen screen.blit(background, (0, 0)) diff --git a/docs/reST/tutorials/es/ChimpanceLineaporLinea.rst b/docs/reST/tutorials/es/ChimpanceLineaporLinea.rst index f9a54dabe6..b7a9541a9f 100644 --- a/docs/reST/tutorials/es/ChimpanceLineaporLinea.rst +++ b/docs/reST/tutorials/es/ChimpanceLineaporLinea.rst @@ -448,7 +448,7 @@ En este caso crearemos todos los objetos que el juego va a necesitar. punch_sound = load_sound("punch.wav") chimp = Chimp() fist = Fist() - allsprites = pg.sprite.RenderPlain((chimp, fist)) + allsprites = pg.sprite.Group((chimp, fist)) clock = pg.time.Clock() Primero cargamos dos efectos de sonido usando la función `load_sound`, que se @@ -456,12 +456,7 @@ encuentra definida en código arriba. Luego, creamos una instancia para cada uno de los sprites de la clase. Por último, creamos el sprite :class:`Group ` que va a contener todos nuestros sprites. -En realidad, nosotros usamos un grupo especial de sprites llamado -:class:`RenderPlain`. -Este grupo de sprites puede dibujar en la pantalla todos los sprites que contiene. -Es llamado `RenderPlain` porque en realidad hay grupos Render más avanzados, pero -para nuestro juego nosotros solo necesitamos un dibujo simple. Nosotros creamos -el grupo llamado "allsprites" al pasar una lista con todos los sprites que deberían +Nosotros creamos el grupo llamado "allsprites" al pasar una lista con todos los sprites que deberían pertenecer al grupo. Exise la posibilidad, si más adelante quisieramos, de agregar o sacar sprites de este grupo, pero para este juego no sería necesario. diff --git a/src_c/doc/sprite_doc.h b/src_c/doc/sprite_doc.h index 43ef41ab2e..c8e374e41a 100644 --- a/src_c/doc/sprite_doc.h +++ b/src_c/doc/sprite_doc.h @@ -20,7 +20,7 @@ #define DOC_SPRITE_GROUP_EMPTY "empty() -> None\nremove all Sprites" #define DOC_SPRITE_RENDERUPDATES "RenderUpdates(*sprites) -> RenderUpdates\nGroup sub-class that tracks dirty updates." #define DOC_SPRITE_RENDERUPDATES_DRAW "draw(surface) -> Rect_list\nblit the Sprite images and track changed areas" -#define DOC_SPRITE_LAYEREDUPDATES "LayeredUpdates(*sprites, **kwargs) -> LayeredUpdates\nLayeredUpdates is a sprite group that handles layers and draws like OrderedUpdates." +#define DOC_SPRITE_LAYEREDUPDATES "LayeredUpdates(*sprites, **kwargs) -> LayeredUpdates\nLayeredUpdates is a sprite group that handles layers and draws like RenderUpdates." #define DOC_SPRITE_LAYEREDUPDATES_ADD "add(*sprites, **kwargs) -> None\nadd a sprite or sequence of sprites to a group" #define DOC_SPRITE_LAYEREDUPDATES_SPRITES "sprites() -> sprites\nreturns a ordered list of sprites (first back, last top)." #define DOC_SPRITE_LAYEREDUPDATES_DRAW "draw(surface) -> Rect_list\ndraw all sprites in the right order onto the passed surface." diff --git a/src_py/sprite.py b/src_py/sprite.py index 5f36c598f0..8fcc0ae0ce 100644 --- a/src_py/sprite.py +++ b/src_py/sprite.py @@ -35,8 +35,7 @@ Group.draw() method requires that each Sprite have a Surface.image attribute and a Surface.rect. The Group.clear() method requires these same attributes and can be used to erase all the Sprites with background. There are also -more advanced Groups: pygame.sprite.RenderUpdates() and -pygame.sprite.OrderedUpdates(). +more advanced Groups: pygame.sprite.RenderUpdates(). Lastly, this module contains several collision functions. These help find sprites inside multiple groups that have intersecting bounding rectangles. @@ -659,7 +658,7 @@ class RenderPlain(Group): def __init__(self, *sprites): super().__init__(*sprites) warn( - "This class will be removed in version 2.4.0", + "This class is deprecated and will be removed in a future version.", DeprecationWarning, stacklevel=2, ) @@ -669,7 +668,7 @@ class RenderClear(Group): def __init__(self, *sprites): super().__init__(*sprites) warn( - "This class will be removed in version 2.4.0", + "This class is deprecated and will be removed in a future version.", DeprecationWarning, stacklevel=2, ) @@ -711,14 +710,14 @@ def __init__(self, *sprites): warn( "OrderedUpdates is now just an alias to RenderUpdates, order of " "sprites is now maintained in all sprite Group classes. This " - "class will be removed in version 2.4.0", + "class is deprecated and will be removed in a future version.", DeprecationWarning, stacklevel=2, ) class LayeredUpdates(AbstractGroup): - """LayeredUpdates Group handles layers, which are drawn like OrderedUpdates + """LayeredUpdates Group handles layers, which are drawn like RenderUpdates pygame.sprite.LayeredUpdates(*sprites, **kwargs): return LayeredUpdates diff --git a/test/sprite_test.py b/test/sprite_test.py index 8d573f3a18..5e852c8911 100644 --- a/test/sprite_test.py +++ b/test/sprite_test.py @@ -1340,7 +1340,6 @@ class SpriteTypeTest(SpriteBase, unittest.TestCase): sprite.Group, sprite.LayeredUpdates, sprite.RenderUpdates, - sprite.OrderedUpdates, ] @@ -1351,7 +1350,6 @@ class DirtySpriteTypeTest(SpriteBase, unittest.TestCase): sprite.Group, sprite.LayeredUpdates, sprite.RenderUpdates, - sprite.OrderedUpdates, sprite.LayeredDirty, ] From f47996829c707c85d37ac05a1a93e38d21336355 Mon Sep 17 00:00:00 2001 From: Ankith Date: Wed, 31 Jan 2024 16:49:22 +0530 Subject: [PATCH 24/31] Merge pull request #2704 from szabolcsdombi/patch-1 Fix Window parameter name allow_highdpi -> allow_high_dpi --- docs/reST/ref/window.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reST/ref/window.rst b/docs/reST/ref/window.rst index 83b8191d15..d123f9e6d2 100644 --- a/docs/reST/ref/window.rst +++ b/docs/reST/ref/window.rst @@ -39,7 +39,7 @@ :param bool input_focus: Create a window with input focus. :param bool mouse_focus: Create a window with mouse focus. :param bool foreign: Marks a window not created by SDL. - :param bool allow_highdpi: Create a window in high-DPI mode if supported. + :param bool allow_high_dpi: Create a window in high-DPI mode if supported. :param bool mouse_capture: Create a window that has the mouse captured (unrelated to INPUT_GRABBED). :param bool always_on_top: Create a window that is always presented above From 490838524fca8aa3c72cc07358e6a02febf03a22 Mon Sep 17 00:00:00 2001 From: Dan Lawrence Date: Sun, 4 Feb 2024 18:13:06 +0000 Subject: [PATCH 25/31] Merge pull request #2676 from gresm/docs-serve Serving documentation with a simple server. --- buildconfig/stubs/pygame/docs/__init__.pyi | 6 ++ buildconfig/stubs/pygame/docs/__main__.pyi | 1 + buildconfig/stubs/pygame/docs/serve.pyi | 13 +++++ buildconfig/stubs/pygame/docs/static.pyi | 4 ++ docs/__init__.py | 11 ++++ docs/__main__.py | 38 +++--------- docs/serve.py | 68 ++++++++++++++++++++++ docs/static.py | 24 ++++++++ setup.py | 4 +- test/docs_test.py | 4 +- 10 files changed, 139 insertions(+), 34 deletions(-) create mode 100644 buildconfig/stubs/pygame/docs/__init__.pyi create mode 100644 buildconfig/stubs/pygame/docs/__main__.pyi create mode 100644 buildconfig/stubs/pygame/docs/serve.pyi create mode 100644 buildconfig/stubs/pygame/docs/static.pyi create mode 100644 docs/__init__.py create mode 100644 docs/serve.py create mode 100644 docs/static.py diff --git a/buildconfig/stubs/pygame/docs/__init__.pyi b/buildconfig/stubs/pygame/docs/__init__.pyi new file mode 100644 index 0000000000..4bb1574cf0 --- /dev/null +++ b/buildconfig/stubs/pygame/docs/__init__.pyi @@ -0,0 +1,6 @@ +from pathlib import Path + +PKG_DIR: Path + + +def has_local_docs() -> bool: ... diff --git a/buildconfig/stubs/pygame/docs/__main__.pyi b/buildconfig/stubs/pygame/docs/__main__.pyi new file mode 100644 index 0000000000..5e866502ba --- /dev/null +++ b/buildconfig/stubs/pygame/docs/__main__.pyi @@ -0,0 +1 @@ +def main(): ... diff --git a/buildconfig/stubs/pygame/docs/serve.pyi b/buildconfig/stubs/pygame/docs/serve.pyi new file mode 100644 index 0000000000..75819495d8 --- /dev/null +++ b/buildconfig/stubs/pygame/docs/serve.pyi @@ -0,0 +1,13 @@ +from http.server import SimpleHTTPRequestHandler + + +class DocsHandler(SimpleHTTPRequestHandler): ... + + +def serve(address: str, port: str): ... + + +def main(): ... + + +TARGET: str diff --git a/buildconfig/stubs/pygame/docs/static.pyi b/buildconfig/stubs/pygame/docs/static.pyi new file mode 100644 index 0000000000..8dc04678a0 --- /dev/null +++ b/buildconfig/stubs/pygame/docs/static.pyi @@ -0,0 +1,4 @@ +def open_docs(): ... + + +def main(): ... diff --git a/docs/__init__.py b/docs/__init__.py new file mode 100644 index 0000000000..c08f91c075 --- /dev/null +++ b/docs/__init__.py @@ -0,0 +1,11 @@ +# python -m pygame.docs + +from pathlib import Path + + +PKG_DIR = Path(__file__).absolute().parent / "generated" + + +# for test suite to confirm pygame-ce built with local docs +def has_local_docs(): + return PKG_DIR.exists() diff --git a/docs/__main__.py b/docs/__main__.py index 20e8c781b2..7a66e01883 100644 --- a/docs/__main__.py +++ b/docs/__main__.py @@ -1,37 +1,15 @@ -# python -m pygame.docs +import platform -import os -import webbrowser -from urllib.parse import quote, urlunparse +from pygame.docs.serve import main as serve +from pygame.docs.static import main as static -def _iterpath(path): - path, last = os.path.split(path) - if last: - yield from _iterpath(path) - yield last - - -# for test suite to confirm pygame-ce built with local docs -def has_local_docs(): - pkg_dir = os.path.dirname(os.path.abspath(__file__)) - main_page = os.path.join(pkg_dir, "generated", "index.html") - return os.path.exists(main_page) - - -def open_docs(): - pkg_dir = os.path.dirname(os.path.abspath(__file__)) - main_page = os.path.join(pkg_dir, "generated", "index.html") - if os.path.exists(main_page): - url_path = quote("/".join(_iterpath(main_page))) - drive, rest = os.path.splitdrive(__file__) - if drive: - url_path = f"{drive}/{url_path}" - url = urlunparse(("file", "", url_path, "", "", "")) +def main(): + if platform.system() == "Linux": + serve() else: - url = "https://pyga.me/docs/" - webbrowser.open(url) + static() if __name__ == "__main__": - open_docs() + main() diff --git a/docs/serve.py b/docs/serve.py new file mode 100644 index 0000000000..3abf747328 --- /dev/null +++ b/docs/serve.py @@ -0,0 +1,68 @@ +# python -m pygame.docs.serve + +import sys +import webbrowser +from http.server import ThreadingHTTPServer, SimpleHTTPRequestHandler + +from pygame.docs import PKG_DIR, has_local_docs + + +class DocsHandler(SimpleHTTPRequestHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs, directory=str(PKG_DIR)) + + +def serve(address: str, port: int): + with ThreadingHTTPServer((address, port), DocsHandler) as httpd: + try: + httpd.serve_forever() + except KeyboardInterrupt: + print("\nKeyboard interrupt received, exiting.") + sys.exit(0) + + +TARGET = "localhost" + + +def main(): + print("Running a simple server to serve documentation.") + print( + "If you want to just open documentation files in the browser, " + "run 'python -m pygame.docs.static'." + ) + if not has_local_docs(): + print("ERROR: no local documentation found, cannot serve anything, exiting...") + sys.exit(1) + print("WARNING: this is not for production use!") + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument( + "port", + action="store", + default=8000, + type=int, + nargs="?", + help="specify alternate port (default: 8000)", + ) + parser.add_argument( + "--no-browser", + "-n", + action="store_false", + default=True, + dest="open_browser", + help="whether to open a browser tab", + ) + + parsed_args = parser.parse_args() + + print(f"Serving on: http://{TARGET}:{parsed_args.port}") + + if parsed_args.open_browser: + webbrowser.open(f"http://{TARGET}:{parsed_args.port}") + + serve(TARGET, parsed_args.port) + + +if __name__ == "__main__": + main() diff --git a/docs/static.py b/docs/static.py new file mode 100644 index 0000000000..20f289932c --- /dev/null +++ b/docs/static.py @@ -0,0 +1,24 @@ +import webbrowser + +from pygame.docs import PKG_DIR + + +def open_docs(): + main_page = PKG_DIR / "index.html" + if main_page.exists(): + url = main_page.as_uri() + else: + url = "https://pyga.me/docs/" + webbrowser.open(url) + + +def main(): + print("Opening local documentation files in the browser.") + print( + "If you want to run a simple server instead, run 'python -m pygame.docs.serve'." + ) + open_docs() + + +if __name__ == "__main__": + main() diff --git a/setup.py b/setup.py index 0e2f7441d5..94d6c1a87f 100644 --- a/setup.py +++ b/setup.py @@ -839,13 +839,13 @@ def filter_files(path_obj, all_files, allowed_files, disallowed_files): # Other files have too many issues for now. setup.py, buildconfig, etc - python_directories = ["src_py", "test", "examples"] + python_directories = ["src_py", "test", "examples", "docs", "--exclude", "docs/reST"] if self.lint: commands = { "clang-format": ["--dry-run", "--Werror", "-i"] + c_files, "black": ["--check", "--diff"] + python_directories, # Test directory has too much pylint warning for now - "pylint": ["src_py"], + "pylint": ["src_py", "docs"], } else: commands = { diff --git a/test/docs_test.py b/test/docs_test.py index de021a8eb4..c66221a108 100644 --- a/test/docs_test.py +++ b/test/docs_test.py @@ -6,11 +6,11 @@ class DocsIncludedTest(unittest.TestCase): def test_doc_import_works(self): - from pygame.docs.__main__ import has_local_docs, open_docs + from pygame.docs import has_local_docs, PKG_DIR @unittest.skipIf("CI" not in os.environ, "Docs not required for local builds") def test_docs_included(self): - from pygame.docs.__main__ import has_local_docs + from pygame.docs import has_local_docs self.assertTrue(has_local_docs()) From e6705f195441069edc103ff65d9141a1ac441da7 Mon Sep 17 00:00:00 2001 From: Dan Lawrence Date: Sun, 4 Feb 2024 18:37:25 +0000 Subject: [PATCH 26/31] Merge pull request #2644 from oddbookworm/remove-deprecations-in-examples removed use of depth param in examples --- examples/aliens.py | 3 +-- examples/arraydemo.py | 2 +- examples/blend_fill.py | 3 +-- examples/testsprite.py | 20 -------------------- examples/vgrade.py | 2 +- 5 files changed, 4 insertions(+), 26 deletions(-) diff --git a/examples/aliens.py b/examples/aliens.py index 57ddba98e1..cfb412bf78 100644 --- a/examples/aliens.py +++ b/examples/aliens.py @@ -239,8 +239,7 @@ def main(winstyle=0): fullscreen = False # Set the display mode winstyle = 0 # |FULLSCREEN - bestdepth = pygame.display.mode_ok(SCREENRECT.size, winstyle, 32) - screen = pygame.display.set_mode(SCREENRECT.size, winstyle, bestdepth) + screen = pygame.display.set_mode(SCREENRECT.size, winstyle) # Load images, assign to sprite classes # (do this before the classes are used, after screen setup) diff --git a/examples/arraydemo.py b/examples/arraydemo.py index 34a8e72422..4e40edd1f2 100644 --- a/examples/arraydemo.py +++ b/examples/arraydemo.py @@ -24,7 +24,7 @@ def surfdemo_show(array_img, name): "displays a surface, waits for user to continue" - screen = pygame.display.set_mode(array_img.shape[:2], 0, 32) + screen = pygame.display.set_mode(array_img.shape[:2]) surfarray.blit_array(screen, array_img) pygame.display.flip() pygame.display.set_caption(name) diff --git a/examples/blend_fill.py b/examples/blend_fill.py index cecd96d6ca..f23455ba05 100644 --- a/examples/blend_fill.py +++ b/examples/blend_fill.py @@ -33,7 +33,7 @@ def main(): step = 5 pygame.init() - screen = pygame.display.set_mode((640, 480), 0, 32) + screen = pygame.display.set_mode((640, 480)) screen.fill((100, 100, 100)) image = pygame.image.load(os.path.join(data_dir, "liquid.bmp")).convert() @@ -98,7 +98,6 @@ def main(): screen.fill((100, 100, 100)) screen.blit(image, (10, 10)) blendimage.blit(image, (0, 0)) - # blendimage.fill (color, (0, 0, 20, 20), blendtype) blendimage.fill(color, None, blendtype) screen.blit(blendimage, (200, 10)) print( diff --git a/examples/testsprite.py b/examples/testsprite.py index 5671c5d005..ef4497f683 100644 --- a/examples/testsprite.py +++ b/examples/testsprite.py @@ -74,26 +74,6 @@ print(screen_dims) -##class Thingy(pygame.sprite.Sprite): -## images = None -## def __init__(self): -## pygame.sprite.Sprite.__init__(self) -## self.image = Thingy.images[0] -## self.rect = self.image.get_rect() -## self.rect.x = randint(0, screen_dims[0]) -## self.rect.y = randint(0, screen_dims[1]) -## #self.vel = [randint(-10, 10), randint(-10, 10)] -## self.vel = [randint(-1, 1), randint(-1, 1)] -## -## def move(self): -## for i in [0, 1]: -## nv = self.rect[i] + self.vel[i] -## if nv >= screen_dims[i] or nv < 0: -## self.vel[i] = -self.vel[i] -## nv = self.rect[i] + self.vel[i] -## self.rect[i] = nv - - class Thingy(pygame.sprite.DirtySprite): images = None diff --git a/examples/vgrade.py b/examples/vgrade.py index 8efce6332e..0f22282a87 100644 --- a/examples/vgrade.py +++ b/examples/vgrade.py @@ -83,7 +83,7 @@ def main(): pygame.mixer.quit() # remove ALSA underflow messages for Debian squeeze size = 600, 400 os.environ["SDL_VIDEO_CENTERED"] = "1" - screen = pygame.display.set_mode(size, pygame.NOFRAME, 0) + screen = pygame.display.set_mode(size, pygame.NOFRAME) pygame.event.set_blocked(pygame.MOUSEMOTION) # keep our queue cleaner From a2ee8bc64b2d4f8bc93b63b9175fad7cd7f6e590 Mon Sep 17 00:00:00 2001 From: Charlie Hayden <46412508+Starbuck5@users.noreply.github.com> Date: Wed, 7 Feb 2024 00:15:22 -0800 Subject: [PATCH 27/31] Merge pull request #2710 from pygame-community/dependabot/github_actions/docker/metadata-action-5.5.1 Bump docker/metadata-action from 5.5.0 to 5.5.1 --- .github/workflows/build-manylinux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-manylinux.yml b/.github/workflows/build-manylinux.yml index c397daf4bc..dad4ab1721 100644 --- a/.github/workflows/build-manylinux.yml +++ b/.github/workflows/build-manylinux.yml @@ -95,7 +95,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@dbef88086f6cef02e264edb7dbf63250c17cef6c + uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 with: images: ghcr.io/${{ github.repository }}_${{ matrix.arch }} tags: type=raw,value=${{ hashFiles('buildconfig/manylinux-build/**') }} From b40742dc405be8117ae9cd9a727010afc0981559 Mon Sep 17 00:00:00 2001 From: Alberto <103119829+itzpr3d4t0r@users.noreply.github.com> Date: Fri, 9 Feb 2024 11:49:36 +0100 Subject: [PATCH 28/31] Merge pull request #2708 from itzpr3d4t0r/add-special-flags-links Add missing special_flags links --- docs/reST/ref/surface.rst | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/docs/reST/ref/surface.rst b/docs/reST/ref/surface.rst index 3e88ba7cf9..e4bfdb86fc 100644 --- a/docs/reST/ref/surface.rst +++ b/docs/reST/ref/surface.rst @@ -174,6 +174,7 @@ ``(source, dest, area, special_flags)`` - ``special_flags``: (optional) Controls the blending mode for drawing colors. + See :doc:`special_flags_list` for a list of possible values. **Notes** @@ -205,7 +206,8 @@ mode specified by special_flags. The sequence must have at least one (source, dest) pair. :param blit_sequence: a sequence of (source, dest) - :param special_flags: the flag(s) representing the blend mode used for each surface + :param special_flags: the flag(s) representing the blend mode used for each surface. + See :doc:`special_flags_list` for a list of possible values. :returns: ``None`` @@ -297,15 +299,8 @@ the Alpha (A part of ``RGBA``) is ignored unless the surface uses per pixel alpha (Surface has the ``SRCALPHA`` flag). - .. versionaddedold:: 1.8 - Optional ``special_flags``: ``BLEND_ADD``, ``BLEND_SUB``, - ``BLEND_MULT``, ``BLEND_MIN``, ``BLEND_MAX``. - - .. versionaddedold:: 1.8.1 - Optional ``special_flags``: ``BLEND_RGBA_ADD``, ``BLEND_RGBA_SUB``, - ``BLEND_RGBA_MULT``, ``BLEND_RGBA_MIN``, ``BLEND_RGBA_MAX`` - ``BLEND_RGB_ADD``, ``BLEND_RGB_SUB``, ``BLEND_RGB_MULT``, - ``BLEND_RGB_MIN``, ``BLEND_RGB_MAX``. + The special_flags argument controls how the colors are combined. See :doc:`special_flags_list` + for a list of possible values. This will return the affected Surface area. From 3326c5787b232be3c93ef53a194aa187dc9838c7 Mon Sep 17 00:00:00 2001 From: Charlie Hayden <46412508+Starbuck5@users.noreply.github.com> Date: Sun, 11 Feb 2024 13:34:23 -0800 Subject: [PATCH 29/31] Merge pull request #2715 from pygame-community/fix-test-runner-bug-reverssion Adapt test runner count tweak to be 3.12.1 only --- test/test_utils/test_runner.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/test_utils/test_runner.py b/test/test_utils/test_runner.py index b35192fc2a..f423909ce6 100644 --- a/test/test_utils/test_runner.py +++ b/test/test_utils/test_runner.py @@ -285,11 +285,11 @@ def run_test( print(output.read()) output.seek(0) - # change in way skipped tested counted from Python 3.12.1 onwards + # change in way skipped tested counted in Python 3.12.1 only (so far) + # This was changed and then reverted in 3.12.2 + # https://github.com/python/cpython/pull/114994 tests_run_and_skipped = results.testsRun - if sys.version_info.minor >= 13 or ( - sys.version_info.minor == 12 and sys.version_info.micro >= 1 - ): + if sys.version_info.minor == 12 and sys.version_info.micro == 1: tests_run_and_skipped += len(results.skipped) results = { From 5f5c0d4c5002d6d89ca7fb3e72a91f918f02c073 Mon Sep 17 00:00:00 2001 From: Charlie Hayden <46412508+Starbuck5@users.noreply.github.com> Date: Tue, 13 Feb 2024 22:53:35 -0800 Subject: [PATCH 30/31] Merge pull request #2703 from pygame-community/ankith26-bump-sdl-mixer Bump SDL_mixer to 2.8.0 (Adds wavpack support) --- buildconfig/config_win.py | 5 + buildconfig/download_win_prebuilt.py | 8 +- buildconfig/macdependencies/build_mac_deps.sh | 3 +- .../docker_base/Dockerfile-aarch64 | 7 +- .../docker_base/Dockerfile-i686 | 7 +- .../docker_base/Dockerfile-x86_64 | 7 +- .../docker_base/libxmp/build-libxmp.sh | 19 ++++ .../docker_base/libxmp/libxmp.sha512 | 1 + .../docker_base/sdl_libs/build-sdl2-libs.sh | 16 ++-- .../docker_base/sdl_libs/sdl2.sha512 | 2 +- .../docker_base/wavpack/build-wavpack.sh | 24 +++++ .../docker_base/wavpack/wavpack.sha512 | 1 + docs/reST/ref/mixer.rst | 20 ++++ docs/reST/ref/music.rst | 2 + examples/data/MIDI_sample.mid | Bin 0 -> 8444 bytes examples/data/attributions.txt | 4 + examples/data/house_lo.flac | Bin 0 -> 57482 bytes examples/data/house_lo.opus | Bin 0 -> 62583 bytes examples/data/house_lo.wv | Bin 0 -> 48216 bytes src_c/music.c | 17 +++- test/mixer_music_test.py | 86 +++++++++++++++++- test/mixer_test.py | 12 ++- 22 files changed, 214 insertions(+), 27 deletions(-) create mode 100644 buildconfig/manylinux-build/docker_base/libxmp/build-libxmp.sh create mode 100644 buildconfig/manylinux-build/docker_base/libxmp/libxmp.sha512 create mode 100644 buildconfig/manylinux-build/docker_base/wavpack/build-wavpack.sh create mode 100644 buildconfig/manylinux-build/docker_base/wavpack/wavpack.sha512 create mode 100644 examples/data/MIDI_sample.mid create mode 100644 examples/data/house_lo.flac create mode 100644 examples/data/house_lo.opus create mode 100644 examples/data/house_lo.wv diff --git a/buildconfig/config_win.py b/buildconfig/config_win.py index a3ae362cfe..886d860b4e 100644 --- a/buildconfig/config_win.py +++ b/buildconfig/config_win.py @@ -359,7 +359,10 @@ def __iter__(self): def _add_sdl2_dll_deps(DEPS): # MIXER DEPS.add_dll(r'(libogg-0|ogg)\.dll$', 'ogg', ['libogg-[1-9].*']) + # modplug replaced with libxmp after SDL_mixer 2.6.3 DEPS.add_dll(r'(lib)?modplug[-0-9]*\.dll$', 'modplug', ['*modplug-[0-9]*']) + DEPS.add_dll(r'libxmp.dll$', 'xmp', ['libxmp*']) + DEPS.add_dll(r'libwavpack[-0-9]*\.dll$', 'wavpack', ['libwavpack-[1-9].*']) DEPS.add_dll(r'(lib)?opus[-0-9]*\.dll$', 'opus', ['*opus-[0-9]*']) DEPS.add_dll(r'(lib)?opusfile[-0-9]*\.dll$', 'opusfile', ['*opusfile-[0-9]*']) # IMAGE @@ -431,6 +434,8 @@ def setup_prebuilt_sdl2(prebuilt_dir): 'ogg': mixerDep.path, 'modplug': mixerDep.path, + 'xmp': mixerDep.path, + 'wavpack': mixerDep.path, 'opus': mixerDep.path, 'opusfile': mixerDep.path, } diff --git a/buildconfig/download_win_prebuilt.py b/buildconfig/download_win_prebuilt.py index da37382218..091dae7da5 100644 --- a/buildconfig/download_win_prebuilt.py +++ b/buildconfig/download_win_prebuilt.py @@ -90,8 +90,8 @@ def get_urls(x86=True, x64=True): '2d4f131909af2985b5ebc5ed296d28628c87c243' ], [ - 'https://github.com/libsdl-org/SDL_mixer/releases/download/release-2.6.2/SDL2_mixer-devel-2.6.2-VC.zip', - '000e3ea8a50261d46dbd200fb450b93c59ed4482', + 'https://github.com/libsdl-org/SDL_mixer/releases/download/release-2.8.0/SDL2_mixer-devel-2.8.0-VC.zip', + 'a10411644e08cd94f29712f430c7b71c407ae76d', ], ]) if x86: @@ -212,12 +212,12 @@ def copy(src, dst): copy( os.path.join( temp_dir, - 'SDL2_mixer-devel-2.6.2-VC/SDL2_mixer-2.6.2' + 'SDL2_mixer-devel-2.8.0-VC/SDL2_mixer-2.8.0' ), os.path.join( move_to_dir, prebuilt_dir, - 'SDL2_mixer-2.6.2' + 'SDL2_mixer-2.8.0' ) ) copy( diff --git a/buildconfig/macdependencies/build_mac_deps.sh b/buildconfig/macdependencies/build_mac_deps.sh index d733307b32..7b1ddc57b6 100644 --- a/buildconfig/macdependencies/build_mac_deps.sh +++ b/buildconfig/macdependencies/build_mac_deps.sh @@ -88,11 +88,12 @@ bash bzip2/build-bzip2.sh bash freetype/build-freetype.sh # sdl_mixer deps -bash libmodplug/build-libmodplug.sh +bash libxmp/build-libxmp.sh bash ogg/build-ogg.sh bash flac/build-flac.sh bash mpg123/build-mpg123.sh bash opus/build-opus.sh # needs libogg (which is a container format) +bash wavpack/build-wavpack.sh # fluidsynth (for sdl_mixer) # bash gettext/build-gettext.sh diff --git a/buildconfig/manylinux-build/docker_base/Dockerfile-aarch64 b/buildconfig/manylinux-build/docker_base/Dockerfile-aarch64 index 007e9f864f..05a06c2597 100644 --- a/buildconfig/manylinux-build/docker_base/Dockerfile-aarch64 +++ b/buildconfig/manylinux-build/docker_base/Dockerfile-aarch64 @@ -91,8 +91,8 @@ RUN ["bash", "/sndfile_build/build-sndfile.sh"] ADD pulseaudio /pulseaudio_build/ RUN ["bash", "/pulseaudio_build/build-pulseaudio.sh"] -ADD libmodplug /libmodplug_build/ -RUN ["bash", "/libmodplug_build/build-libmodplug.sh"] +ADD libxmp /libxmp_build/ +RUN ["bash", "/libxmp_build/build-libxmp.sh"] ADD libffi /libffi_build/ RUN ["bash", "/libffi_build/build-libffi.sh"] @@ -107,6 +107,9 @@ RUN ["bash", "/glib_build/build-glib.sh"] ADD fluidsynth /fluidsynth_build/ RUN ["bash", "/fluidsynth_build/build-fluidsynth.sh"] +ADD wavpack /wavpack_build/ +RUN ["bash", "/wavpack_build/build-wavpack.sh"] + ADD sdl_libs /sdl_build/ RUN ["bash", "/sdl_build/build-sdl2-libs.sh"] diff --git a/buildconfig/manylinux-build/docker_base/Dockerfile-i686 b/buildconfig/manylinux-build/docker_base/Dockerfile-i686 index a1e632d8b6..a1154a30cd 100644 --- a/buildconfig/manylinux-build/docker_base/Dockerfile-i686 +++ b/buildconfig/manylinux-build/docker_base/Dockerfile-i686 @@ -91,8 +91,8 @@ RUN ["linux32", "bash", "/sndfile_build/build-sndfile.sh"] ADD pulseaudio /pulseaudio_build/ RUN ["linux32", "bash", "/pulseaudio_build/build-pulseaudio.sh"] -ADD libmodplug /libmodplug_build/ -RUN ["linux32", "bash", "/libmodplug_build/build-libmodplug.sh"] +ADD libxmp /libxmp_build/ +RUN ["linux32", "bash", "/libxmp_build/build-libxmp.sh"] ADD libffi /libffi_build/ RUN ["bash", "/libffi_build/build-libffi.sh"] @@ -107,6 +107,9 @@ RUN ["bash", "/glib_build/build-glib.sh"] ADD fluidsynth /fluidsynth_build/ RUN ["linux32", "bash", "/fluidsynth_build/build-fluidsynth.sh"] +ADD wavpack /wavpack_build/ +RUN ["linux32", "bash", "/wavpack_build/build-wavpack.sh"] + # Build and install SDL ADD sdl_libs /sdl_build/ RUN ["linux32", "bash", "/sdl_build/build-sdl2-libs.sh"] diff --git a/buildconfig/manylinux-build/docker_base/Dockerfile-x86_64 b/buildconfig/manylinux-build/docker_base/Dockerfile-x86_64 index 4217eea750..9b51b3bb6f 100644 --- a/buildconfig/manylinux-build/docker_base/Dockerfile-x86_64 +++ b/buildconfig/manylinux-build/docker_base/Dockerfile-x86_64 @@ -91,8 +91,8 @@ RUN ["bash", "/sndfile_build/build-sndfile.sh"] ADD pulseaudio /pulseaudio_build/ RUN ["bash", "/pulseaudio_build/build-pulseaudio.sh"] -ADD libmodplug /libmodplug_build/ -RUN ["bash", "/libmodplug_build/build-libmodplug.sh"] +ADD libxmp /libxmp_build/ +RUN ["bash", "/libxmp_build/build-libxmp.sh"] ADD libffi /libffi_build/ RUN ["bash", "/libffi_build/build-libffi.sh"] @@ -107,6 +107,9 @@ RUN ["bash", "/glib_build/build-glib.sh"] ADD fluidsynth /fluidsynth_build/ RUN ["bash", "/fluidsynth_build/build-fluidsynth.sh"] +ADD wavpack /wavpack_build/ +RUN ["bash", "/wavpack_build/build-wavpack.sh"] + ADD sdl_libs /sdl_build/ RUN ["bash", "/sdl_build/build-sdl2-libs.sh"] diff --git a/buildconfig/manylinux-build/docker_base/libxmp/build-libxmp.sh b/buildconfig/manylinux-build/docker_base/libxmp/build-libxmp.sh new file mode 100644 index 0000000000..c692aa4a06 --- /dev/null +++ b/buildconfig/manylinux-build/docker_base/libxmp/build-libxmp.sh @@ -0,0 +1,19 @@ +#!/bin/bash +set -e -x + +cd $(dirname `readlink -f "$0"`) + +XMP_VERSION=4.6.0 +XMP="libxmp-${XMP_VERSION}" + + +curl -sL --retry 10 https://github.com/libxmp/libxmp/releases/download/${XMP}/${XMP}.tar.gz > ${XMP}.tar.gz + +sha512sum -c libxmp.sha512 +tar xzf ${XMP}.tar.gz +cd ${XMP} + +cmake . $PG_BASE_CMAKE_FLAGS + +make +make install diff --git a/buildconfig/manylinux-build/docker_base/libxmp/libxmp.sha512 b/buildconfig/manylinux-build/docker_base/libxmp/libxmp.sha512 new file mode 100644 index 0000000000..a098b9a547 --- /dev/null +++ b/buildconfig/manylinux-build/docker_base/libxmp/libxmp.sha512 @@ -0,0 +1 @@ +d287544c9b569515f1a3fa92d8d930097b252e84f86cba5dd70e9b4460d0fa70754ece45dcc7ec314e434d821b43207d700afb12c9df80b467d73e9d029baafe libxmp-4.6.0.tar.gz diff --git a/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh b/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh index 1e0b82e628..3550c79422 100644 --- a/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh +++ b/buildconfig/manylinux-build/docker_base/sdl_libs/build-sdl2-libs.sh @@ -6,7 +6,7 @@ cd $(dirname `readlink -f "$0"`) SDL2="SDL2-2.28.5" IMG2="SDL2_image-2.8.2" TTF2="SDL2_ttf-2.22.0" -MIX2="SDL2_mixer-2.6.3" +MIX2="SDL2_mixer-2.8.0" # Download @@ -94,22 +94,22 @@ cd $MIX2 # libraries into the wheel. # We prefer libflac, mpg123 and ogg-vorbis over SDL vendored implementations # at the moment. This can be changed later if need arises. -# For now, libmodplug is preferred over libxmp (but this may need changing -# in the future) +# We don't build with libgme for now ./configure $PG_BASE_CONFIGURE_FLAGS \ --disable-dependency-tracking \ --disable-music-ogg-stb --enable-music-ogg-vorbis \ --disable-music-flac-drflac --enable-music-flac-libflac \ - --disable-music-mp3-drmp3 --enable-music-mp3-mpg123 \ - --enable-music-mod-modplug --disable-music-mod-mikmod-shared \ - --disable-music-mod-xmp --disable-music-mod-xmp-shared \ + --disable-music-mp3-drmp3 --disable-music-mp3-minimp3 --enable-music-mp3-mpg123 \ + --disable-music-mod-modplug \ + --enable-music-mod-xmp --disable-music-mod-xmp-shared \ --enable-music-midi-fluidsynth --disable-music-midi-fluidsynth-shared \ --enable-music-opus --disable-music-opus-shared \ + --enable-music-wavpack --disable-music-wavpack-shared \ --disable-music-ogg-vorbis-shared \ - --disable-music-ogg-tremor-shared \ + --disable-music-ogg-tremor \ --disable-music-flac-libflac-shared \ --disable-music-mp3-mpg123-shared \ - --disable-music-mod-modplug-shared + --disable-music-gme make make install diff --git a/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 b/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 index 71b3e49e4e..8501c2dcde 100644 --- a/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 +++ b/buildconfig/manylinux-build/docker_base/sdl_libs/sdl2.sha512 @@ -1,4 +1,4 @@ 12593eb78fcca877a8dfb78cf21a4e6feba7dc87c964de378ac462b36d8e41ecb587222cb41d5f56dd35b838e1b9867b8ae0cf2f4d2a01afaf23ac8c11edc84d SDL2-2.28.5.tar.gz 0ff345824f95158dfa72f83f9d4a540601c178cd759334bf849c14a2920b5330d0763413b58c08b3deba8d3a4ccb6ea2a8159f87efe4cbb0e8ea850f63d09454 SDL2_image-2.8.2.tar.gz -2e9da045d2fdab97236c3901b3d441834a67a47c8851ddfb817c9db6f23ed9fb355a5ef8d2158d0c9959a83934e8cd1b95db8a69eaddf8f7fcca115f01818740 SDL2_mixer-2.6.3.tar.gz +5ddbc4b0b5fad2e0844a503daa79564b912654192599ef8fa7698531f08323ce01801f6bb17b2b3905020a3df362a967b7566ae725eb085da991578cc0807aad SDL2_mixer-2.8.0.tar.gz 34a1d210d8f1b1e802139d65ba47e36033bb7881e75a8862c1b1c515565bef85e3d81ee42e952aa664de043debef387ba60088a9cf3ba3297413db39a13af912 SDL2_ttf-2.22.0.tar.gz diff --git a/buildconfig/manylinux-build/docker_base/wavpack/build-wavpack.sh b/buildconfig/manylinux-build/docker_base/wavpack/build-wavpack.sh new file mode 100644 index 0000000000..eb9992d86e --- /dev/null +++ b/buildconfig/manylinux-build/docker_base/wavpack/build-wavpack.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -e -x + +cd $(dirname `readlink -f "$0"`) + +WAVPACK_VERSION=5.6.0 +WAVPACK="wavpack-${WAVPACK_VERSION}" + +curl -sL --retry 10 https://github.com/dbry/WavPack/releases/download/${WAVPACK_VERSION}/${WAVPACK}.tar.xz > ${WAVPACK}.tar.xz + +sha512sum -c wavpack.sha512 +tar xf ${WAVPACK}.tar.xz +cd ${WAVPACK} + +if [[ "$MAC_ARCH" == "arm64" ]]; then + # As of now, wavpack builds fail on arm64 cross compilation when ASM + # optimisations are enabled, so disable it + export WAVPACK_EXTRA_M1_FLAGS="-DWAVPACK_ENABLE_ASM=OFF" +fi + +cmake . $PG_BASE_CMAKE_FLAGS $WAVPACK_EXTRA_M1_FLAGS + +make +make install diff --git a/buildconfig/manylinux-build/docker_base/wavpack/wavpack.sha512 b/buildconfig/manylinux-build/docker_base/wavpack/wavpack.sha512 new file mode 100644 index 0000000000..9cb53c6308 --- /dev/null +++ b/buildconfig/manylinux-build/docker_base/wavpack/wavpack.sha512 @@ -0,0 +1 @@ +7421eff1f6e18f2e698b367ca48f6773456d0fcb53241be70149a87eff2cdf14dd8a82845a016f59ed32c7df494d018e6e23495709d3a56500b0660f177d5c0f wavpack-5.6.0.tar.xz diff --git a/docs/reST/ref/mixer.rst b/docs/reST/ref/mixer.rst index b5701d6bc8..1eaa4b8a20 100644 --- a/docs/reST/ref/mixer.rst +++ b/docs/reST/ref/mixer.rst @@ -40,6 +40,26 @@ change the default buffer by calling :func:`pygame.mixer.pre_init` before :func:`pygame.mixer.init` or :func:`pygame.init` is called. For example: ``pygame.mixer.pre_init(44100,-16,2, 1024)`` +The following file formats are supported + + * ``WAV`` + + * ``MP3`` + + * ``OGG`` + + * ``FLAC`` + + * ``OPUS`` + + * ``WV`` (WavPack) + + * ``MOD`` ("Module file" family of music file formats) + + * ``MIDI`` (see the :func:`get_soundfont` and :func:`set_soundfont` methods) + +.. versionadded:: 2.5.0 Loading WV (Relies on SDL_mixer 2.8.0+) + .. function:: init diff --git a/docs/reST/ref/music.rst b/docs/reST/ref/music.rst index d94be59ea0..be4682cc7f 100644 --- a/docs/reST/ref/music.rst +++ b/docs/reST/ref/music.rst @@ -20,6 +20,8 @@ changed in pygame ``v2.0.2`` which got improved MP3 support. Consider using ``OGG`` file format for music as that can give slightly better compression than MP3 in most cases. +For a complete list of supported file formats, see the :mod:`pygame.mixer` doc page. + .. function:: load | :sl:`Load a music file for playback` diff --git a/examples/data/MIDI_sample.mid b/examples/data/MIDI_sample.mid new file mode 100644 index 0000000000000000000000000000000000000000..a52838c62bc5c43bd53d34fe98152901cb0d3c57 GIT binary patch literal 8444 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 QvTXgz!wMgAVTnry)(tVw>etQoaM^Y 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 literal 0 HcmV?d00001 diff --git a/examples/data/house_lo.opus b/examples/data/house_lo.opus new file mode 100644 index 0000000000000000000000000000000000000000..2bc9e4e053afb9377c6f7ad9791eebbd12ea1eda GIT binary patch literal 62583 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 z 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 literal 0 HcmV?d00001 diff --git a/examples/data/house_lo.wv b/examples/data/house_lo.wv new file mode 100644 index 0000000000000000000000000000000000000000..1d99c697938fb0bef58e7093f720b686477932b0 GIT binary patch literal 48216 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 literal 0 HcmV?d00001 diff --git a/src_c/music.c b/src_c/music.c index 1379116c1f..b6b733f90c 100644 --- a/src_c/music.c +++ b/src_c/music.c @@ -314,14 +314,17 @@ _get_type_from_hint(char *namehint) else if (SDL_strcasecmp(namehint, "OGG") == 0) { type = MUS_OGG; } -#ifdef MUS_OPUS else if (SDL_strcasecmp(namehint, "OPUS") == 0) { type = MUS_OPUS; } -#endif else if (SDL_strcasecmp(namehint, "FLAC") == 0) { type = MUS_FLAC; } +#if SDL_MIXER_VERSION_ATLEAST(2, 8, 0) + else if (SDL_strcasecmp(namehint, "WV") == 0) { + type = MUS_WAVPACK; + } +#endif else if (SDL_strcasecmp(namehint, "MPG") == 0 || SDL_strcasecmp(namehint, "MPEG") == 0 || SDL_strcasecmp(namehint, "MP3") == 0 || @@ -334,6 +337,7 @@ _get_type_from_hint(char *namehint) SDL_strcasecmp(namehint, "DBM") == 0 || SDL_strcasecmp(namehint, "DSM") == 0 || SDL_strcasecmp(namehint, "FAR") == 0 || + SDL_strcasecmp(namehint, "GDM") == 0 || SDL_strcasecmp(namehint, "IT") == 0 || SDL_strcasecmp(namehint, "MED") == 0 || SDL_strcasecmp(namehint, "MDL") == 0 || @@ -351,6 +355,15 @@ _get_type_from_hint(char *namehint) SDL_strcasecmp(namehint, "XM") == 0) { type = MUS_MOD; } +#if SDL_MIXER_VERSION_ATLEAST(2, 8, 0) + else if (SDL_strcasecmp(namehint, "GBS") == 0 || + SDL_strcasecmp(namehint, "M3U") == 0 || + SDL_strcasecmp(namehint, "NSF") == 0 || + SDL_strcasecmp(namehint, "SPC") == 0 || + SDL_strcasecmp(namehint, "VGM") == 0) { + type = MUS_GME; + } +#endif return type; } diff --git a/test/mixer_music_test.py b/test/mixer_music_test.py index 8cdb5f27ac..ec7a75d0b6 100644 --- a/test/mixer_music_test.py +++ b/test/mixer_music_test.py @@ -36,6 +36,27 @@ def test_load_wav(self): "|tags:music|" self.music_load("house_lo.wav") + def test_load_flac(self): + "|tags:music|" + self.music_load("house_lo.flac") + + @unittest.skipIf( + pygame.mixer.get_sdl_mixer_version() < (2, 8, 0), + "WavPack support added in SDL_mixer 2.8.0", + ) + def test_load_wv(self): + "|tags:music|" + self.music_load("house_lo.wv") + + def test_load_opus(self): + "|tags:music|" + self.music_load("house_lo.opus") + + def test_load_midi(self): + "|tags:music|" + if pygame.mixer.get_soundfont() is not None: + self.music_load("MIDI_sample.mid") + def test_load_xm(self): "|tags:music|" self.music_load("surfonasinewave.xm") @@ -54,10 +75,22 @@ def music_load(self, filename): def test_load_object(self): """test loading music from file-like objects.""" - filenames = ["house_lo.ogg", "house_lo.wav", "surfonasinewave.xm"] + filenames = [ + "house_lo.ogg", + "house_lo.wav", + "house_lo.flac", + "house_lo.opus", + "surfonasinewave.xm", + ] if pygame.mixer.get_sdl_mixer_version() >= (2, 6, 0): filenames.append("house_lo.mp3") + if pygame.mixer.get_sdl_mixer_version() >= (2, 8, 0): + filenames.append("house_lo.wv") + + if pygame.mixer.get_soundfont() is not None: + filenames.append("MIDI_sample.mid") + data_fname = example_path("data") for file in filenames: path = os.path.join(data_fname, file) @@ -70,10 +103,22 @@ def test_load_object(self): def test_object_namehint(self): """test loading & queuing music from file-like objects with namehint argument.""" - filenames = ["house_lo.ogg", "house_lo.wav", "surfonasinewave.xm"] + filenames = [ + "house_lo.ogg", + "house_lo.wav", + "house_lo.flac", + "house_lo.opus", + "surfonasinewave.xm", + ] if pygame.mixer.get_sdl_mixer_version() >= (2, 6, 0): filenames.append("house_lo.mp3") + if pygame.mixer.get_sdl_mixer_version() >= (2, 8, 0): + filenames.append("house_lo.wv") + + if pygame.mixer.get_soundfont() is not None: + filenames.append("MIDI_sample.mid") + data_fname = example_path("data") for file in filenames: path = os.path.join(data_fname, file) @@ -155,6 +200,43 @@ def test_queue_wav(self): filename = example_path(os.path.join("data", "house_lo.wav")) pygame.mixer.music.queue(filename) + def test_queue_flac(self): + """Ensures queue() accepts flac files. + + |tags:music| + """ + filename = example_path(os.path.join("data", "house_lo.flac")) + pygame.mixer.music.queue(filename) + + @unittest.skipIf( + pygame.mixer.get_sdl_mixer_version() < (2, 8, 0), + "WavPack support added in SDL_mixer 2.8.0", + ) + def test_queue_wv(self): + """Ensures queue() accepts wv files. + + |tags:music| + """ + filename = example_path(os.path.join("data", "house_lo.wv")) + pygame.mixer.music.queue(filename) + + def test_queue_opus(self): + """Ensures queue() accepts opus files. + + |tags:music| + """ + filename = example_path(os.path.join("data", "house_lo.opus")) + pygame.mixer.music.queue(filename) + + def test_queue_midi(self): + """Ensures queue() accepts midi files. + + |tags:music| + """ + if pygame.mixer.get_soundfont() is not None: + filename = example_path(os.path.join("data", "MIDI_sample.mid")) + pygame.mixer.music.queue(filename) + def test_queue_xm(self): """Ensures queue() accepts xm files (tracker music files). diff --git a/test/mixer_test.py b/test/mixer_test.py index 3400c375dd..76e9390d23 100644 --- a/test/mixer_test.py +++ b/test/mixer_test.py @@ -120,18 +120,24 @@ def test_set_soundfont(self): """Ensure soundfonts can be set, cleared, and retrieved""" mixer.init() + # test that initially, get_soundfont returns only real files + initial_sf = mixer.get_soundfont() + if initial_sf is not None: + for i in initial_sf.split(";"): + os.path.exists(i) + mixer.set_soundfont() self.assertEqual(mixer.get_soundfont(), None) mixer.set_soundfont(None) self.assertEqual(mixer.get_soundfont(), None) - mixer.set_soundfont("") - self.assertEqual(mixer.get_soundfont(), None) - mixer.set_soundfont("test1.sf2;test2.sf2") self.assertEqual(mixer.get_soundfont(), "test1.sf2;test2.sf2") + mixer.set_soundfont("") + self.assertEqual(mixer.get_soundfont(), None) + self.assertRaises(TypeError, mixer.set_soundfont, 0) self.assertRaises(TypeError, mixer.set_soundfont, ["one", "two"]) From 42e561262941f7ff99a3346e00897cc6ddd61786 Mon Sep 17 00:00:00 2001 From: Starbuck5 <46412508+Starbuck5@users.noreply.github.com> Date: Sun, 18 Feb 2024 22:23:57 -0800 Subject: [PATCH 31/31] 2.4.1 --- docs/reST/conf.py | 2 +- setup.py | 2 +- src_c/include/_pygame.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/reST/conf.py b/docs/reST/conf.py index d46d567db9..d87eeba9b4 100644 --- a/docs/reST/conf.py +++ b/docs/reST/conf.py @@ -49,7 +49,7 @@ # The short X.Y version. version = '2.4.1' # The full version, including alpha/beta/rc tags. -release = '2.4.1.dev1' +release = '2.4.1' # Format strings for the version directives versionadded_format = 'New in pygame-ce %s' diff --git a/setup.py b/setup.py index 94d6c1a87f..0ba5bf9c4e 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ METADATA = { "name": "pygame-ce", - "version": "2.4.1.dev1", + "version": "2.4.1", "license": "LGPL", "url": "https://pyga.me", "author": "A community project.", diff --git a/src_c/include/_pygame.h b/src_c/include/_pygame.h index c937862494..83a24218f9 100644 --- a/src_c/include/_pygame.h +++ b/src_c/include/_pygame.h @@ -60,7 +60,7 @@ #define PG_PATCH_VERSION 1 /* The below is of the form ".devX" for dev releases, and "" (empty) for full * releases */ -#define PG_VERSION_TAG ".dev1" +#define PG_VERSION_TAG "" #define PG_VERSIONNUM(MAJOR, MINOR, PATCH) \ (1000 * (MAJOR) + 100 * (MINOR) + (PATCH)) #define PG_VERSION_ATLEAST(MAJOR, MINOR, PATCH) \