Skip to content

File: ShaderFlow/Message.py

ShaderFlow.Message

ShaderMessage

Source code in Projects/ShaderFlow/ShaderFlow/Message.py
  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
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
class ShaderMessage:

    # # Special

    class Custom:
        """Any data type"""
        data: Any

    # # Mouse

    class Mouse:

        @define
        class Position:
            # Real
            x:  int = 0
            y:  int = 0
            dx: int = 0
            dy: int = 0

            # Normalized
            u:  float = 0.0
            v:  float = 0.0
            du: float = 0.0
            dv: float = 0.0

        @define
        class Press:
            button: int = 0

            # Real
            x: int = 0
            y: int = 0

            # Normalized
            u: float = 0.0
            v: float = 0.0

        @define
        class Release:
            button: int = 0

            # Real
            x: int = 0
            y: int = 0

            # Normalized
            u: float = 0.0
            v: float = 0.0

        @define
        class Drag:
            # Real
            x:  int = 0
            y:  int = 0
            dx: int = 0
            dy: int = 0

            # Normalized
            u:  float = 0.0
            v:  float = 0.0
            du: float = 0.0
            dv: float = 0.0

        @define
        class Scroll:
            # Real
            dx: int = 0
            dy: int = 0

            # Normalized
            du: float = 0.0
            dv: float = 0.0

        @define
        class Enter:
            state: bool

    # # Window

    class Window:

        @define
        class Resize:
            width:  int = None
            height: int = None

            @property
            def size(self) -> tuple[int, int]:
                return self.width, self.height

        @define
        class Iconify:
            state: bool = None

        @define
        class FileDrop:
            files: list[str] = None

            def get(self, index: int) -> Optional[str]:
                return list_get(self.files, index)

            @property
            def first(self) -> Optional[str]:
                return self.get(0)

            @property
            def second(self) -> Optional[str]:
                return self.get(1)

            @property
            def third(self) -> Optional[str]:
                return self.get(2)

        @define
        class Close:
            ...

    # # Shader

    class Shader:

        @define
        class RecreateTextures:
            ...

        @define
        class Compile:
            ...

        @define
        class Render:
            ...

    # # Keyboard

    class Keyboard:

        @define
        class Press:
            key:       int = None
            action:    int = None
            modifiers: int = None

        @define
        class KeyDown:
            key:       int = None
            modifiers: int = None

        @define
        class KeyUp:
            key:       int = None
            modifiers: int = None

        @define
        class Unicode:
            char: str = None

Custom

Any data type

Source code in Projects/ShaderFlow/ShaderFlow/Message.py
12
13
14
class Custom:
    """Any data type"""
    data: Any
data
data: Any

Mouse

Source code in Projects/ShaderFlow/ShaderFlow/Message.py
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
class Mouse:

    @define
    class Position:
        # Real
        x:  int = 0
        y:  int = 0
        dx: int = 0
        dy: int = 0

        # Normalized
        u:  float = 0.0
        v:  float = 0.0
        du: float = 0.0
        dv: float = 0.0

    @define
    class Press:
        button: int = 0

        # Real
        x: int = 0
        y: int = 0

        # Normalized
        u: float = 0.0
        v: float = 0.0

    @define
    class Release:
        button: int = 0

        # Real
        x: int = 0
        y: int = 0

        # Normalized
        u: float = 0.0
        v: float = 0.0

    @define
    class Drag:
        # Real
        x:  int = 0
        y:  int = 0
        dx: int = 0
        dy: int = 0

        # Normalized
        u:  float = 0.0
        v:  float = 0.0
        du: float = 0.0
        dv: float = 0.0

    @define
    class Scroll:
        # Real
        dx: int = 0
        dy: int = 0

        # Normalized
        du: float = 0.0
        dv: float = 0.0

    @define
    class Enter:
        state: bool
Position
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
20
21
22
23
24
25
26
27
28
29
30
31
32
@define
class Position:
    # Real
    x:  int = 0
    y:  int = 0
    dx: int = 0
    dy: int = 0

    # Normalized
    u:  float = 0.0
    v:  float = 0.0
    du: float = 0.0
    dv: float = 0.0
x
x: int = 0
y
y: int = 0
dx
dx: int = 0
dy
dy: int = 0
u
u: float = 0.0
v
v: float = 0.0
du
du: float = 0.0
dv
dv: float = 0.0
Press
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
34
35
36
37
38
39
40
41
42
43
44
@define
class Press:
    button: int = 0

    # Real
    x: int = 0
    y: int = 0

    # Normalized
    u: float = 0.0
    v: float = 0.0
