ยปCore Development>Code coverage>Mac/Modules/qdoffs/_Qdoffsmodule.c

Python code coverage for Mac/Modules/qdoffs/_Qdoffsmodule.c

#countcontent
1n/a
2n/a/* ========================= Module _Qdoffs ========================= */
3n/a
4n/a#include "Python.h"
5n/a
6n/a
7n/a#ifndef __LP64__
8n/a
9n/a#include "pymactoolbox.h"
10n/a
11n/a/* Macro to test whether a weak-loaded CFM function exists */
12n/a#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
13n/a PyErr_SetString(PyExc_NotImplementedError, \
14n/a "Not available in this shared library/OS version"); \
15n/a return NULL; \
16n/a }} while(0)
17n/a
18n/a
19n/a#include <Carbon/Carbon.h>
20n/a
21n/a#ifdef USE_TOOLBOX_OBJECT_GLUE
22n/aextern PyObject *_GWorldObj_New(GWorldPtr);
23n/aextern int _GWorldObj_Convert(PyObject *, GWorldPtr *);
24n/a
25n/a#define GWorldObj_New _GWorldObj_New
26n/a#define GWorldObj_Convert _GWorldObj_Convert
27n/a#endif
28n/a
29n/a#define as_GrafPtr(gworld) ((GrafPtr)(gworld))
30n/a
31n/a
32n/astatic PyObject *Qdoffs_Error;
33n/a
34n/a/* ----------------------- Object type GWorld ----------------------- */
35n/a
36n/aPyTypeObject GWorld_Type;
37n/a
38n/a#define GWorldObj_Check(x) ((x)->ob_type == &GWorld_Type || PyObject_TypeCheck((x), &GWorld_Type))
39n/a
40n/atypedef struct GWorldObject {
41n/a PyObject_HEAD
42n/a GWorldPtr ob_itself;
43n/a} GWorldObject;
44n/a
45n/aPyObject *GWorldObj_New(GWorldPtr itself)
46n/a{
47n/a GWorldObject *it;
48n/a if (itself == NULL) return PyMac_Error(resNotFound);
49n/a it = PyObject_NEW(GWorldObject, &GWorld_Type);
50n/a if (it == NULL) return NULL;
51n/a it->ob_itself = itself;
52n/a return (PyObject *)it;
53n/a}
54n/a
55n/aint GWorldObj_Convert(PyObject *v, GWorldPtr *p_itself)
56n/a{
57n/a if (!GWorldObj_Check(v))
58n/a {
59n/a PyErr_SetString(PyExc_TypeError, "GWorld required");
60n/a return 0;
61n/a }
62n/a *p_itself = ((GWorldObject *)v)->ob_itself;
63n/a return 1;
64n/a}
65n/a
66n/astatic void GWorldObj_dealloc(GWorldObject *self)
67n/a{
68n/a DisposeGWorld(self->ob_itself);
69n/a self->ob_type->tp_free((PyObject *)self);
70n/a}
71n/a
72n/astatic PyObject *GWorldObj_GetGWorldDevice(GWorldObject *_self, PyObject *_args)
73n/a{
74n/a PyObject *_res = NULL;
75n/a GDHandle _rv;
76n/a#ifndef GetGWorldDevice
77n/a PyMac_PRECHECK(GetGWorldDevice);
78n/a#endif
79n/a if (!PyArg_ParseTuple(_args, ""))
80n/a return NULL;
81n/a _rv = GetGWorldDevice(_self->ob_itself);
82n/a _res = Py_BuildValue("O&",
83n/a ResObj_New, _rv);
84n/a return _res;
85n/a}
86n/a
87n/astatic PyObject *GWorldObj_GetGWorldPixMap(GWorldObject *_self, PyObject *_args)
88n/a{
89n/a PyObject *_res = NULL;
90n/a PixMapHandle _rv;
91n/a#ifndef GetGWorldPixMap
92n/a PyMac_PRECHECK(GetGWorldPixMap);
93n/a#endif
94n/a if (!PyArg_ParseTuple(_args, ""))
95n/a return NULL;
96n/a _rv = GetGWorldPixMap(_self->ob_itself);
97n/a _res = Py_BuildValue("O&",
98n/a ResObj_New, _rv);
99n/a return _res;
100n/a}
101n/a
102n/astatic PyObject *GWorldObj_as_GrafPtr(GWorldObject *_self, PyObject *_args)
103n/a{
104n/a PyObject *_res = NULL;
105n/a GrafPtr _rv;
106n/a#ifndef as_GrafPtr
107n/a PyMac_PRECHECK(as_GrafPtr);
108n/a#endif
109n/a if (!PyArg_ParseTuple(_args, ""))
110n/a return NULL;
111n/a _rv = as_GrafPtr(_self->ob_itself);
112n/a _res = Py_BuildValue("O&",
113n/a GrafObj_New, _rv);
114n/a return _res;
115n/a}
116n/a
117n/astatic PyMethodDef GWorldObj_methods[] = {
118n/a {"GetGWorldDevice", (PyCFunction)GWorldObj_GetGWorldDevice, 1,
119n/a PyDoc_STR("() -> (GDHandle _rv)")},
120n/a {"GetGWorldPixMap", (PyCFunction)GWorldObj_GetGWorldPixMap, 1,
121n/a PyDoc_STR("() -> (PixMapHandle _rv)")},
122n/a {"as_GrafPtr", (PyCFunction)GWorldObj_as_GrafPtr, 1,
123n/a PyDoc_STR("() -> (GrafPtr _rv)")},
124n/a {NULL, NULL, 0}
125n/a};
126n/a
127n/a#define GWorldObj_getsetlist NULL
128n/a
129n/a
130n/a#define GWorldObj_compare NULL
131n/a
132n/a#define GWorldObj_repr NULL
133n/a
134n/a#define GWorldObj_hash NULL
135n/a#define GWorldObj_tp_init 0
136n/a
137n/a#define GWorldObj_tp_alloc PyType_GenericAlloc
138n/a
139n/astatic PyObject *GWorldObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
140n/a{
141n/a PyObject *_self;
142n/a GWorldPtr itself;
143n/a char *kw[] = {"itself", 0};
144n/a
145n/a if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, GWorldObj_Convert, &itself)) return NULL;
146n/a if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
147n/a ((GWorldObject *)_self)->ob_itself = itself;
148n/a return _self;
149n/a}
150n/a
151n/a#define GWorldObj_tp_free PyObject_Del
152n/a
153n/a
154n/aPyTypeObject GWorld_Type = {
155n/a PyObject_HEAD_INIT(NULL)
156n/a 0, /*ob_size*/
157n/a "_Qdoffs.GWorld", /*tp_name*/
158n/a sizeof(GWorldObject), /*tp_basicsize*/
159n/a 0, /*tp_itemsize*/
160n/a /* methods */
161n/a (destructor) GWorldObj_dealloc, /*tp_dealloc*/
162n/a 0, /*tp_print*/
163n/a (getattrfunc)0, /*tp_getattr*/
164n/a (setattrfunc)0, /*tp_setattr*/
165n/a (cmpfunc) GWorldObj_compare, /*tp_compare*/
166n/a (reprfunc) GWorldObj_repr, /*tp_repr*/
167n/a (PyNumberMethods *)0, /* tp_as_number */
168n/a (PySequenceMethods *)0, /* tp_as_sequence */
169n/a (PyMappingMethods *)0, /* tp_as_mapping */
170n/a (hashfunc) GWorldObj_hash, /*tp_hash*/
171n/a 0, /*tp_call*/
172n/a 0, /*tp_str*/
173n/a PyObject_GenericGetAttr, /*tp_getattro*/
174n/a PyObject_GenericSetAttr, /*tp_setattro */
175n/a 0, /*tp_as_buffer*/
176n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
177n/a 0, /*tp_doc*/
178n/a 0, /*tp_traverse*/
179n/a 0, /*tp_clear*/
180n/a 0, /*tp_richcompare*/
181n/a 0, /*tp_weaklistoffset*/
182n/a 0, /*tp_iter*/
183n/a 0, /*tp_iternext*/
184n/a GWorldObj_methods, /* tp_methods */
185n/a 0, /*tp_members*/
186n/a GWorldObj_getsetlist, /*tp_getset*/
187n/a 0, /*tp_base*/
188n/a 0, /*tp_dict*/
189n/a 0, /*tp_descr_get*/
190n/a 0, /*tp_descr_set*/
191n/a 0, /*tp_dictoffset*/
192n/a GWorldObj_tp_init, /* tp_init */
193n/a GWorldObj_tp_alloc, /* tp_alloc */
194n/a GWorldObj_tp_new, /* tp_new */
195n/a GWorldObj_tp_free, /* tp_free */
196n/a};
197n/a
198n/a/* --------------------- End object type GWorld --------------------- */
199n/a
200n/a
201n/astatic PyObject *Qdoffs_NewGWorld(PyObject *_self, PyObject *_args)
202n/a{
203n/a PyObject *_res = NULL;
204n/a QDErr _err;
205n/a GWorldPtr offscreenGWorld;
206n/a short PixelDepth;
207n/a Rect boundsRect;
208n/a CTabHandle cTable;
209n/a GDHandle aGDevice;
210n/a GWorldFlags flags;
211n/a#ifndef NewGWorld
212n/a PyMac_PRECHECK(NewGWorld);
213n/a#endif
214n/a if (!PyArg_ParseTuple(_args, "hO&O&O&l",
215n/a &PixelDepth,
216n/a PyMac_GetRect, &boundsRect,
217n/a OptResObj_Convert, &cTable,
218n/a OptResObj_Convert, &aGDevice,
219n/a &flags))
220n/a return NULL;
221n/a _err = NewGWorld(&offscreenGWorld,
222n/a PixelDepth,
223n/a &boundsRect,
224n/a cTable,
225n/a aGDevice,
226n/a flags);
227n/a if (_err != noErr) return PyMac_Error(_err);
228n/a _res = Py_BuildValue("O&",
229n/a GWorldObj_New, offscreenGWorld);
230n/a return _res;
231n/a}
232n/a
233n/astatic PyObject *Qdoffs_LockPixels(PyObject *_self, PyObject *_args)
234n/a{
235n/a PyObject *_res = NULL;
236n/a Boolean _rv;
237n/a PixMapHandle pm;
238n/a#ifndef LockPixels
239n/a PyMac_PRECHECK(LockPixels);
240n/a#endif
241n/a if (!PyArg_ParseTuple(_args, "O&",
242n/a ResObj_Convert, &pm))
243n/a return NULL;
244n/a _rv = LockPixels(pm);
245n/a _res = Py_BuildValue("b",
246n/a _rv);
247n/a return _res;
248n/a}
249n/a
250n/astatic PyObject *Qdoffs_UnlockPixels(PyObject *_self, PyObject *_args)
251n/a{
252n/a PyObject *_res = NULL;
253n/a PixMapHandle pm;
254n/a#ifndef UnlockPixels
255n/a PyMac_PRECHECK(UnlockPixels);
256n/a#endif
257n/a if (!PyArg_ParseTuple(_args, "O&",
258n/a ResObj_Convert, &pm))
259n/a return NULL;
260n/a UnlockPixels(pm);
261n/a Py_INCREF(Py_None);
262n/a _res = Py_None;
263n/a return _res;
264n/a}
265n/a
266n/astatic PyObject *Qdoffs_UpdateGWorld(PyObject *_self, PyObject *_args)
267n/a{
268n/a PyObject *_res = NULL;
269n/a GWorldFlags _rv;
270n/a GWorldPtr offscreenGWorld;
271n/a short pixelDepth;
272n/a Rect boundsRect;
273n/a CTabHandle cTable;
274n/a GDHandle aGDevice;
275n/a GWorldFlags flags;
276n/a#ifndef UpdateGWorld
277n/a PyMac_PRECHECK(UpdateGWorld);
278n/a#endif
279n/a if (!PyArg_ParseTuple(_args, "hO&O&O&l",
280n/a &pixelDepth,
281n/a PyMac_GetRect, &boundsRect,
282n/a OptResObj_Convert, &cTable,
283n/a OptResObj_Convert, &aGDevice,
284n/a &flags))
285n/a return NULL;
286n/a _rv = UpdateGWorld(&offscreenGWorld,
287n/a pixelDepth,
288n/a &boundsRect,
289n/a cTable,
290n/a aGDevice,
291n/a flags);
292n/a _res = Py_BuildValue("lO&",
293n/a _rv,
294n/a GWorldObj_New, offscreenGWorld);
295n/a return _res;
296n/a}
297n/a
298n/astatic PyObject *Qdoffs_GetGWorld(PyObject *_self, PyObject *_args)
299n/a{
300n/a PyObject *_res = NULL;
301n/a CGrafPtr port;
302n/a GDHandle gdh;
303n/a#ifndef GetGWorld
304n/a PyMac_PRECHECK(GetGWorld);
305n/a#endif
306n/a if (!PyArg_ParseTuple(_args, ""))
307n/a return NULL;
308n/a GetGWorld(&port,
309n/a &gdh);
310n/a _res = Py_BuildValue("O&O&",
311n/a GrafObj_New, port,
312n/a ResObj_New, gdh);
313n/a return _res;
314n/a}
315n/a
316n/astatic PyObject *Qdoffs_SetGWorld(PyObject *_self, PyObject *_args)
317n/a{
318n/a PyObject *_res = NULL;
319n/a CGrafPtr port;
320n/a GDHandle gdh;
321n/a#ifndef SetGWorld
322n/a PyMac_PRECHECK(SetGWorld);
323n/a#endif
324n/a if (!PyArg_ParseTuple(_args, "O&O&",
325n/a GrafObj_Convert, &port,
326n/a OptResObj_Convert, &gdh))
327n/a return NULL;
328n/a SetGWorld(port,
329n/a gdh);
330n/a Py_INCREF(Py_None);
331n/a _res = Py_None;
332n/a return _res;
333n/a}
334n/a
335n/astatic PyObject *Qdoffs_CTabChanged(PyObject *_self, PyObject *_args)
336n/a{
337n/a PyObject *_res = NULL;
338n/a CTabHandle ctab;
339n/a#ifndef CTabChanged
340n/a PyMac_PRECHECK(CTabChanged);
341n/a#endif
342n/a if (!PyArg_ParseTuple(_args, "O&",
343n/a OptResObj_Convert, &ctab))
344n/a return NULL;
345n/a CTabChanged(ctab);
346n/a Py_INCREF(Py_None);
347n/a _res = Py_None;
348n/a return _res;
349n/a}
350n/a
351n/astatic PyObject *Qdoffs_PixPatChanged(PyObject *_self, PyObject *_args)
352n/a{
353n/a PyObject *_res = NULL;
354n/a PixPatHandle ppat;
355n/a#ifndef PixPatChanged
356n/a PyMac_PRECHECK(PixPatChanged);
357n/a#endif
358n/a if (!PyArg_ParseTuple(_args, "O&",
359n/a ResObj_Convert, &ppat))
360n/a return NULL;
361n/a PixPatChanged(ppat);
362n/a Py_INCREF(Py_None);
363n/a _res = Py_None;
364n/a return _res;
365n/a}
366n/a
367n/astatic PyObject *Qdoffs_PortChanged(PyObject *_self, PyObject *_args)
368n/a{
369n/a PyObject *_res = NULL;
370n/a GrafPtr port;
371n/a#ifndef PortChanged
372n/a PyMac_PRECHECK(PortChanged);
373n/a#endif
374n/a if (!PyArg_ParseTuple(_args, "O&",
375n/a GrafObj_Convert, &port))
376n/a return NULL;
377n/a PortChanged(port);
378n/a Py_INCREF(Py_None);
379n/a _res = Py_None;
380n/a return _res;
381n/a}
382n/a
383n/astatic PyObject *Qdoffs_GDeviceChanged(PyObject *_self, PyObject *_args)
384n/a{
385n/a PyObject *_res = NULL;
386n/a GDHandle gdh;
387n/a#ifndef GDeviceChanged
388n/a PyMac_PRECHECK(GDeviceChanged);
389n/a#endif
390n/a if (!PyArg_ParseTuple(_args, "O&",
391n/a OptResObj_Convert, &gdh))
392n/a return NULL;
393n/a GDeviceChanged(gdh);
394n/a Py_INCREF(Py_None);
395n/a _res = Py_None;
396n/a return _res;
397n/a}
398n/a
399n/astatic PyObject *Qdoffs_AllowPurgePixels(PyObject *_self, PyObject *_args)
400n/a{
401n/a PyObject *_res = NULL;
402n/a PixMapHandle pm;
403n/a#ifndef AllowPurgePixels
404n/a PyMac_PRECHECK(AllowPurgePixels);
405n/a#endif
406n/a if (!PyArg_ParseTuple(_args, "O&",
407n/a ResObj_Convert, &pm))
408n/a return NULL;
409n/a AllowPurgePixels(pm);
410n/a Py_INCREF(Py_None);
411n/a _res = Py_None;
412n/a return _res;
413n/a}
414n/a
415n/astatic PyObject *Qdoffs_NoPurgePixels(PyObject *_self, PyObject *_args)
416n/a{
417n/a PyObject *_res = NULL;
418n/a PixMapHandle pm;
419n/a#ifndef NoPurgePixels
420n/a PyMac_PRECHECK(NoPurgePixels);
421n/a#endif
422n/a if (!PyArg_ParseTuple(_args, "O&",
423n/a ResObj_Convert, &pm))
424n/a return NULL;
425n/a NoPurgePixels(pm);
426n/a Py_INCREF(Py_None);
427n/a _res = Py_None;
428n/a return _res;
429n/a}
430n/a
431n/astatic PyObject *Qdoffs_GetPixelsState(PyObject *_self, PyObject *_args)
432n/a{
433n/a PyObject *_res = NULL;
434n/a GWorldFlags _rv;
435n/a PixMapHandle pm;
436n/a#ifndef GetPixelsState
437n/a PyMac_PRECHECK(GetPixelsState);
438n/a#endif
439n/a if (!PyArg_ParseTuple(_args, "O&",
440n/a ResObj_Convert, &pm))
441n/a return NULL;
442n/a _rv = GetPixelsState(pm);
443n/a _res = Py_BuildValue("l",
444n/a _rv);
445n/a return _res;
446n/a}
447n/a
448n/astatic PyObject *Qdoffs_SetPixelsState(PyObject *_self, PyObject *_args)
449n/a{
450n/a PyObject *_res = NULL;
451n/a PixMapHandle pm;
452n/a GWorldFlags state;
453n/a#ifndef SetPixelsState
454n/a PyMac_PRECHECK(SetPixelsState);
455n/a#endif
456n/a if (!PyArg_ParseTuple(_args, "O&l",
457n/a ResObj_Convert, &pm,
458n/a &state))
459n/a return NULL;
460n/a SetPixelsState(pm,
461n/a state);
462n/a Py_INCREF(Py_None);
463n/a _res = Py_None;
464n/a return _res;
465n/a}
466n/a
467n/astatic PyObject *Qdoffs_GetPixRowBytes(PyObject *_self, PyObject *_args)
468n/a{
469n/a PyObject *_res = NULL;
470n/a long _rv;
471n/a PixMapHandle pm;
472n/a#ifndef GetPixRowBytes
473n/a PyMac_PRECHECK(GetPixRowBytes);
474n/a#endif
475n/a if (!PyArg_ParseTuple(_args, "O&",
476n/a ResObj_Convert, &pm))
477n/a return NULL;
478n/a _rv = GetPixRowBytes(pm);
479n/a _res = Py_BuildValue("l",
480n/a _rv);
481n/a return _res;
482n/a}
483n/a
484n/astatic PyObject *Qdoffs_NewScreenBuffer(PyObject *_self, PyObject *_args)
485n/a{
486n/a PyObject *_res = NULL;
487n/a QDErr _err;
488n/a Rect globalRect;
489n/a Boolean purgeable;
490n/a GDHandle gdh;
491n/a PixMapHandle offscreenPixMap;
492n/a#ifndef NewScreenBuffer
493n/a PyMac_PRECHECK(NewScreenBuffer);
494n/a#endif
495n/a if (!PyArg_ParseTuple(_args, "O&b",
496n/a PyMac_GetRect, &globalRect,
497n/a &purgeable))
498n/a return NULL;
499n/a _err = NewScreenBuffer(&globalRect,
500n/a purgeable,
501n/a &gdh,
502n/a &offscreenPixMap);
503n/a if (_err != noErr) return PyMac_Error(_err);
504n/a _res = Py_BuildValue("O&O&",
505n/a ResObj_New, gdh,
506n/a ResObj_New, offscreenPixMap);
507n/a return _res;
508n/a}
509n/a
510n/astatic PyObject *Qdoffs_DisposeScreenBuffer(PyObject *_self, PyObject *_args)
511n/a{
512n/a PyObject *_res = NULL;
513n/a PixMapHandle offscreenPixMap;
514n/a#ifndef DisposeScreenBuffer
515n/a PyMac_PRECHECK(DisposeScreenBuffer);
516n/a#endif
517n/a if (!PyArg_ParseTuple(_args, "O&",
518n/a ResObj_Convert, &offscreenPixMap))
519n/a return NULL;
520n/a DisposeScreenBuffer(offscreenPixMap);
521n/a Py_INCREF(Py_None);
522n/a _res = Py_None;
523n/a return _res;
524n/a}
525n/a
526n/astatic PyObject *Qdoffs_QDDone(PyObject *_self, PyObject *_args)
527n/a{
528n/a PyObject *_res = NULL;
529n/a Boolean _rv;
530n/a GrafPtr port;
531n/a#ifndef QDDone
532n/a PyMac_PRECHECK(QDDone);
533n/a#endif
534n/a if (!PyArg_ParseTuple(_args, "O&",
535n/a GrafObj_Convert, &port))
536n/a return NULL;
537n/a _rv = QDDone(port);
538n/a _res = Py_BuildValue("b",
539n/a _rv);
540n/a return _res;
541n/a}
542n/a
543n/astatic PyObject *Qdoffs_OffscreenVersion(PyObject *_self, PyObject *_args)
544n/a{
545n/a PyObject *_res = NULL;
546n/a long _rv;
547n/a#ifndef OffscreenVersion
548n/a PyMac_PRECHECK(OffscreenVersion);
549n/a#endif
550n/a if (!PyArg_ParseTuple(_args, ""))
551n/a return NULL;
552n/a _rv = OffscreenVersion();
553n/a _res = Py_BuildValue("l",
554n/a _rv);
555n/a return _res;
556n/a}
557n/a
558n/astatic PyObject *Qdoffs_NewTempScreenBuffer(PyObject *_self, PyObject *_args)
559n/a{
560n/a PyObject *_res = NULL;
561n/a QDErr _err;
562n/a Rect globalRect;
563n/a Boolean purgeable;
564n/a GDHandle gdh;
565n/a PixMapHandle offscreenPixMap;
566n/a#ifndef NewTempScreenBuffer
567n/a PyMac_PRECHECK(NewTempScreenBuffer);
568n/a#endif
569n/a if (!PyArg_ParseTuple(_args, "O&b",
570n/a PyMac_GetRect, &globalRect,
571n/a &purgeable))
572n/a return NULL;
573n/a _err = NewTempScreenBuffer(&globalRect,
574n/a purgeable,
575n/a &gdh,
576n/a &offscreenPixMap);
577n/a if (_err != noErr) return PyMac_Error(_err);
578n/a _res = Py_BuildValue("O&O&",
579n/a ResObj_New, gdh,
580n/a ResObj_New, offscreenPixMap);
581n/a return _res;
582n/a}
583n/a
584n/astatic PyObject *Qdoffs_PixMap32Bit(PyObject *_self, PyObject *_args)
585n/a{
586n/a PyObject *_res = NULL;
587n/a Boolean _rv;
588n/a PixMapHandle pmHandle;
589n/a#ifndef PixMap32Bit
590n/a PyMac_PRECHECK(PixMap32Bit);
591n/a#endif
592n/a if (!PyArg_ParseTuple(_args, "O&",
593n/a ResObj_Convert, &pmHandle))
594n/a return NULL;
595n/a _rv = PixMap32Bit(pmHandle);
596n/a _res = Py_BuildValue("b",
597n/a _rv);
598n/a return _res;
599n/a}
600n/a
601n/astatic PyObject *Qdoffs_GetPixMapBytes(PyObject *_self, PyObject *_args)
602n/a{
603n/a PyObject *_res = NULL;
604n/a
605n/a PixMapHandle pm;
606n/a int from, length;
607n/a char *cp;
608n/a
609n/a if ( !PyArg_ParseTuple(_args, "O&ii", ResObj_Convert, &pm, &from, &length) )
610n/a return NULL;
611n/a cp = GetPixBaseAddr(pm)+from;
612n/a _res = PyString_FromStringAndSize(cp, length);
613n/a return _res;
614n/a
615n/a}
616n/a
617n/astatic PyObject *Qdoffs_PutPixMapBytes(PyObject *_self, PyObject *_args)
618n/a{
619n/a PyObject *_res = NULL;
620n/a
621n/a PixMapHandle pm;
622n/a int from, length;
623n/a char *cp, *icp;
624n/a
625n/a if ( !PyArg_ParseTuple(_args, "O&is#", ResObj_Convert, &pm, &from, &icp, &length) )
626n/a return NULL;
627n/a cp = GetPixBaseAddr(pm)+from;
628n/a memcpy(cp, icp, length);
629n/a Py_INCREF(Py_None);
630n/a _res = Py_None;
631n/a return _res;
632n/a
633n/a}
634n/a#endif /* __LP64__ */
635n/a
636n/astatic PyMethodDef Qdoffs_methods[] = {
637n/a#ifndef __LP64__
638n/a {"NewGWorld", (PyCFunction)Qdoffs_NewGWorld, 1,
639n/a PyDoc_STR("(short PixelDepth, Rect boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags) -> (GWorldPtr offscreenGWorld)")},
640n/a {"LockPixels", (PyCFunction)Qdoffs_LockPixels, 1,
641n/a PyDoc_STR("(PixMapHandle pm) -> (Boolean _rv)")},
642n/a {"UnlockPixels", (PyCFunction)Qdoffs_UnlockPixels, 1,
643n/a PyDoc_STR("(PixMapHandle pm) -> None")},
644n/a {"UpdateGWorld", (PyCFunction)Qdoffs_UpdateGWorld, 1,
645n/a PyDoc_STR("(short pixelDepth, Rect boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags) -> (GWorldFlags _rv, GWorldPtr offscreenGWorld)")},
646n/a {"GetGWorld", (PyCFunction)Qdoffs_GetGWorld, 1,
647n/a PyDoc_STR("() -> (CGrafPtr port, GDHandle gdh)")},
648n/a {"SetGWorld", (PyCFunction)Qdoffs_SetGWorld, 1,
649n/a PyDoc_STR("(CGrafPtr port, GDHandle gdh) -> None")},
650n/a {"CTabChanged", (PyCFunction)Qdoffs_CTabChanged, 1,
651n/a PyDoc_STR("(CTabHandle ctab) -> None")},
652n/a {"PixPatChanged", (PyCFunction)Qdoffs_PixPatChanged, 1,
653n/a PyDoc_STR("(PixPatHandle ppat) -> None")},
654n/a {"PortChanged", (PyCFunction)Qdoffs_PortChanged, 1,
655n/a PyDoc_STR("(GrafPtr port) -> None")},
656n/a {"GDeviceChanged", (PyCFunction)Qdoffs_GDeviceChanged, 1,
657n/a PyDoc_STR("(GDHandle gdh) -> None")},
658n/a {"AllowPurgePixels", (PyCFunction)Qdoffs_AllowPurgePixels, 1,
659n/a PyDoc_STR("(PixMapHandle pm) -> None")},
660n/a {"NoPurgePixels", (PyCFunction)Qdoffs_NoPurgePixels, 1,
661n/a PyDoc_STR("(PixMapHandle pm) -> None")},
662n/a {"GetPixelsState", (PyCFunction)Qdoffs_GetPixelsState, 1,
663n/a PyDoc_STR("(PixMapHandle pm) -> (GWorldFlags _rv)")},
664n/a {"SetPixelsState", (PyCFunction)Qdoffs_SetPixelsState, 1,
665n/a PyDoc_STR("(PixMapHandle pm, GWorldFlags state) -> None")},
666n/a {"GetPixRowBytes", (PyCFunction)Qdoffs_GetPixRowBytes, 1,
667n/a PyDoc_STR("(PixMapHandle pm) -> (long _rv)")},
668n/a {"NewScreenBuffer", (PyCFunction)Qdoffs_NewScreenBuffer, 1,
669n/a PyDoc_STR("(Rect globalRect, Boolean purgeable) -> (GDHandle gdh, PixMapHandle offscreenPixMap)")},
670n/a {"DisposeScreenBuffer", (PyCFunction)Qdoffs_DisposeScreenBuffer, 1,
671n/a PyDoc_STR("(PixMapHandle offscreenPixMap) -> None")},
672n/a {"QDDone", (PyCFunction)Qdoffs_QDDone, 1,
673n/a PyDoc_STR("(GrafPtr port) -> (Boolean _rv)")},
674n/a {"OffscreenVersion", (PyCFunction)Qdoffs_OffscreenVersion, 1,
675n/a PyDoc_STR("() -> (long _rv)")},
676n/a {"NewTempScreenBuffer", (PyCFunction)Qdoffs_NewTempScreenBuffer, 1,
677n/a PyDoc_STR("(Rect globalRect, Boolean purgeable) -> (GDHandle gdh, PixMapHandle offscreenPixMap)")},
678n/a {"PixMap32Bit", (PyCFunction)Qdoffs_PixMap32Bit, 1,
679n/a PyDoc_STR("(PixMapHandle pmHandle) -> (Boolean _rv)")},
680n/a {"GetPixMapBytes", (PyCFunction)Qdoffs_GetPixMapBytes, 1,
681n/a PyDoc_STR("(pixmap, int start, int size) -> string. Return bytes from the pixmap")},
682n/a {"PutPixMapBytes", (PyCFunction)Qdoffs_PutPixMapBytes, 1,
683n/a PyDoc_STR("(pixmap, int start, string data). Store bytes into the pixmap")},
684n/a#endif /* __LP64__ */
685n/a {NULL, NULL, 0}
686n/a};
687n/a
688n/a
689n/a
690n/a
691n/avoid init_Qdoffs(void)
692n/a{
693n/a PyObject *m;
694n/a#ifndef __LP64__
695n/a PyObject *d;
696n/a
697n/a
698n/a
699n/a PyMac_INIT_TOOLBOX_OBJECT_NEW(GWorldPtr, GWorldObj_New);
700n/a PyMac_INIT_TOOLBOX_OBJECT_CONVERT(GWorldPtr, GWorldObj_Convert);
701n/a
702n/a#endif /* __LP64__ */
703n/a
704n/a m = Py_InitModule("_Qdoffs", Qdoffs_methods);
705n/a#ifndef __LP64__
706n/a d = PyModule_GetDict(m);
707n/a Qdoffs_Error = PyMac_GetOSErrException();
708n/a if (Qdoffs_Error == NULL ||
709n/a PyDict_SetItemString(d, "Error", Qdoffs_Error) != 0)
710n/a return;
711n/a GWorld_Type.ob_type = &PyType_Type;
712n/a if (PyType_Ready(&GWorld_Type) < 0) return;
713n/a Py_INCREF(&GWorld_Type);
714n/a PyModule_AddObject(m, "GWorld", (PyObject *)&GWorld_Type);
715n/a /* Backward-compatible name */
716n/a Py_INCREF(&GWorld_Type);
717n/a PyModule_AddObject(m, "GWorldType", (PyObject *)&GWorld_Type);
718n/a#endif /* __LP64__ */
719n/a}
720n/a
721n/a/* ======================= End module _Qdoffs ======================= */
722n/a