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
|
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
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
running = NO;
}
- (void)keyWasPressed: (OGKKeyPressEvent*)event
display: (OGKDisplay*)display
{
of_log(@"Pressed: %d", event.keycode);
switch (event.keycode) {
case OGK_KEY_R:
tint = ogk_color(1, 0.5, 0.5, 0);
break;
case OGK_KEY_G:
tint = ogk_color(0.5, 1, 0.5, 0);
break;
case OGK_KEY_B:
tint = ogk_color(0.5, 0.5, 1, 0);
break;
case OGK_KEY_N:
tint = ogk_color(1, 1, 1, 0);
break;
case OGK_KEY_Q:
running = NO;
break;
}
}
- (void)keyWasReleased: (OGKKeyReleaseEvent*)event
display: (OGKDisplay*)display
{
of_log(@"Released: %d", event.keycode);
}
- (void)mouseWasMoved: (OGKMouseMovedEvent*)event
display: (OGKDisplay*)display
{
of_log(@"Mouse moved: X=%.f(%.f) Y=%.f(%.f) WX=%.f(%.f) WY=%.f(%.f)",
event.cursor.x, event.deltaCursor.x,
event.cursor.y, event.deltaCursor.y,
event.wheel.x, event.deltaWheel.x,
event.wheel.y, event.deltaWheel.y);
position = event.cursor;
scale = of_dimension(bitmap.size.width + event.wheel.x,
bitmap.size.height + event.wheel.y);
}
- (void)mouseButtonWasPressed: (OGKMouseButtonPressedEvent*)event
display: (OGKDisplay*)display
{
of_log(@"Mouse button was pressed: %d (X=%.f Y=%.f WX=%.f WY=%.f)",
event.button, event.cursor.x, event.cursor.y,
|
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
-
+
+
+
|
{
[eventQueue handleEvents];
}
- (void)draw
{
[OGKBitmap clearToColor: OGK_COLOR_BLACK];
[bitmap drawAtPosition: position];
[bitmap drawAtPosition: position
scale: scale
tint: tint];
[display update];
}
- (void)applicationDidFinishLaunching
{
ogk_display_flags_t flags =
OGK_DISPLAY_FLAGS_RESIZABLE |
|
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
+
+
+
|
eventQueue.delegate = self;
[eventQueue registerDisplay: display];
[eventQueue registerKeyboard];
[eventQueue registerMouse];
bitmap = [[OGKBitmap alloc] initWithFile: @"test.bmp"];
position = of_point(display.size.width / 2, display.size.height / 2);
scale = bitmap.size;
tint = ogk_color(1, 1, 1, 0);
for (running = YES; running;) {
@autoreleasepool {
[self handleEvents];
[self draw];
}
}
}
@end
|