From 0dd8d458980674d40f5504b47d0ee0889f5a3eef Mon Sep 17 00:00:00 2001 From: Amy Bowersox Date: Wed, 11 Dec 2019 14:14:17 -0700 Subject: [PATCH] now probing into the Python interface for devctx --- scripts/demo1.py | 9 +++------ src/ep_devctxt.c | 9 ++++++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/scripts/demo1.py b/scripts/demo1.py index f8e779b..767f327 100755 --- a/scripts/demo1.py +++ b/scripts/demo1.py @@ -7,13 +7,10 @@ LTGRAY = upiwin.rgb(204, 204, 204) YELLOW = upiwin.rgb(255, 255, 0) # Get the stock bitmaps. -print('GOT HERE 1') bmp_freehand = upiwin.Bitmap(stock='freehand') -print('GOT HERE 1A') bmp_line = upiwin.Bitmap(stock='line') bmp_rect = upiwin.Bitmap(stock='rect') bmp_fillrect = upiwin.Bitmap(stock='fillrect') -print('GOT HERE 2') hdc = upiwin.DevCtxt(type='screen') hdc_bits = upiwin.DevCtxt(type='memory') @@ -110,11 +107,11 @@ hdc.rectangle(cmd2_rect[0], cmd2_rect[1], cmd2_rect[2], cmd2_rect[3]) hdc.rectangle(cmd3_rect[0], cmd3_rect[1], cmd3_rect[2], cmd3_rect[3]) hdc.rectangle(cmd4_rect[0], cmd4_rect[1], cmd4_rect[2], cmd4_rect[3]) -print('GOT HERE 3') +print('GOT HERE 1') hdc_bits.select_object(bmp_freehand) -print('GOT HERE 4') +print('GOT HERE 2') hdc.bitblt(cmd1_rect[0] + 6, cmd1_rect[1] + 6, cmd1_rect[0] + 54, cmd1_rect[1] + 54, hdc_bits, 0, 0, 0) -print('GOT HERE 5') +print('GOT HERE 3') # Main message loop msg = {} diff --git a/src/ep_devctxt.c b/src/ep_devctxt.c index 87a407c..ab4f274 100755 --- a/src/ep_devctxt.c +++ b/src/ep_devctxt.c @@ -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");