now probing into the Python interface for devctx

This commit is contained in:
Amy Bowersox
2019-12-11 14:14:17 -07:00
parent c283d06c12
commit 0dd8d45898
2 changed files with 11 additions and 7 deletions

View File

@@ -144,15 +144,19 @@ static PyObject *devctxt_select_bitmap(DevCtxtObject *self, BitmapObject *newbmp
BitmapObject *old_bitmap = NULL;
PBITMAP old_pbmp;
Log(LDEBUG, "select_bitmap entry");
if ((self->pdctxt->flags & DCFLG_TYPES) != DCFLG_IS_MEMORY)
{
PyErr_SetString(PyExc_RuntimeError, "must select bitmap into memory device context");
return NULL;
}
Log(LDEBUG, "verified 1");
old_bitmap = self->selected_bitmap;
old_pbmp = (PBITMAP)DC_SelectObject(self->pdctxt, (PGFXOBJECT)(newbmp->pbmp));
Log(LDEBUG, "old_bitmap present=%d, old_pbmp present=%d", !!old_bitmap, !!old_pbmp);
if (!old_bitmap)
{
Log(LDEBUG, "need to wrap old bitmap");
old_bitmap = (BitmapObject *)Epython_wrap_bitmap(old_pbmp);
if (!old_bitmap)
{
@@ -162,6 +166,7 @@ static PyObject *devctxt_select_bitmap(DevCtxtObject *self, BitmapObject *newbmp
else
Py_INCREF(old_bitmap);
}
Log(LDEBUG, "replacement sequence");
Py_DECREF(self->selected_bitmap);
self->selected_bitmap = newbmp;
Py_INCREF(self->selected_bitmap);
@@ -171,7 +176,8 @@ static PyObject *devctxt_select_bitmap(DevCtxtObject *self, BitmapObject *newbmp
static PyObject *devctxt_select_object(DevCtxtObject *self, PyObject *args)
{
PyObject *obj;
Log(LDEBUG, "select_object entry");
if (!PyArg_ParseTuple(args, "O", &obj))
return NULL;
if (!obj)
@@ -179,6 +185,7 @@ static PyObject *devctxt_select_object(DevCtxtObject *self, PyObject *args)
PyErr_SetString(PyExc_RuntimeError, "bad object selected");
return NULL;
}
Log(LDEBUG, "ready to comb objects");
if (PyObject_TypeCheck(obj, &BitmapType))
return devctxt_select_bitmap(self, (BitmapObject *)obj);
PyErr_SetString(PyExc_RuntimeError, "unknown type of object selected");