XGraphicsContext.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 24 Nov 2016 23:50:51 +0000
branchjv
changeset 7718 6e51fc8b207f
parent 7541 39940e2446a5
child 7772 a59648e60593
permissions -rw-r--r--
XFT: Drop support for shared drawables. For quite some time (~2 years) we keep reference to `XftDraw` in each GC, i.e., we don't share them. Drop the support for draw sharing as it just complicates the code and make it harder to understand.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:libview' }"
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
7718
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
     3
"{ NameSpace: Smalltalk }"
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
     4
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
DeviceGraphicsContext subclass:#XGraphicsContext
7541
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
     6
	instanceVariableNames:'depth xftDrawId cairoSurfaceId'
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Interface-Graphics'
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!XGraphicsContext methodsFor:'accessing'!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
7541
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    15
depth
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    16
    ^ depth
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    17
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    18
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
xftDrawId
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    ^ xftDrawId
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
xftDrawId:anXftDrawHandle
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    xftDrawId := anXftDrawHandle.
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    "Modified (format): / 23-06-2014 / 21:28:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
! !
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
7718
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    29
!XGraphicsContext methodsFor:'initialization & release'!
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
7718
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    31
destroy
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    32
    xftDrawId notNil ifTrue:[ 
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    33
        XftFontDescription xftDrawDestroy: xftDrawId  
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    34
    ].
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    35
    super destroy.
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    36
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    37
    "Created: / 25-11-2016 / 00:10:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    38
!
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
prepareForReinit
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    "kludge - clear drawableId and gcId
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
     needed after snapin"
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    super prepareForReinit.
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    xftDrawId := nil.
6727
f3449322bf47 Added cairoSurfaceId to support Cairo rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6726
diff changeset
    46
    cairoSurfaceId := nil.
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    "Created: / 09-10-2014 / 00:02:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6727
f3449322bf47 Added cairoSurfaceId to support Cairo rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6726
diff changeset
    49
    "Modified: / 26-12-2014 / 22:51:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
! !
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
7541
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    52
!XGraphicsContext methodsFor:'view creation'!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    53
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    54
createBitmapFromArray:data width:width height:height
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    55
    depth := 1.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    56
    super createBitmapFromArray:data width:width height:height
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    57
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    58
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    59
createPixmapWidth:w height:h depth:d
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    60
    depth := d.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    61
    super createPixmapWidth:w height:h depth:d
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    62
! !
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    63
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
!XGraphicsContext class methodsFor:'documentation'!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
version_HG
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    ^ '$Changeset: <not expanded> $'
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
! !
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70