author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Thu, 01 Aug 2019 18:43:54 +0100 | |
changeset 87 | d1313f80a9a7 |
parent 72 | 3eabcca278cd |
child 88 | 9d51db2ba641 |
permissions | -rw-r--r-- |
1 | 1 |
"{ Package: 'stx:goodies/libcairo' }" |
2 |
||
3 |
"{ NameSpace: Cairo }" |
|
4 |
||
30
c8fe298c8cc7
GraphicsContext refactoring (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
29
diff
changeset
|
5 |
CObject subclass:#Surface |
72
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
6 |
instanceVariableNames:'view' |
1 | 7 |
classVariableNames:'' |
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
8 |
poolDictionaries:'Cairo::SurfaceType Cairo::Format' |
12 | 9 |
category:'Cairo-Objects' |
1 | 10 |
! |
11 |
||
7
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
12 |
|
1 | 13 |
!Surface class methodsFor:'instance creation'! |
14 |
||
38
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
15 |
forView: aView |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
16 |
^ self onView: aView |
26
7f07a8c31e6d
Fixed flickring of Cairo::ClockView by rendering into an off-screen image.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
17 |
|
38
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
18 |
"Created: / 10-07-2008 / 10:15:04 / Jan Vrany <vranyj1@fel.cvut.cz>" |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
19 |
"Modified: / 14-02-2016 / 00:01:09 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
20 |
! |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
21 |
|
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
22 |
newImageWithFormat:format width:width height:height |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
23 |
^ CPrimitives |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
24 |
cairo_image_surface_create:format |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
25 |
_:width |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
26 |
_:height |
26
7f07a8c31e6d
Fixed flickring of Cairo::ClockView by rendering into an off-screen image.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
27 |
|
7f07a8c31e6d
Fixed flickring of Cairo::ClockView by rendering into an off-screen image.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
28 |
"Created: / 24-12-2014 / 23:43:48 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
29 |
"Modified: / 28-12-2014 / 22:03:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
26
7f07a8c31e6d
Fixed flickring of Cairo::ClockView by rendering into an off-screen image.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
30 |
! |
7f07a8c31e6d
Fixed flickring of Cairo::ClockView by rendering into an off-screen image.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
31 |
|
51
5293f2b851ab
CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
47
diff
changeset
|
32 |
newImageWithFormat:format width:width height:height similarTo: surface |
57
2c9a342e1f2a
Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
33 |
OperatingSystem isMSWINDOWSlike ifTrue:[ |
2c9a342e1f2a
Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
34 |
^ CPrimitives cairo_image_surface_create: format _:width _:height |
2c9a342e1f2a
Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
35 |
] ifFalse:[ |
2c9a342e1f2a
Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
36 |
^ CPrimitives cairo_surface_create_similar_image: surface _:format _:width _:height |
2c9a342e1f2a
Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
37 |
] |
26
7f07a8c31e6d
Fixed flickring of Cairo::ClockView by rendering into an off-screen image.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
38 |
|
51
5293f2b851ab
CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
47
diff
changeset
|
39 |
"Created: / 27-02-2016 / 16:00:26 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
57
2c9a342e1f2a
Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
51
diff
changeset
|
40 |
"Modified: / 01-03-2016 / 23:37:37 / jv" |
26
7f07a8c31e6d
Fixed flickring of Cairo::ClockView by rendering into an off-screen image.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
41 |
! |
7f07a8c31e6d
Fixed flickring of Cairo::ClockView by rendering into an off-screen image.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
42 |
|
38
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
43 |
newPDFWithFile:aStringOrFilename width:w height:h |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
44 |
^ CPrimitives |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
45 |
cairo_pdf_surface_create:aStringOrFilename asFilename asString |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
46 |
_:w asDouble |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
47 |
_:h asDouble |
1 | 48 |
|
49 |
"Created: / 10-07-2008 / 09:35:34 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
50 |
"Modified: / 28-12-2014 / 22:05:49 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1 | 51 |
! |
52 |
||
51
5293f2b851ab
CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
47
diff
changeset
|
53 |
newPNGWithFile:aStringOrFilename |
5293f2b851ab
CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
47
diff
changeset
|
54 |
aStringOrFilename asFilename exists ifFalse:[ |
5293f2b851ab
CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
47
diff
changeset
|
55 |
self error: 'No such file'. |
5293f2b851ab
CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
47
diff
changeset
|
56 |
]. |
5293f2b851ab
CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
47
diff
changeset
|
57 |
^ CPrimitives cairo_image_surface_create_from_png:aStringOrFilename asFilename asString |
5293f2b851ab
CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
47
diff
changeset
|
58 |
|
5293f2b851ab
CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
47
diff
changeset
|
59 |
"Created: / 28-02-2016 / 07:52:50 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
5293f2b851ab
CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
47
diff
changeset
|
60 |
! |
5293f2b851ab
CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
47
diff
changeset
|
61 |
|
72
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
62 |
newWin32WithDC: hdc |
45
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
63 |
^ CPrimitives cairo_win32_surface_create:hdc |
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
64 |
|
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
65 |
"Created: / 19-02-2016 / 12:07:29 / jv" |
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
66 |
! |
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
67 |
|
38
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
68 |
newXlibWithDisplay:dpy drawable:drawable visual:visual width:width height:height |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
69 |
^ CPrimitives |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
70 |
cairo_xlib_surface_create:dpy |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
71 |
_:drawable |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
72 |
_:visual |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
73 |
_:width |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
74 |
_:height |
1 | 75 |
|
76 |
"Created: / 10-07-2008 / 11:06:22 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
77 |
"Modified: / 28-12-2014 / 22:06:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
38
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
78 |
! |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
79 |
|
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
80 |
onView: aView |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
81 |
aView device platformName == #X11 ifTrue:[ |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
82 |
| surface | |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
83 |
surface := self newXlibWithDisplay:aView device displayId |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
84 |
drawable:aView drawableId address |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
85 |
visual:aView device queryDefaultVisual |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
86 |
width:aView width |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
87 |
height:aView height. |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
88 |
surface setView: aView. |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
89 |
^ surface. |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
90 |
]. |
45
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
91 |
(aView device platformName = 'WIN32') ifTrue:[ |
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
92 |
aView gcId isNil ifTrue:[ |
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
93 |
aView initGC |
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
94 |
]. |
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
95 |
^ self newWin32WithHDC: (aView device hdcForGC: aView gcId) |
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
96 |
]. |
38
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
97 |
self error: 'Unsupported plarform' |
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
98 |
|
9c94e463018a
Split classes for individual surfaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
36
diff
changeset
|
99 |
"Created: / 13-02-2016 / 23:47:50 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
45
8ee53c41a084
Win32: Initial support for Cairo under Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
43
diff
changeset
|
100 |
"Modified: / 19-02-2016 / 12:11:20 / jv" |
1 | 101 |
! ! |
102 |
||
103 |
!Surface class methodsFor:'accessing'! |
|
104 |
||
12 | 105 |
dllPath |
106 |
||
107 |
OperatingSystem isMSWINDOWSlike ifTrue:[ |
|
108 |
^ #( 'C:\Windows' 'C:\Windows\System32' "Wild guess, should not harm" ) |
|
109 |
]. |
|
110 |
||
111 |
OperatingSystem isUNIXlike ifTrue:[ |
|
112 |
OperatingSystem getSystemType == #linux ifTrue:[ |
|
113 |
| path | |
|
114 |
||
115 |
path := #( '/lib' '/usr/lib' '/usr/local/lib' ). |
|
116 |
(OperatingSystem getSystemInfo at:#machine) = 'x86_64' ifTrue:[ |
|
117 |
"If the machine is 64bit, prepend standard path for 32bit libs. |
|
118 |
Leave standard paths at the end, as the system might be completely |
|
119 |
32bit but running on 64bit-capable CPU. |
|
120 |
||
121 |
CAVEAT: This is bit dangerous, as on 64bit OS, if ia32 libs are |
|
122 |
not installed byt 64bit sqlite libs are, then 64bit libs are found |
|
123 |
and when a function is called, segfault will occur!! |
|
124 |
||
125 |
Q: Is there a way how to figure out if the OS itself is 32bit, |
|
126 |
regardles on CPU?" |
|
127 |
path := #( '/lib32' '/usr/lib32' '/usr/local/lib32' ) , path. |
|
128 |
]. |
|
129 |
^path |
|
130 |
||
131 |
]. |
|
132 |
]. |
|
133 |
||
134 |
self error:'Unsupported operating system' |
|
135 |
||
136 |
" |
|
137 |
SqliteLibrary dllPath |
|
138 |
" |
|
139 |
||
140 |
"Created: / 31-08-2011 / 18:02:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
141 |
! |
|
142 |
||
1 | 143 |
libraryName |
144 |
||
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
145 |
OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2']. |
1 | 146 |
|
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
147 |
OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll']. |
12 | 148 |
|
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
149 |
self error:'Library name for host OS is not known' |
6
c1f387b40e3a
regenerated using newer version of CFace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
5
diff
changeset
|
150 |
! |
c1f387b40e3a
regenerated using newer version of CFace
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
5
diff
changeset
|
151 |
|
26
7f07a8c31e6d
Fixed flickring of Cairo::ClockView by rendering into an off-screen image.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
152 |
sizeof |
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
153 |
"Returns size of undelaying structure in bytes" |
1 | 154 |
|
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
155 |
^0 |
1 | 156 |
! ! |
157 |
||
158 |
!Surface methodsFor:'accessing'! |
|
159 |
||
63
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
160 |
cairo |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
161 |
^ GraphicsContext onSurface: self |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
162 |
|
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
163 |
"Created: / 05-03-2016 / 22:25:13 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
164 |
! |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
165 |
|
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
166 |
referenceCount |
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
167 |
"Return value or reference counter" |
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
168 |
|
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
169 |
^ CPrimitives cairo_surface_get_reference_count: self |
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
170 |
|
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
171 |
"Created: / 28-12-2014 / 22:09:45 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
16 | 172 |
! |
173 |
||
43 | 174 |
status |
175 |
"Checks whether an error has previously occurred for this object. |
|
176 |
See Cairo::Status pool for possible values." |
|
177 |
||
178 |
^ CPrimitives cairo_surface_status: self |
|
179 |
||
180 |
"Modified: / 23-02-2016 / 11:28:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
181 |
! |
|
182 |
||
1 | 183 |
type |
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
184 |
^CPrimitives cairo_surface_get_type: self |
1 | 185 |
|
186 |
"Created: / 10-07-2008 / 10:34:36 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
187 |
"Modified: / 28-12-2014 / 21:46:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
72
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
188 |
! |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
189 |
|
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
190 |
view |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
191 |
"Return's associated view (if any) or nil" |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
192 |
^ view |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
193 |
|
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
194 |
"Modified (comment): / 29-03-2016 / 22:53:48 / jv" |
1 | 195 |
! ! |
196 |
||
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
197 |
!Surface methodsFor:'cairo api'! |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
198 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
199 |
finish |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
200 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
201 |
^CPrimitives cairo_surface_finish: self |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
202 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
203 |
"Created: / 17-06-2012 / 08:49:48 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
204 |
"Modified: / 28-12-2014 / 21:48:23 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
205 |
! |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
206 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
207 |
flush |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
208 |
"Do any pending drawing for the surface and also restore any temporary |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
209 |
modifications cairo has made to the surface's state. This function must |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
210 |
be called before switching from drawing on the surface with cairo to |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
211 |
drawing on it directly with native APIs, or accessing its memory outside |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
212 |
of Cairo. If the surface doesn't support direct access, then this function |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
213 |
does nothing." |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
214 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
215 |
CPrimitives cairo_surface_flush: self |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
216 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
217 |
"Created: / 10-07-2008 / 10:32:50 / Jan Vrany <vranyj1@fel.cvut.cz>" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
218 |
"Modified: / 18-02-2016 / 20:15:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
47
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
219 |
! |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
220 |
|
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
221 |
markDirty |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
222 |
"Tells cairo that drawing has been done to surface using means other than cairo, |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
223 |
and that cairo should reread any cached areas. Note that you must call |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
224 |
Cairo::Surface>>#flush before doing such drawing." |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
225 |
|
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
226 |
CPrimitives cairo_surface_mark_dirty: self. |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
227 |
self statusCheck. |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
228 |
|
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
229 |
"Created: / 24-02-2016 / 17:12:23 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
230 |
! |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
231 |
|
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
232 |
markDirtyX: x y: y width: w height: h |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
233 |
"Like $markDirty, but drawing has been done only to the specified rectangle, |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
234 |
so that cairo can retain cached contents for other parts of the surface. |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
235 |
|
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
236 |
Any cached clip set on the surface will be reset by this function, to |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
237 |
make sure that future cairo calls have the clip set that they expect." |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
238 |
|
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
239 |
CPrimitives cairo_surface_mark_dirty_rectangle: self _: x _:y _:w _:h. |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
240 |
self statusCheck. |
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
241 |
|
061f23d91383
CairoScaledFont: fixed drawing of CairoScaledFont on plain old DeviceGraphicsContext.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
45
diff
changeset
|
242 |
"Created: / 24-02-2016 / 17:14:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
243 |
! ! |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
244 |
|
63
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
245 |
!Surface methodsFor:'initialization'! |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
246 |
|
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
247 |
initialize |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
248 |
super initialize. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
249 |
self class == Cairo::Surface ifTrue:[ |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
250 |
| type | |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
251 |
|
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
252 |
type := self type. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
253 |
type == CAIRO_SURFACE_TYPE_IMAGE ifTrue:[ |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
254 |
self changeClassTo: SurfaceImage. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
255 |
^ self. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
256 |
]. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
257 |
type == CAIRO_SURFACE_TYPE_XLIB ifTrue:[ |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
258 |
self changeClassTo: SurfaceXlib. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
259 |
^ self. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
260 |
]. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
261 |
type == CAIRO_SURFACE_TYPE_WIN32 ifTrue:[ |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
262 |
self changeClassTo: SurfaceWin32. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
263 |
^ self. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
264 |
]. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
265 |
type == CAIRO_SURFACE_TYPE_PDF ifTrue:[ |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
266 |
self changeClassTo: SurfacePDF. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
267 |
^ self. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
268 |
]. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
269 |
]. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
270 |
|
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
271 |
"Created: / 04-03-2016 / 00:45:31 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
272 |
"Modified: / 05-03-2016 / 22:21:09 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
273 |
! ! |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
274 |
|
72
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
275 |
!Surface methodsFor:'initialization & release'! |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
276 |
|
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
277 |
setView: aView |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
278 |
view notNil ifTrue:[ |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
279 |
self error: 'Trying to set view twice' |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
280 |
]. |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
281 |
view := aView. |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
282 |
|
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
283 |
"Created: / 17-06-2012 / 15:04:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
284 |
"Modified: / 25-02-2016 / 11:03:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
285 |
"Modified: / 29-03-2016 / 22:41:12 / jv" |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
286 |
! ! |
3eabcca278cd
Cairo context and surface management for CairoGraphicsContext reworked to work under Win32
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
63
diff
changeset
|
287 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
38
diff
changeset
|
288 |
!Surface methodsFor:'private'! |
1 | 289 |
|
31
26070c1e480e
GraphicsContext refactoring (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
290 |
destroy |
26070c1e480e
GraphicsContext refactoring (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
291 |
"Tell Cairo library to destroy the corresponding C object. |
26070c1e480e
GraphicsContext refactoring (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
292 |
Remember that object is physically destroyed only if internal |
26070c1e480e
GraphicsContext refactoring (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
293 |
refcounter goes to zero. However, after calling destroy, |
26070c1e480e
GraphicsContext refactoring (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
294 |
this instance should be treated as invalid." |
26070c1e480e
GraphicsContext refactoring (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
295 |
|
36
9b680e54aa94
Take a step back: separate Cairo's GraphicsContext (cairo_t) and Smalltalk/X's graphics context
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
31
diff
changeset
|
296 |
CPrimitives cairo_surface_destroy: self. |
9b680e54aa94
Take a step back: separate Cairo's GraphicsContext (cairo_t) and Smalltalk/X's graphics context
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
31
diff
changeset
|
297 |
self setAddress: nil. |
31
26070c1e480e
GraphicsContext refactoring (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
298 |
|
26070c1e480e
GraphicsContext refactoring (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
299 |
"Created: / 28-12-2014 / 22:10:47 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
36
9b680e54aa94
Take a step back: separate Cairo's GraphicsContext (cairo_t) and Smalltalk/X's graphics context
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
31
diff
changeset
|
300 |
"Modified: / 13-02-2016 / 16:10:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
63
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
301 |
! |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
302 |
|
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
303 |
reference |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
304 |
"Increases the reference count on the receiver by one. This prevents the |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
305 |
receiver from being destroyed until a matching call to #destroy is made. |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
306 |
|
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
307 |
This method must be called whenever Cairo documentation says so, |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
308 |
check comment on return value for methods returning a Cairo object" |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
309 |
|
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
310 |
CPrimitives cairo_surface_reference: self |
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
311 |
|
054f0513ea65
Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
57
diff
changeset
|
312 |
"Modified: / 05-03-2016 / 10:33:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
16 | 313 |
! ! |
314 |
||
315 |
!Surface methodsFor:'queries'! |
|
316 |
||
317 |
isViewSurface |
|
318 |
"Return true, if this sufrace if for a kind of a View" |
|
319 |
||
320 |
^self isXLibSurface or:[ self isWin32Surface ] |
|
321 |
||
322 |
"Created: / 17-06-2012 / 15:02:18 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
323 |
! |
|
324 |
||
325 |
isWin32Surface |
|
326 |
||
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
327 |
^self type == CAIRO_SURFACE_TYPE_WIN32 |
16 | 328 |
|
329 |
"Created: / 17-06-2012 / 15:01:18 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
330 |
"Modified: / 28-12-2014 / 21:46:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
16 | 331 |
! |
332 |
||
333 |
isXLibSurface |
|
334 |
||
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
335 |
^self type == CAIRO_SURFACE_TYPE_XLIB |
16 | 336 |
|
337 |
"Created: / 17-06-2012 / 14:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
28
diff
changeset
|
338 |
"Modified: / 28-12-2014 / 21:46:27 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1 | 339 |
! ! |
340 |
||
7
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
341 |
!Surface class methodsFor:'documentation'! |
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
342 |
|
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
343 |
version |
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
344 |
^'$Id$' |
11 | 345 |
! |
346 |
||
23
38ee47dbd976
Added version_HG to make Mercurial happy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
20
diff
changeset
|
347 |
version_HG |
38ee47dbd976
Added version_HG to make Mercurial happy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
20
diff
changeset
|
348 |
^ '$Changeset: <not expanded> $' |
7
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
349 |
! ! |
26
7f07a8c31e6d
Fixed flickring of Cairo::ClockView by rendering into an off-screen image.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
350 |