Squashed commit of the following: [standardize_font_handling]
closes #60, closes #5, closes #68 The major functionality added here was proper use of types in the module, by importing after finalization. commit5009fa0fb9Author: John McCardle <mccardle.john@gmail.com> Date: Sun Apr 7 22:44:15 2024 -0400 PyFont - use the new standard method for instancing commita19781b56aAuthor: John McCardle <mccardle.john@gmail.com> Date: Sun Apr 7 15:21:17 2024 -0400 Many hours of pain & research behind this small commit. Safe object building by not messing with types before interpreter is fully initialized commit159658521cAuthor: John McCardle <mccardle.john@gmail.com> Date: Sun Mar 31 21:41:45 2024 -0400 Font mostly working, just a few weird bugs with the types of the default items added to the module
This commit is contained in:
parent
fbf263a038
commit
1a7186f745
8 changed files with 207 additions and 11 deletions
39
src/PyFont.h
Normal file
39
src/PyFont.h
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
#pragma once
|
||||
#include "Common.h"
|
||||
#include "Python.h"
|
||||
|
||||
class PyFont;
|
||||
|
||||
typedef struct {
|
||||
PyObject_HEAD
|
||||
std::shared_ptr<PyFont> data;
|
||||
} PyFontObject;
|
||||
|
||||
class PyFont : public std::enable_shared_from_this<PyFont>
|
||||
{
|
||||
private:
|
||||
std::string source;
|
||||
public:
|
||||
PyFont(std::string filename);
|
||||
sf::Font font;
|
||||
PyObject* pyObject();
|
||||
static PyObject* repr(PyObject*);
|
||||
static Py_hash_t hash(PyObject*);
|
||||
static int init(PyFontObject*, PyObject*, PyObject*);
|
||||
static PyObject* pynew(PyTypeObject* type, PyObject* args=NULL, PyObject* kwds=NULL);
|
||||
};
|
||||
|
||||
namespace mcrfpydef {
|
||||
static PyTypeObject PyFontType = {
|
||||
.tp_name = "mcrfpy.Font",
|
||||
.tp_basicsize = sizeof(PyFontObject),
|
||||
.tp_itemsize = 0,
|
||||
.tp_repr = PyFont::repr,
|
||||
//.tp_hash = PyFont::hash,
|
||||
.tp_flags = Py_TPFLAGS_DEFAULT,
|
||||
.tp_doc = PyDoc_STR("SFML Font Object"),
|
||||
//.tp_base = &PyBaseObject_Type,
|
||||
.tp_init = (initproc)PyFont::init,
|
||||
.tp_new = PyType_GenericNew, //PyFont::pynew,
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue