/
SurfacePlugin.class.st
86 lines (72 loc) · 2.25 KB
/
SurfacePlugin.class.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
"
This plugin is a fake. It doesn't do anything useful. It's sole purpose is to wrap the C code that's associated with the SurfacePlugin into the main VM generation process. Since the C code isn't easily generated from ST code this is (unfortunately) necessary. But look on the bright side - you don't have to define any weird stuff for the C compiler. Isn't that great?! (just kidding...)
"
Class {
#name : #SurfacePlugin,
#superclass : #InterpreterPlugin,
#category : #'VMMaker-Plugins'
}
{ #category : #translation }
SurfacePlugin class >> hasHeaderFile [
"If there is a single intrinsic header file to be associated with the plugin, here is where you want to flag"
^true
]
{ #category : #translation }
SurfacePlugin class >> requiresCrossPlatformFiles [
"If there cross platform files to be associated with the plugin, here is where you want to flag"
^true
]
{ #category : #translation }
SurfacePlugin class >> translateInDirectory: directory doInlining: inlineFlag [
"handle a special case external file rather than normal generated code."
| cg |
self initialize.
cg := self buildCodeGenerator.
"We rely on the fake entry points implemented on the instance side to allow the export list to be accurate. Please update them if you change the code"
^cg exportedPrimitiveNames asArray
]
{ #category : #'fake entry points' }
SurfacePlugin >> initialiseModule [
"Fake entry point"
<export: true>
]
{ #category : #'fake entry points' }
SurfacePlugin >> ioFindSurface [
"Fake entry point"
<export: true>
]
{ #category : #'fake entry points' }
SurfacePlugin >> ioGetSurfaceFormat [
"Fake entry point"
<export: true>
]
{ #category : #'fake entry points' }
SurfacePlugin >> ioLockSurface [
"Fake entry point"
<export: true>
]
{ #category : #'fake entry points' }
SurfacePlugin >> ioRegisterSurface [
"Fake entry point"
<export: true>
]
{ #category : #'fake entry points' }
SurfacePlugin >> ioShowSurface [
"Fake entry point"
<export: true>
]
{ #category : #'fake entry points' }
SurfacePlugin >> ioUnlockSurface [
"Fake entry point"
<export: true>
]
{ #category : #'fake entry points' }
SurfacePlugin >> ioUnregisterSurface [
"Fake entry point"
<export: true>
]
{ #category : #'fake entry points' }
SurfacePlugin >> shutdownModule [
"Fake entry point"
<export: true>
]