Skip to content

Commit 9710ba9

Browse files
committed
Port Renderer to C code
1 parent 8bc95e5 commit 9710ba9

File tree

2 files changed

+37
-34
lines changed

2 files changed

+37
-34
lines changed

src_c/renderer.c

+37-7
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,21 @@
66

77
#include "doc/sdl2_video_doc.h"
88

9-
#include "texture.c"
10-
#include "renderer_image.c"
11-
9+
/* Declarations */
1210
static PyTypeObject pgRenderer_Type;
1311

1412
static PyTypeObject pgTexture_Type;
1513

1614
static PyTypeObject pgImage_Type;
1715

16+
#define pgRenderer_Check(x) \
17+
(PyObject_IsInstance((x), (PyObject *)&pgRenderer_Type))
18+
19+
#define pgTexture_Check(x) \
20+
(PyObject_IsInstance((x), (PyObject *)&pgTexture_Type))
21+
22+
#define pgImage_Check(x) (PyObject_IsInstance((x), (PyObject *)&pgImage_Type))
23+
1824
#define RENDERER_ERROR_CHECK(x) \
1925
if (x < 0) { \
2026
return RAISE(pgExc_SDLError, SDL_GetError()); \
@@ -26,6 +32,13 @@ static PyTypeObject pgImage_Type;
2632
return -1; \
2733
}
2834

35+
static void
36+
texture_renderer_draw(pgTextureObject *self, PyObject *area, PyObject *dest);
37+
38+
static void
39+
image_renderer_draw(pgImageObject *self, PyObject *area, PyObject *dest);
40+
41+
/* Renderer implementation */
2942
static PyObject *
3043
from_window(PyTypeObject *cls, PyObject *args, PyObject *kwargs)
3144
{
@@ -663,6 +676,21 @@ renderer_dealloc(pgRendererObject *self, PyObject *_null)
663676
Py_TYPE(self)->tp_free(self);
664677
}
665678

679+
/* Texture implementation */
680+
static void
681+
texture_renderer_draw(pgTextureObject *self, PyObject *area, PyObject *dest)
682+
{
683+
; // TODO MightyJosip Implement with Texture class
684+
}
685+
686+
/* Image implementation */
687+
static void
688+
image_renderer_draw(pgImageObject *self, PyObject *area, PyObject *dest)
689+
{
690+
; // TODO MightyJosip Implement with Image class
691+
}
692+
693+
/* Module definition */
666694
static PyMethodDef renderer_methods[] = {
667695
{"draw_point", (PyCFunction)renderer_draw_point,
668696
METH_VARARGS | METH_KEYWORDS, DOC_SDL2_VIDEO_RENDERER_DRAWPOINT},
@@ -726,10 +754,12 @@ static PyGetSetDef image_getset[] = {{NULL, 0, NULL, NULL, NULL}};
726754
static PyTypeObject pgRenderer_Type = {
727755
PyVarObject_HEAD_INIT(NULL, 0).tp_name = "pygame._renderer.Renderer",
728756
.tp_basicsize = sizeof(pgRendererObject),
729-
//.tp_dealloc = (destructor)renderer_dealloc,
730-
.tp_doc = DOC_SDL2_VIDEO_RENDERER, .tp_methods = renderer_methods,
731-
//.tp_init = (initproc)renderer_init,
732-
.tp_new = PyType_GenericNew, .tp_getset = renderer_getset};
757+
.tp_dealloc = (destructor)renderer_dealloc,
758+
.tp_doc = DOC_SDL2_VIDEO_RENDERER,
759+
.tp_methods = renderer_methods,
760+
.tp_init = (initproc)renderer_init,
761+
.tp_new = PyType_GenericNew,
762+
.tp_getset = renderer_getset};
733763

734764
static PyTypeObject pgTexture_Type = {
735765
PyVarObject_HEAD_INIT(NULL, 0).tp_name = "pygame._renderer.Texture",

src_c/renderer_image.c

-27
This file was deleted.

0 commit comments

Comments
 (0)