[Pythonmac-SIG] info on CoreGraphics

Just van Rossum just@letterror.com
Thu, 18 Apr 2002 21:21:47 +0200


--2958805-2675965952-3228153710=:9000
Content-Type: text/plain; Charset=US-ASCII
Content-Transfer-Encoding: 7bit

eric wrote:

> I'm using MacPython 2.2.1, and Carbon.CG only appears to have 2 methods,
> CGContextRefType and CreateCGContextForPort.  Are things like 
> CGContextRotateCTM
> and CGContextAddLines supported somewhere yet?

Those are methods of the CGContext object, which you'll get by doing
CreateCGContextForPort()... (As in: the othe CGContext constructors aren't there
yet.)

> Also, I didn't see a CoreGraphics demo running around.  If you have some code
> that
> excercises these routines, I'd appreciate the example.

See attached file for a very crude experiment. Run in the IDE.

Just
--2958805-2675965952-3228153710=:9000
Content-Type: application/octet-stream; Name="Wquartz.py"; X-Mac-Type="54455854"; X-Mac-Creator="50696465"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; Filename="Wquartz.py"

aW1wb3J0IFcNZnJvbSBDYXJib24gaW1wb3J0IENHLCBRZA0NX25hbWVzID0gWw0J
IyBvZmZpY2lhbCBRdWFydHogQVBJIG5hbWUsICJuaWNlTmFtZSIsIF9fZG9jX18N
CSgiQ0dDb250ZXh0U2V0TGluZVdpZHRoIiwgInNldExpbmVXaWR0aCIsICIoZmxv
YXQgd2lkdGgpIC0+IE5vbmUiKSwNCSgiQ0dDb250ZXh0Q29uY2F0Q1RNIiwgImNv
bmNhdENUTSIsICIoQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKSAtPiBOb25l
IiksDQkoIkNHQ29udGV4dEdldFBhdGhDdXJyZW50UG9pbnQiLCAiZ2V0UGF0aEN1
cnJlbnRQb2ludCIsICIoKSAtPiAoQ0dQb2ludCBfcnYpIiksDQkoIkNHQ29udGV4
dEFkZEFyY1RvUG9pbnQiLCAiYWRkQXJjVG9Qb2ludCIsICIoZmxvYXQgeDEsIGZs
b2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGZsb2F0IHJhZGl1cykgLT4gTm9u
ZSIpLA0JKCJDR0NvbnRleHRBZGRRdWFkQ3VydmVUb1BvaW50IiwgImFkZFF1YWRD
dXJ2ZVRvUG9pbnQiLCAiKGZsb2F0IGNweCwgZmxvYXQgY3B5LCBmbG9hdCB4LCBm
bG9hdCB5KSAtPiBOb25lIiksDQkoIkNHQ29udGV4dENsZWFyUmVjdCIsICJjbGVh
clJlY3QiLCAiKENHUmVjdCByZWN0KSAtPiBOb25lIiksDQkoIkNHQ29udGV4dFNl
dFNob3VsZEFudGlhbGlhcyIsICJzZXRTaG91bGRBbnRpYWxpYXMiLCAiKGludCBz
aG91bGRBbnRpYWxpYXMpIC0+IE5vbmUiKSwNCSgiQ0dDb250ZXh0TW92ZVRvUG9p
bnQiLCAibW92ZVRvUG9pbnQiLCAiKGZsb2F0IHgsIGZsb2F0IHkpIC0+IE5vbmUi
KSwNCSgiQ0dDb250ZXh0U2V0Q2hhcmFjdGVyU3BhY2luZyIsICJzZXRDaGFyYWN0
ZXJTcGFjaW5nIiwgIihmbG9hdCBzcGFjaW5nKSAtPiBOb25lIiksDQkoIkNHQ29u
dGV4dFJlc3RvcmVHU3RhdGUiLCAicmVzdG9yZUdTdGF0ZSIsICIoKSAtPiBOb25l
IiksDQkoIkNHQ29udGV4dElzUGF0aEVtcHR5IiwgImlzUGF0aEVtcHR5IiwgIigp
IC0+IChpbnQgX3J2KSIpLA0JKCJDR0NvbnRleHRDbG9zZVBhdGgiLCAiY2xvc2VQ
YXRoIiwgIigpIC0+IE5vbmUiKSwNCSgiQ0dDb250ZXh0Rmx1c2giLCAiZmx1c2gi
LCAiKCkgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRFbmRQYWdlIiwgImVuZFBhZ2Ui
LCAiKCkgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRHZXRUZXh0TWF0cml4IiwgImdl
dFRleHRNYXRyaXgiLCAiKCkgLT4gKENHQWZmaW5lVHJhbnNmb3JtIF9ydikiKSwN
CSgiQ0dDb250ZXh0QWRkUmVjdCIsICJhZGRSZWN0IiwgIihDR1JlY3QgcmVjdCkg
LT4gTm9uZSIpLA0JKCJDR0NvbnRleHRFT0ZpbGxQYXRoIiwgImVvRmlsbFBhdGgi
LCAiKCkgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRDbGlwVG9SZWN0IiwgImNsaXBU
b1JlY3QiLCAiKENHUmVjdCByZWN0KSAtPiBOb25lIiksDQkoIkNHQ29udGV4dFNl
dEdyYXlTdHJva2VDb2xvciIsICJzZXRHcmF5U3Ryb2tlQ29sb3IiLCAiKGZsb2F0
IGdyYXksIGZsb2F0IGFscGhhKSAtPiBOb25lIiksDQkoIkNHQ29udGV4dFNldE1p
dGVyTGltaXQiLCAic2V0TWl0ZXJMaW1pdCIsICIoZmxvYXQgbGltaXQpIC0+IE5v
bmUiKSwNCSgiQ0dDb250ZXh0RmlsbFBhdGgiLCAiZmlsbFBhdGgiLCAiKCkgLT4g
Tm9uZSIpLA0JKCJDR0NvbnRleHRTdHJva2VSZWN0V2l0aFdpZHRoIiwgInN0cm9r
ZVJlY3RXaXRoV2lkdGgiLCAiKENHUmVjdCByZWN0LCBmbG9hdCB3aWR0aCkgLT4g
Tm9uZSIpLA0JKCJDR0NvbnRleHRTZXRHcmF5RmlsbENvbG9yIiwgInNldEdyYXlG
aWxsQ29sb3IiLCAiKGZsb2F0IGdyYXksIGZsb2F0IGFscGhhKSAtPiBOb25lIiks
DQkoIkNHQ29udGV4dFNldEZvbnRTaXplIiwgInNldEZvbnRTaXplIiwgIihmbG9h
dCBzaXplKSAtPiBOb25lIiksDQkoIkNHQ29udGV4dFNob3dUZXh0IiwgInNob3dU
ZXh0IiwgIihCdWZmZXIgY3N0cmluZykgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRT
Y2FsZUNUTSIsICJzY2FsZUNUTSIsICIoZmxvYXQgc3gsIGZsb2F0IHN5KSAtPiBO
b25lIiksDQkoIkNHQ29udGV4dFN5bmNocm9uaXplIiwgInN5bmNocm9uaXplIiwg
IigpIC0+IE5vbmUiKSwNCSgiQ0dDb250ZXh0U2V0TGluZUNhcCIsICJzZXRMaW5l
Q2FwIiwgIihpbnQgY2FwKSAtPiBOb25lIiksDQkoIkNHQ29udGV4dFNldFRleHRE
cmF3aW5nTW9kZSIsICJzZXRUZXh0RHJhd2luZ01vZGUiLCAiKGludCBtb2RlKSAt
PiBOb25lIiksDQkoIkNHQ29udGV4dFNldEZsYXRuZXNzIiwgInNldEZsYXRuZXNz
IiwgIihmbG9hdCBmbGF0bmVzcykgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRDbGlw
IiwgImNsaXAiLCAiKCkgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRTZXRDTVlLU3Ry
b2tlQ29sb3IiLCAic2V0Q01ZS1N0cm9rZUNvbG9yIiwgIihmbG9hdCBjLCBmbG9h
dCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhbHBoYSkgLT4gTm9uZSIpLA0J
KCJDR0NvbnRleHRBZGRMaW5lVG9Qb2ludCIsICJhZGRMaW5lVG9Qb2ludCIsICIo
ZmxvYXQgeCwgZmxvYXQgeSkgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRTaG93VGV4
dEF0UG9pbnQiLCAic2hvd1RleHRBdFBvaW50IiwgIihmbG9hdCB4LCBmbG9hdCB5
LCBCdWZmZXIgY3N0cmluZykgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRHZXRUZXh0
UG9zaXRpb24iLCAiZ2V0VGV4dFBvc2l0aW9uIiwgIigpIC0+IChDR1BvaW50IF9y
dikiKSwNCSgiQ0dDb250ZXh0VHJhbnNsYXRlQ1RNIiwgInRyYW5zbGF0ZUNUTSIs
ICIoZmxvYXQgdHgsIGZsb2F0IHR5KSAtPiBOb25lIiksDQkoIkNHQ29udGV4dEFk
ZEFyYyIsICJhZGRBcmMiLCAiKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHJhZGl1
cywgZmxvYXQgc3RhcnRBbmdsZSwgZmxvYXQgZW5kQW5nbGUsIGludCBjbG9ja3dp
c2UpIC0+IE5vbmUiKSwNCSgiQ0dDb250ZXh0U2V0TGluZUpvaW4iLCAic2V0TGlu
ZUpvaW4iLCAiKGludCBqb2luKSAtPiBOb25lIiksDQkoIkNHQ29udGV4dEZpbGxS
ZWN0IiwgImZpbGxSZWN0IiwgIihDR1JlY3QgcmVjdCkgLT4gTm9uZSIpLA0JKCJD
R0NvbnRleHRTZXRBbHBoYSIsICJzZXRBbHBoYSIsICIoZmxvYXQgYWxwaGEpIC0+
IE5vbmUiKSwNCSgiQ0dDb250ZXh0R2V0UGF0aEJvdW5kaW5nQm94IiwgImdldFBh
dGhCb3VuZGluZ0JveCIsICIoKSAtPiAoQ0dSZWN0IF9ydikiKSwNCSgiQ0dDb250
ZXh0U2V0UkdCU3Ryb2tlQ29sb3IiLCAic2V0UkdCU3Ryb2tlQ29sb3IiLCAiKGZs
b2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGFscGhhKSAtPiBOb25lIiks
DQkoIkNHQ29udGV4dEdldENUTSIsICJnZXRDVE0iLCAiKCkgLT4gKENHQWZmaW5l
VHJhbnNmb3JtIF9ydikiKSwNCSgiQ0dDb250ZXh0U3Ryb2tlUmVjdCIsICJzdHJv
a2VSZWN0IiwgIihDR1JlY3QgcmVjdCkgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRB
ZGRDdXJ2ZVRvUG9pbnQiLCAiYWRkQ3VydmVUb1BvaW50IiwgIihmbG9hdCBjcDF4
LCBmbG9hdCBjcDF5LCBmbG9hdCBjcDJ4LCBmbG9hdCBjcDJ5LCBmbG9hdCB4LCBm
bG9hdCB5KSAtPiBOb25lIiksDQkoIkNHQ29udGV4dFJvdGF0ZUNUTSIsICJyb3Rh
dGVDVE0iLCAiKGZsb2F0IGFuZ2xlKSAtPiBOb25lIiksDQkoIkNHQ29udGV4dFNl
dENNWUtGaWxsQ29sb3IiLCAic2V0Q01ZS0ZpbGxDb2xvciIsICIoZmxvYXQgYywg
ZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYWxwaGEpIC0+IE5vbmUi
KSwNCSgiQ0dDb250ZXh0RHJhd1BhdGgiLCAiZHJhd1BhdGgiLCAiKGludCBtb2Rl
KSAtPiBOb25lIiksDQkoIkNHQ29udGV4dFN0cm9rZVBhdGgiLCAic3Ryb2tlUGF0
aCIsICIoKSAtPiBOb25lIiksDQkoIkNHQ29udGV4dFNhdmVHU3RhdGUiLCAic2F2
ZUdTdGF0ZSIsICIoKSAtPiBOb25lIiksDQkoIkNHQ29udGV4dEJlZ2luUGF0aCIs
ICJiZWdpblBhdGgiLCAiKCkgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRTZXRUZXh0
TWF0cml4IiwgInNldFRleHRNYXRyaXgiLCAiKENHQWZmaW5lVHJhbnNmb3JtIHRy
YW5zZm9ybSkgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRTZWxlY3RGb250IiwgInNl
bGVjdEZvbnQiLCAiKGNoYXIgKiBuYW1lLCBmbG9hdCBzaXplLCBpbnQgdGV4dEVu
Y29kaW5nKSAtPiBOb25lIiksDQkoIkNHQ29udGV4dFNldFJHQkZpbGxDb2xvciIs
ICJzZXRSR0JGaWxsQ29sb3IiLCAiKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIs
IGZsb2F0IGFscGhhKSAtPiBOb25lIiksDQkoIkNHQ29udGV4dEVPQ2xpcCIsICJl
b0NsaXAiLCAiKCkgLT4gTm9uZSIpLA0JKCJDR0NvbnRleHRTZXRUZXh0UG9zaXRp
b24iLCAic2V0VGV4dFBvc2l0aW9uIiwgIihmbG9hdCB4LCBmbG9hdCB5KSAtPiBO
b25lIiksDV0NDQ1jbGFzcyBRdWFydHpXcmFwcGVyOg0JIiIiUHJvdmlkZSBuaWNl
IG5hbWVzIHZvciBRdWFydHogQVBJJ3MuIiIiDQlkZWYgX19pbml0X18oc2VsZiwg
Y3R4KToNCQlmb3IgbiwgbSwgZCBpbiBfbmFtZXM6DQkJCXNldGF0dHIoc2VsZiwg
bSwgZ2V0YXR0cihjdHgsIG4pKQ0NDWNsYXNzIFF1YXJ0eldpZGdldChXLldpZGdl
dCk6DQlfY3R4ID0gTm9uZQ0JZGVmIGRyYXcoc2VsZiwgdmlzUmduPU5vbmUpOg0J
CWlmIG5vdCBzZWxmLl92aXNpYmxlOg0JCQlyZXR1cm4NCQlsLCB0LCByLCBiID0g
c2VsZi5fYm91bmRzDQkJd2lkdGggPSByIC0gbA0JCWhlaWdodCA9IGIgLSB0DQkJ
eCwgeSA9IGwsIGINCQljdHggPSBDRy5DcmVhdGVDR0NvbnRleHRGb3JQb3J0KHNl
bGYuX3BhcmVudHdpbmRvdy53aWQpDQkJc2VsZi5fY3R4ID0gY3R4ID0gUXVhcnR6
V3JhcHBlcihjdHgpDQkJd3gsIHd5LCB3d2lkdGgsIHdoZWlnaHQgPSBzZWxmLl9w
YXJlbnR3aW5kb3cuX2JvdW5kcw0JCWN0eC50cmFuc2xhdGVDVE0oeCwgd2hlaWdo
dCAtIHkpDQkJc2VsZi5fbWVkaWFib3ggPSBib3ggPSAoMCwgMCwgd2lkdGgsIGhl
aWdodCkNCQljdHguY2xpcFRvUmVjdChib3gpDQkJY3R4LnNhdmVHU3RhdGUoKQ0J
CXNlbGYucXVhcnR6RHJhdyhjdHgsIGJveCkNCQljdHgucmVzdG9yZUdTdGF0ZSgp
DQkNCWRlZiBxdWFydHpEcmF3KHNlbGYsIGN0eCwgYm94KToNCQljdHguc3Ryb2tl
UmVjdFdpdGhXaWR0aChib3gsIDAuNSkNCQ0JX2FuZ2xlID0gMA0JX3NjYWxlID0g
MQ0JDQlkZWYgaWRsZWZ1bmMoc2VsZiwgKmFyZ3MpOg0JCWlmIG5vdCBoYXNhdHRy
KHNlbGYsICJfbWVkaWFib3giKToNCQkJcmV0dXJuDQkJaW1wb3J0IHJhbmRvbQ0J
CWN0eCwgYm94ID0gc2VsZi5fY3R4LCBzZWxmLl9tZWRpYWJveA0JCSNjdHguc2V0
UkdCRmlsbENvbG9yKDAuNywgMCwgMC4zLCAwLjA0KQ0JCSNjdHguZmlsbFJlY3Qo
Ym94KQ0JCXgsIHksIHdpZHRoLCBoZWlnaHQgPSBib3gNCQljdHguc2F2ZUdTdGF0
ZSgpDQkJY3R4LnNlbGVjdEZvbnQoIkdhZGdldCIsIDYwLCAxKQ0JCWN0eC5zZXRD
aGFyYWN0ZXJTcGFjaW5nKDEpDQkJY3R4LnRyYW5zbGF0ZUNUTSgwLjUgKiB3aWR0
aCwgMC41ICogaGVpZ2h0KQ0JCXIgPSByYW5kb20ucmFuZG9tKCkNCQlyMiA9IHJh
bmRvbS5yYW5kb20oKQ0JCSNjdHgucm90YXRlQ1RNKHIgKiAzLjE0ICogMikNCQlj
dHgucm90YXRlQ1RNKHNlbGYuX2FuZ2xlKQ0JCWN0eC5zY2FsZUNUTShzZWxmLl9z
Y2FsZSwgc2VsZi5fc2NhbGUpDQkJI2N0eC5jb25jYXRDVE0oWzEsIChyMiAtIDAu
NSkgKiAwLjMsIDAsIDEsIDAsIDBdKQ0JCXNlbGYuX2FuZ2xlICs9IDAuMQ0JCXNl
bGYuX3NjYWxlICo9IDAuOTk5OA0JCWN0eC5zZXRSR0JGaWxsQ29sb3IociwgcjIs
IDEsIDAuMikNCQljdHguc2hvd1RleHRBdFBvaW50KDAsIDAsICJIYWxsbyB3ZXJl
bGQuLi4iKQ0JCWN0eC5zeW5jaHJvbml6ZSgpDQkJI2N0eC5mbHVzaCgpDQkJY3R4
LnJlc3RvcmVHU3RhdGUoKQ0NDWlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6DQl3
ID0gVy5XaW5kb3coKDMwMCwgMzAwKSwgIlF1YXJ0eiIsIG1pbnNpemU9KDEwMCwg
MTAwKSkNCXcucSA9IFF1YXJ0eldpZGdldCgoMTAsIDEwLCAtMTAsIC0zMCkpDQl3
LmJpbmQoIjxpZGxlPiIsIHcucS5pZGxlZnVuYykNCXcub3BlbigpDQ0N
--2958805-2675965952-3228153710=:9000--