button
button: int = 0
x
x: int = 0
y
y: int = 0
u
u: float = 0.0
v
v: float = 0.0
Release
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
46
47
48
49
50
51
52
53
54
55
56
@define
class Release:
    button: int = 0

    # Real
    x: int = 0
    y: int = 0

    # Normalized
    u: float = 0.0
    v: float = 0.0
button
button: int = 0
x
x: int = 0
y
y: int = 0
u
u: float = 0.0
v
v: float = 0.0
Drag
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
58
59
60
61
62
63
64
65
66
67
68
69
70
@define
class Drag:
    # Real
    x:  int = 0
    y:  int = 0
    dx: int = 0
    dy: int = 0

    # Normalized
    u:  float = 0.0
    v:  float = 0.0
    du: float = 0.0
    dv: float = 0.0
x
x: int = 0
y
y: int = 0
dx
dx: int = 0
dy
dy: int = 0
u
u: float = 0.0
v
v: float = 0.0
du
du: float = 0.0
dv
dv: float = 0.0
Scroll
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
72
73
74
75
76
77
78
79
80
@define
class Scroll:
    # Real
    dx: int = 0
    dy: int = 0

    # Normalized
    du: float = 0.0
    dv: float = 0.0
dx
dx: int = 0
dy
dy: int = 0
du
du: float = 0.0
dv
dv: float = 0.0
Enter
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
82
83
84
@define
class Enter:
    state: bool
state
state: bool

Window

Source code in Projects/ShaderFlow/ShaderFlow/Message.py
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
class Window:

    @define
    class Resize:
        width:  int = None
        height: int = None

        @property
        def size(self) -> tuple[int, int]:
            return self.width, self.height

    @define
    class Iconify:
        state: bool = None

    @define
    class FileDrop:
        files: list[str] = None

        def get(self, index: int) -> Optional[str]:
            return list_get(self.files, index)

        @property
        def first(self) -> Optional[str]:
            return self.get(0)

        @property
        def second(self) -> Optional[str]:
            return self.get(1)

        @property
        def third(self) -> Optional[str]:
            return self.get(2)

    @define
    class Close:
        ...
Resize
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
90
91
92
93
94
95
96
97
@define
class Resize:
    width:  int = None
    height: int = None

    @property
    def size(self) -> tuple[int, int]:
        return self.width, self.height
width
width: int = None
height
height: int = None
size
size: tuple[int, int]
Iconify
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
 99
100
101
@define
class Iconify:
    state: bool = None
state
state: bool = None
FileDrop
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
@define
class FileDrop:
    files: list[str] = None

    def get(self, index: int) -> Optional[str]:
        return list_get(self.files, index)

    @property
    def first(self) -> Optional[str]:
        return self.get(0)

    @property
    def second(self) -> Optional[str]:
        return self.get(1)

    @property
    def third(self) -> Optional[str]:
        return self.get(2)
files
files: list[str] = None
get
get(index: int) -> Optional[str]
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
107
108
def get(self, index: int) -> Optional[str]:
    return list_get(self.files, index)
first
first: Optional[str]
second
second: Optional[str]
third
third: Optional[str]
Close
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
122
123
124
@define
class Close:
    ...

Shader

Source code in Projects/ShaderFlow/ShaderFlow/Message.py
128
129
130
131
132
133
134
135
136
137
138
139
140
class Shader:

    @define
    class RecreateTextures:
        ...

    @define
    class Compile:
        ...

    @define
    class Render:
        ...
RecreateTextures
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
130
131
132
@define
class RecreateTextures:
    ...
Compile
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
134
135
136
@define
class Compile:
    ...
Render
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
138
139
140
@define
class Render:
    ...

Keyboard

Source code in Projects/ShaderFlow/ShaderFlow/Message.py
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
class Keyboard:

    @define
    class Press:
        key:       int = None
        action:    int = None
        modifiers: int = None

    @define
    class KeyDown:
        key:       int = None
        modifiers: int = None

    @define
    class KeyUp:
        key:       int = None
        modifiers: int = None

    @define
    class Unicode:
        char: str = None
Press
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
146
147
148
149
150
@define
class Press:
    key:       int = None
    action:    int = None
    modifiers: int = None
key
key: int = None
action
action: int = None
modifiers
modifiers: int = None
KeyDown
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
152
153
154
155
@define
class KeyDown:
    key:       int = None
    modifiers: int = None
key
key: int = None
modifiers
modifiers: int = None
KeyUp
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
157
158
159
160
@define
class KeyUp:
    key:       int = None
    modifiers: int = None
key
key: int = None
modifiers
modifiers: int = None
Unicode
Source code in Projects/ShaderFlow/ShaderFlow/Message.py
162
163
164
@define
class Unicode:
    char: str = None
char
char: str = None