reflexion 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. checksums.yaml +5 -5
  2. data/.doc/ext/reflex/application.cpp +9 -5
  3. data/.doc/ext/reflex/capture_event.cpp +0 -4
  4. data/.doc/ext/reflex/contact_event.cpp +17 -10
  5. data/.doc/ext/reflex/draw_event.cpp +1 -5
  6. data/.doc/ext/reflex/ellipse_shape.cpp +51 -24
  7. data/.doc/ext/reflex/event.cpp +0 -4
  8. data/.doc/ext/reflex/filter.cpp +81 -0
  9. data/.doc/ext/reflex/focus_event.cpp +9 -13
  10. data/.doc/ext/reflex/frame_event.cpp +40 -6
  11. data/.doc/ext/reflex/image_view.cpp +1 -10
  12. data/.doc/ext/reflex/key_event.cpp +2 -6
  13. data/.doc/ext/reflex/line_shape.cpp +99 -0
  14. data/.doc/ext/reflex/motion_event.cpp +75 -0
  15. data/.doc/ext/reflex/native.cpp +18 -18
  16. data/.doc/ext/reflex/pointer_event.cpp +5 -11
  17. data/.doc/ext/reflex/polygon_shape.cpp +65 -0
  18. data/.doc/ext/reflex/rect_shape.cpp +102 -23
  19. data/.doc/ext/reflex/reflex.cpp +21 -2
  20. data/.doc/ext/reflex/scroll_event.cpp +0 -6
  21. data/.doc/ext/reflex/selector.cpp +43 -15
  22. data/.doc/ext/reflex/shape.cpp +211 -0
  23. data/.doc/ext/reflex/style.cpp +359 -185
  24. data/.doc/ext/reflex/style_length.cpp +163 -35
  25. data/.doc/ext/reflex/timer.cpp +101 -0
  26. data/.doc/ext/reflex/timer_event.cpp +123 -0
  27. data/.doc/ext/reflex/update_event.cpp +11 -6
  28. data/.doc/ext/reflex/view.cpp +548 -144
  29. data/.doc/ext/reflex/wheel_event.cpp +0 -22
  30. data/.doc/ext/reflex/window.cpp +7 -15
  31. data/README.md +1 -1
  32. data/Rakefile +14 -12
  33. data/VERSION +1 -1
  34. data/ext/reflex/application.cpp +10 -5
  35. data/ext/reflex/capture_event.cpp +1 -5
  36. data/ext/reflex/contact_event.cpp +19 -11
  37. data/ext/reflex/defs.h +5 -2
  38. data/ext/reflex/draw_event.cpp +2 -6
  39. data/ext/reflex/ellipse_shape.cpp +56 -25
  40. data/ext/reflex/event.cpp +0 -4
  41. data/ext/reflex/extconf.rb +1 -2
  42. data/ext/reflex/filter.cpp +86 -0
  43. data/ext/reflex/focus_event.cpp +11 -15
  44. data/ext/reflex/frame_event.cpp +46 -7
  45. data/ext/reflex/image_view.cpp +1 -10
  46. data/ext/reflex/key_event.cpp +3 -7
  47. data/ext/reflex/line_shape.cpp +104 -0
  48. data/ext/reflex/motion_event.cpp +79 -0
  49. data/ext/reflex/native.cpp +18 -18
  50. data/ext/reflex/pointer_event.cpp +6 -12
  51. data/ext/reflex/polygon_shape.cpp +68 -0
  52. data/ext/reflex/rect_shape.cpp +113 -24
  53. data/ext/reflex/reflex.cpp +21 -2
  54. data/ext/reflex/scroll_event.cpp +1 -7
  55. data/ext/reflex/selector.cpp +46 -16
  56. data/ext/reflex/selector.h +130 -0
  57. data/ext/reflex/shape.cpp +231 -0
  58. data/ext/reflex/style.cpp +363 -192
  59. data/ext/reflex/style_length.cpp +164 -37
  60. data/ext/reflex/timer.cpp +108 -0
  61. data/ext/reflex/timer_event.cpp +133 -0
  62. data/ext/reflex/update_event.cpp +13 -7
  63. data/ext/reflex/view.cpp +594 -150
  64. data/ext/reflex/wheel_event.cpp +1 -25
  65. data/ext/reflex/window.cpp +7 -15
  66. data/include/reflex/application.h +2 -0
  67. data/include/reflex/debug.h +22 -0
  68. data/include/reflex/defs.h +45 -0
  69. data/include/reflex/event.h +60 -16
  70. data/include/reflex/exception.h +9 -0
  71. data/include/reflex/filter.h +56 -0
  72. data/include/reflex/image_view.h +1 -1
  73. data/include/reflex/ruby/application.h +17 -9
  74. data/include/reflex/ruby/event.h +22 -0
  75. data/include/reflex/ruby/filter.h +69 -0
  76. data/include/reflex/ruby/selector.h +1 -1
  77. data/include/reflex/ruby/shape.h +140 -0
  78. data/include/reflex/ruby/style.h +1 -1
  79. data/include/reflex/ruby/timer.h +69 -0
  80. data/include/reflex/ruby/view.h +43 -76
  81. data/include/reflex/ruby/window.h +17 -32
  82. data/include/reflex/ruby.h +6 -4
  83. data/include/reflex/selector.h +54 -2
  84. data/include/reflex/shape.h +211 -0
  85. data/include/reflex/style.h +111 -77
  86. data/include/reflex/timer.h +73 -0
  87. data/include/reflex/view.h +181 -59
  88. data/include/reflex/window.h +4 -3
  89. data/include/reflex.h +5 -4
  90. data/lib/reflex/application.rb +6 -3
  91. data/lib/reflex/button.rb +2 -2
  92. data/lib/reflex/capture_event.rb +7 -6
  93. data/lib/reflex/contact_event.rb +10 -12
  94. data/lib/reflex/draw_event.rb +6 -1
  95. data/lib/reflex/ellipse_shape.rb +27 -0
  96. data/lib/reflex/filter.rb +18 -0
  97. data/lib/reflex/fixture.rb +4 -0
  98. data/lib/reflex/focus_event.rb +10 -12
  99. data/lib/reflex/frame_event.rb +1 -1
  100. data/lib/reflex/helper.rb +17 -29
  101. data/lib/reflex/key_event.rb +13 -11
  102. data/lib/reflex/line_shape.rb +18 -0
  103. data/lib/reflex/{texture.rb → matrix.rb} +2 -2
  104. data/lib/reflex/module.rb +4 -19
  105. data/lib/reflex/pointer_event.rb +26 -37
  106. data/lib/reflex/polygon.rb +14 -0
  107. data/lib/reflex/polygon_shape.rb +23 -0
  108. data/lib/reflex/polyline.rb +13 -0
  109. data/lib/reflex/rect_shape.rb +20 -0
  110. data/lib/reflex/reflex.rb +1 -3
  111. data/lib/reflex/scroll_event.rb +1 -1
  112. data/lib/reflex/selector.rb +2 -2
  113. data/lib/reflex/shape.rb +62 -0
  114. data/lib/reflex/style.rb +78 -11
  115. data/lib/reflex/style_length.rb +0 -11
  116. data/lib/reflex/text_view.rb +7 -24
  117. data/lib/reflex/timer.rb +30 -0
  118. data/lib/reflex/timer_event.rb +29 -0
  119. data/lib/reflex/update_event.rb +1 -1
  120. data/lib/reflex/view.rb +127 -32
  121. data/lib/reflex/wheel_event.rb +9 -1
  122. data/lib/reflex/window.rb +29 -9
  123. data/lib/reflex.rb +11 -5
  124. data/lib/reflexion.rb +23 -7
  125. data/reflex.gemspec +8 -10
  126. data/samples/bats.rb +4 -4
  127. data/samples/fans.rb +1 -1
  128. data/samples/fps.rb +5 -3
  129. data/samples/hello.rb +4 -6
  130. data/samples/image.rb +5 -4
  131. data/samples/ios/hello/hello.xcodeproj/project.pbxproj +0 -2
  132. data/samples/layout.rb +16 -7
  133. data/samples/model.rb +10 -7
  134. data/samples/physics.rb +22 -20
  135. data/samples/reflexion/breakout.rb +4 -5
  136. data/samples/reflexion/hello.rb +2 -2
  137. data/samples/reflexion/jump_action.rb +191 -0
  138. data/samples/reflexion/noise.rb +23 -0
  139. data/samples/reflexion/paint.rb +7 -6
  140. data/samples/reflexion/physics.rb +15 -8
  141. data/samples/reflexion/pulse.rb +24 -10
  142. data/samples/shader.rb +8 -6
  143. data/samples/shapes.rb +63 -14
  144. data/samples/tree.rb +9 -10
  145. data/samples/views.rb +3 -3
  146. data/samples/visuals.rb +2 -5
  147. data/src/body.cpp +146 -345
  148. data/src/body.h +91 -0
  149. data/src/event.cpp +66 -16
  150. data/src/exception.cpp +13 -3
  151. data/src/filter.cpp +76 -0
  152. data/src/fixture.cpp +164 -39
  153. data/src/fixture.h +85 -0
  154. data/src/image_view.cpp +4 -4
  155. data/src/ios/app_delegate.h +5 -10
  156. data/src/ios/app_delegate.mm +79 -41
  157. data/src/ios/application.h +32 -0
  158. data/src/ios/application.mm +35 -25
  159. data/src/ios/event.mm +8 -4
  160. data/src/ios/reflex.mm +0 -7
  161. data/src/ios/view_controller.h +33 -0
  162. data/src/ios/view_controller.mm +436 -0
  163. data/src/ios/window.h +40 -0
  164. data/src/ios/window.mm +59 -250
  165. data/src/osx/app_delegate.h +5 -10
  166. data/src/osx/app_delegate.mm +52 -55
  167. data/src/osx/application.h +32 -0
  168. data/src/osx/application.mm +44 -39
  169. data/src/osx/native_window.h +0 -15
  170. data/src/osx/native_window.mm +131 -115
  171. data/src/osx/opengl_view.h +0 -2
  172. data/src/osx/opengl_view.mm +12 -3
  173. data/src/osx/reflex.mm +0 -9
  174. data/src/osx/window.h +42 -0
  175. data/src/osx/window.mm +45 -252
  176. data/src/selector.cpp +232 -7
  177. data/src/selector.h +52 -0
  178. data/src/shape.cpp +1191 -0
  179. data/src/shape.h +61 -0
  180. data/src/style.cpp +571 -374
  181. data/src/style.h +39 -0
  182. data/src/timer.cpp +291 -0
  183. data/src/timer.h +55 -0
  184. data/src/view.cpp +1624 -984
  185. data/src/view.h +56 -0
  186. data/src/win32/window.cpp +3 -4
  187. data/src/window.cpp +275 -20
  188. data/src/window.h +92 -0
  189. data/src/world.cpp +112 -111
  190. data/src/world.h +34 -53
  191. data/task/box2d.rake +31 -10
  192. data/test/test_capture_event.rb +8 -6
  193. data/test/test_pointer_event.rb +85 -0
  194. data/test/test_selector.rb +1 -1
  195. data/test/test_shape.rb +71 -0
  196. data/test/test_style.rb +77 -11
  197. data/test/test_style_length.rb +42 -13
  198. data/test/test_view.rb +138 -14
  199. metadata +109 -210
  200. data/.doc/ext/reflex/arc_shape.cpp +0 -89
  201. data/.doc/ext/reflex/body.cpp +0 -299
  202. data/.doc/ext/reflex/fixture.cpp +0 -101
  203. data/.doc/ext/reflex/shape_view.cpp +0 -153
  204. data/ext/reflex/arc_shape.cpp +0 -94
  205. data/ext/reflex/body.cpp +0 -328
  206. data/ext/reflex/fixture.cpp +0 -108
  207. data/ext/reflex/shape_view.cpp +0 -161
  208. data/include/reflex/bitmap.h +0 -20
  209. data/include/reflex/body.h +0 -128
  210. data/include/reflex/bounds.h +0 -20
  211. data/include/reflex/color.h +0 -20
  212. data/include/reflex/color_space.h +0 -20
  213. data/include/reflex/fixture.h +0 -117
  214. data/include/reflex/font.h +0 -20
  215. data/include/reflex/image.h +0 -20
  216. data/include/reflex/matrix.h +0 -20
  217. data/include/reflex/painter.h +0 -20
  218. data/include/reflex/point.h +0 -24
  219. data/include/reflex/ruby/body.h +0 -41
  220. data/include/reflex/ruby/fixture.h +0 -41
  221. data/include/reflex/ruby/shape_view.h +0 -96
  222. data/include/reflex/shader.h +0 -20
  223. data/include/reflex/shape_view.h +0 -146
  224. data/include/reflex/texture.h +0 -20
  225. data/lib/reflex/body.rb +0 -22
  226. data/lib/reflex/flags.rb +0 -18
  227. data/lib/reflex/shape_view.rb +0 -25
  228. data/src/ios/application_data.h +0 -45
  229. data/src/ios/native_window.h +0 -39
  230. data/src/ios/native_window.mm +0 -224
  231. data/src/ios/opengl_view.h +0 -13
  232. data/src/ios/opengl_view.mm +0 -139
  233. data/src/ios/window_data.h +0 -75
  234. data/src/osx/application_data.h +0 -45
  235. data/src/osx/window_data.h +0 -75
  236. data/src/physics/Box2D/Box2D.h +0 -68
  237. data/src/physics/Box2D/Collision/Shapes/b2ChainShape.cpp +0 -193
  238. data/src/physics/Box2D/Collision/Shapes/b2ChainShape.h +0 -105
  239. data/src/physics/Box2D/Collision/Shapes/b2CircleShape.cpp +0 -99
  240. data/src/physics/Box2D/Collision/Shapes/b2CircleShape.h +0 -91
  241. data/src/physics/Box2D/Collision/Shapes/b2EdgeShape.cpp +0 -138
  242. data/src/physics/Box2D/Collision/Shapes/b2EdgeShape.h +0 -74
  243. data/src/physics/Box2D/Collision/Shapes/b2PolygonShape.cpp +0 -467
  244. data/src/physics/Box2D/Collision/Shapes/b2PolygonShape.h +0 -101
  245. data/src/physics/Box2D/Collision/Shapes/b2Shape.h +0 -101
  246. data/src/physics/Box2D/Collision/b2BroadPhase.cpp +0 -119
  247. data/src/physics/Box2D/Collision/b2BroadPhase.h +0 -257
  248. data/src/physics/Box2D/Collision/b2CollideCircle.cpp +0 -154
  249. data/src/physics/Box2D/Collision/b2CollideEdge.cpp +0 -698
  250. data/src/physics/Box2D/Collision/b2CollidePolygon.cpp +0 -239
  251. data/src/physics/Box2D/Collision/b2Collision.cpp +0 -252
  252. data/src/physics/Box2D/Collision/b2Collision.h +0 -277
  253. data/src/physics/Box2D/Collision/b2Distance.cpp +0 -603
  254. data/src/physics/Box2D/Collision/b2Distance.h +0 -141
  255. data/src/physics/Box2D/Collision/b2DynamicTree.cpp +0 -778
  256. data/src/physics/Box2D/Collision/b2DynamicTree.h +0 -289
  257. data/src/physics/Box2D/Collision/b2TimeOfImpact.cpp +0 -486
  258. data/src/physics/Box2D/Collision/b2TimeOfImpact.h +0 -58
  259. data/src/physics/Box2D/Common/b2BlockAllocator.cpp +0 -215
  260. data/src/physics/Box2D/Common/b2BlockAllocator.h +0 -62
  261. data/src/physics/Box2D/Common/b2Draw.cpp +0 -44
  262. data/src/physics/Box2D/Common/b2Draw.h +0 -86
  263. data/src/physics/Box2D/Common/b2GrowableStack.h +0 -85
  264. data/src/physics/Box2D/Common/b2Math.cpp +0 -94
  265. data/src/physics/Box2D/Common/b2Math.h +0 -720
  266. data/src/physics/Box2D/Common/b2Settings.cpp +0 -44
  267. data/src/physics/Box2D/Common/b2Settings.h +0 -151
  268. data/src/physics/Box2D/Common/b2StackAllocator.cpp +0 -83
  269. data/src/physics/Box2D/Common/b2StackAllocator.h +0 -60
  270. data/src/physics/Box2D/Common/b2Timer.cpp +0 -101
  271. data/src/physics/Box2D/Common/b2Timer.h +0 -50
  272. data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp +0 -53
  273. data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h +0 -39
  274. data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp +0 -53
  275. data/src/physics/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h +0 -39
  276. data/src/physics/Box2D/Dynamics/Contacts/b2CircleContact.cpp +0 -52
  277. data/src/physics/Box2D/Dynamics/Contacts/b2CircleContact.h +0 -39
  278. data/src/physics/Box2D/Dynamics/Contacts/b2Contact.cpp +0 -247
  279. data/src/physics/Box2D/Dynamics/Contacts/b2Contact.h +0 -349
  280. data/src/physics/Box2D/Dynamics/Contacts/b2ContactSolver.cpp +0 -838
  281. data/src/physics/Box2D/Dynamics/Contacts/b2ContactSolver.h +0 -95
  282. data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp +0 -49
  283. data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h +0 -39
  284. data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp +0 -49
  285. data/src/physics/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h +0 -39
  286. data/src/physics/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp +0 -49
  287. data/src/physics/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h +0 -38
  288. data/src/physics/Box2D/Dynamics/Contacts/b2PolygonContact.cpp +0 -52
  289. data/src/physics/Box2D/Dynamics/Contacts/b2PolygonContact.h +0 -39
  290. data/src/physics/Box2D/Dynamics/Joints/b2DistanceJoint.cpp +0 -260
  291. data/src/physics/Box2D/Dynamics/Joints/b2DistanceJoint.h +0 -169
  292. data/src/physics/Box2D/Dynamics/Joints/b2FrictionJoint.cpp +0 -251
  293. data/src/physics/Box2D/Dynamics/Joints/b2FrictionJoint.h +0 -119
  294. data/src/physics/Box2D/Dynamics/Joints/b2GearJoint.cpp +0 -419
  295. data/src/physics/Box2D/Dynamics/Joints/b2GearJoint.h +0 -125
  296. data/src/physics/Box2D/Dynamics/Joints/b2Joint.cpp +0 -211
  297. data/src/physics/Box2D/Dynamics/Joints/b2Joint.h +0 -226
  298. data/src/physics/Box2D/Dynamics/Joints/b2MotorJoint.cpp +0 -304
  299. data/src/physics/Box2D/Dynamics/Joints/b2MotorJoint.h +0 -133
  300. data/src/physics/Box2D/Dynamics/Joints/b2MouseJoint.cpp +0 -222
  301. data/src/physics/Box2D/Dynamics/Joints/b2MouseJoint.h +0 -129
  302. data/src/physics/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp +0 -629
  303. data/src/physics/Box2D/Dynamics/Joints/b2PrismaticJoint.h +0 -196
  304. data/src/physics/Box2D/Dynamics/Joints/b2PulleyJoint.cpp +0 -348
  305. data/src/physics/Box2D/Dynamics/Joints/b2PulleyJoint.h +0 -152
  306. data/src/physics/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp +0 -502
  307. data/src/physics/Box2D/Dynamics/Joints/b2RevoluteJoint.h +0 -204
  308. data/src/physics/Box2D/Dynamics/Joints/b2RopeJoint.cpp +0 -241
  309. data/src/physics/Box2D/Dynamics/Joints/b2RopeJoint.h +0 -114
  310. data/src/physics/Box2D/Dynamics/Joints/b2WeldJoint.cpp +0 -344
  311. data/src/physics/Box2D/Dynamics/Joints/b2WeldJoint.h +0 -126
  312. data/src/physics/Box2D/Dynamics/Joints/b2WheelJoint.cpp +0 -419
  313. data/src/physics/Box2D/Dynamics/Joints/b2WheelJoint.h +0 -210
  314. data/src/physics/Box2D/Dynamics/b2Body.cpp +0 -549
  315. data/src/physics/Box2D/Dynamics/b2Body.h +0 -860
  316. data/src/physics/Box2D/Dynamics/b2ContactManager.cpp +0 -296
  317. data/src/physics/Box2D/Dynamics/b2ContactManager.h +0 -52
  318. data/src/physics/Box2D/Dynamics/b2Fixture.cpp +0 -303
  319. data/src/physics/Box2D/Dynamics/b2Fixture.h +0 -345
  320. data/src/physics/Box2D/Dynamics/b2Island.cpp +0 -539
  321. data/src/physics/Box2D/Dynamics/b2Island.h +0 -93
  322. data/src/physics/Box2D/Dynamics/b2TimeStep.h +0 -70
  323. data/src/physics/Box2D/Dynamics/b2World.cpp +0 -1339
  324. data/src/physics/Box2D/Dynamics/b2World.h +0 -354
  325. data/src/physics/Box2D/Dynamics/b2WorldCallbacks.cpp +0 -36
  326. data/src/physics/Box2D/Dynamics/b2WorldCallbacks.h +0 -155
  327. data/src/physics/Box2D/Rope/b2Rope.cpp +0 -259
  328. data/src/physics/Box2D/Rope/b2Rope.h +0 -115
  329. data/src/shape_view.cpp +0 -306
@@ -1,16 +1,10 @@
1
1
  #include "reflex/ruby/event.h"
2
2
 
3
3
 
4
- #include <rucy.h>
5
4
  #include "rays/ruby/point.h"
6
5
  #include "defs.h"
7
6
 
8
7
 
9
- using namespace Rucy;
10
-
11
- using Reflex::coord;
12
-
13
-
14
8
  RUCY_DEFINE_VALUE_FROM_TO(Reflex::WheelEvent)
15
9
 
16
10
  #define THIS to<Reflex::WheelEvent*>(self)
@@ -104,22 +98,6 @@ RUCY_DEF0(modifiers)
104
98
  }
105
99
  RUCY_END
106
100
 
107
- static
108
- RUCY_DEF0(delta)
109
- {
110
- CHECK;
111
- return value(Rays::Point(THIS->dx, THIS->dy, THIS->dz));
112
- }
113
- RUCY_END
114
-
115
- static
116
- RUCY_DEF0(position)
117
- {
118
- CHECK;
119
- return value(Rays::Point(THIS->x, THIS->y, THIS->z));
120
- }
121
- RUCY_END
122
-
123
101
 
124
102
  static Class cWheelEvent;
125
103
 
@@ -130,7 +108,7 @@ Init_wheel_event ()
130
108
 
131
109
  cWheelEvent = mReflex.define_class("WheelEvent", Reflex::event_class());
132
110
  cWheelEvent.define_alloc_func(alloc);
133
- cWheelEvent.define_private_method("initialize", initialize);
111
+ cWheelEvent.define_private_method("initialize", initialize);
134
112
  cWheelEvent.define_private_method("initialize_copy", initialize_copy);
135
113
  cWheelEvent.define_method("dx", dx);
136
114
  cWheelEvent.define_method("dy", dy);
@@ -139,8 +117,6 @@ Init_wheel_event ()
139
117
  cWheelEvent.define_method("y", y);
140
118
  cWheelEvent.define_method("z", z);
141
119
  cWheelEvent.define_method("modifiers", modifiers);
142
- cWheelEvent.define_method("delta", delta);
143
- cWheelEvent.define_method("position", position);
144
120
  }
145
121
 
146
122
 
@@ -1,15 +1,10 @@
1
1
  #include "reflex/ruby/window.h"
2
2
 
3
3
 
4
- #include <rucy.h>
5
4
  #include <rays/ruby/bounds.h>
6
5
  #include <rays/ruby/painter.h>
7
6
  #include "reflex/ruby/view.h"
8
-
9
-
10
- using namespace Rucy;
11
-
12
- using Reflex::coord;
7
+ #include "defs.h"
13
8
 
14
9
 
15
10
  RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::Window)
@@ -18,7 +13,7 @@ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::Window)
18
13
 
19
14
  #define CHECK RUCY_CHECK_OBJECT(Reflex::Window, self)
20
15
 
21
- #define CALL(fun) RUCY_WRAPPER_CALL(Reflex::Window, THIS, fun)
16
+ #define CALL(fun) RUCY_CALL_SUPER(THIS, fun)
22
17
 
23
18
 
24
19
  static
@@ -82,10 +77,11 @@ RUCY_DEF0(get_title)
82
77
  RUCY_END
83
78
 
84
79
  static
85
- RUCY_DEF1(set_frame, arg)
80
+ RUCY_DEFN(set_frame)
86
81
  {
87
82
  CHECK;
88
- THIS->set_frame(to<Rays::Bounds>(arg));
83
+ THIS->set_frame(to<Rays::Bounds>(argc, argv));
84
+ return value(THIS->frame());
89
85
  }
90
86
  RUCY_END
91
87
 
@@ -253,9 +249,6 @@ RUCY_DEF1(on_wheel, event)
253
249
  }
254
250
  RUCY_END
255
251
 
256
- static
257
- RUCY_DEF_clear_override_flags(cof, Reflex::Window);
258
-
259
252
 
260
253
  static Class cWindow;
261
254
 
@@ -272,8 +265,8 @@ Init_window ()
272
265
  cWindow.define_method("redraw", redraw);
273
266
  cWindow.define_method("title=", set_title);
274
267
  cWindow.define_method("title", get_title);
275
- cWindow.define_private_method("set_frame", set_frame);
276
- cWindow.define_private_method("get_frame", get_frame);
268
+ cWindow.define_method("frame=", set_frame);
269
+ cWindow.define_method("frame", get_frame);
277
270
  cWindow.define_method("hidden", hidden);
278
271
  cWindow.define_method("root", root);
279
272
  cWindow.define_method("focus", focus);
@@ -293,7 +286,6 @@ Init_window ()
293
286
  cWindow.define_method("on_pointer_up", on_pointer_up);
294
287
  cWindow.define_method("on_pointer_move", on_pointer_move);
295
288
  cWindow.define_method("on_wheel", on_wheel);
296
- cWindow.define_clear_override_flags(cof);
297
289
  }
298
290
 
299
291
 
@@ -37,6 +37,8 @@ namespace Reflex
37
37
 
38
38
  virtual void on_quit (Event* e);
39
39
 
40
+ virtual void on_motion (MotionEvent* e);
41
+
40
42
  virtual void on_preference (Event* e);
41
43
 
42
44
  virtual void on_about (Event* e);
@@ -0,0 +1,22 @@
1
+ // -*- c++ -*-
2
+ #pragma once
3
+ #ifndef __REFLEX_DEBUG_H__
4
+ #define __REFLEX_DEBUG_H__
5
+
6
+
7
+ #include <xot/debug.h>
8
+
9
+
10
+ namespace Reflex
11
+ {
12
+
13
+
14
+ using Xot::dout;
15
+
16
+ using Xot::doutln;
17
+
18
+
19
+ }// Reflex
20
+
21
+
22
+ #endif//EOH
@@ -7,6 +7,32 @@
7
7
  #include <rays/defs.h>
8
8
 
9
9
 
10
+ namespace Rays
11
+ {
12
+
13
+
14
+ struct Coord2;
15
+ struct Coord3;
16
+ struct Coord4;
17
+ struct Point;
18
+ struct Bounds;
19
+ struct Color;
20
+ struct Matrix;
21
+
22
+ class ColorSpace;
23
+ class Polyline;
24
+ class Polygon;
25
+ class Bitmap;
26
+ class Image;
27
+ class Font;
28
+ class Shader;
29
+
30
+ class Painter;
31
+
32
+
33
+ }// Rays
34
+
35
+
10
36
  namespace Reflex
11
37
  {
12
38
 
@@ -15,8 +41,27 @@ namespace Reflex
15
41
 
16
42
  using Rays::String;
17
43
 
44
+
18
45
  using Rays::coord;
19
46
 
47
+ using Rays::Coord2;
48
+ using Rays::Coord3;
49
+ using Rays::Coord4;
50
+ using Rays::Point;
51
+ using Rays::Bounds;
52
+ using Rays::Color;
53
+ using Rays::Matrix;
54
+
55
+ using Rays::ColorSpace;
56
+ using Rays::Polyline;
57
+ using Rays::Polygon;
58
+ using Rays::Bitmap;
59
+ using Rays::Image;
60
+ using Rays::Font;
61
+ using Rays::Shader;
62
+
63
+ using Rays::Painter;
64
+
20
65
 
21
66
  enum KeyCode
22
67
  {
@@ -4,16 +4,18 @@
4
4
  #define __REFLEX_EVENT_H__
5
5
 
6
6
 
7
+ #include <rays/point.h>
8
+ #include <rays/bounds.h>
9
+ #include <rays/painter.h>
7
10
  #include <reflex/defs.h>
8
- #include <reflex/point.h>
9
- #include <reflex/bounds.h>
10
- #include <reflex/painter.h>
11
+ #include <reflex/timer.h>
11
12
 
12
13
 
13
14
  namespace Reflex
14
15
  {
15
16
 
16
17
 
18
+ class Shape;
17
19
  class View;
18
20
 
19
21
 
@@ -35,12 +37,24 @@ namespace Reflex
35
37
  };// Event
36
38
 
37
39
 
40
+ struct MotionEvent : public Event
41
+ {
42
+
43
+ Point gravity;
44
+
45
+ MotionEvent (const Point& gravity = Point(0, 9.8));
46
+
47
+ };// MotionEvent
48
+
49
+
38
50
  struct UpdateEvent : public Event
39
51
  {
40
52
 
53
+ double now;
54
+
41
55
  float dt;
42
56
 
43
- UpdateEvent (float dt = 0);
57
+ UpdateEvent (double now = 0, float dt = 0);
44
58
 
45
59
  };// UpdateEvent
46
60
 
@@ -71,6 +85,7 @@ namespace Reflex
71
85
  union
72
86
  {
73
87
  struct {coord dwidth, dheight;};
88
+
74
89
  struct {coord dw, dh;};
75
90
  };
76
91
 
@@ -99,13 +114,15 @@ namespace Reflex
99
114
  union
100
115
  {
101
116
  struct {coord x, y, z;};
102
- Coord3 scroll_;
117
+
118
+ Rays::Coord3 scroll_;
103
119
  };
104
120
 
105
121
  union
106
122
  {
107
123
  struct {coord dx, dy, dz;};
108
- Coord3 delta_;
124
+
125
+ Rays::Coord3 delta_;
109
126
  };
110
127
 
111
128
  ScrollEvent ();
@@ -130,11 +147,11 @@ namespace Reflex
130
147
 
131
148
  Type type;
132
149
 
133
- View *focus, *last;
150
+ View *current, *last;
134
151
 
135
152
  FocusEvent ();
136
153
 
137
- FocusEvent (Type type, View* focus, View* last);
154
+ FocusEvent (Type type, View* current, View* last);
138
155
 
139
156
  };// FocusEvent
140
157
 
@@ -185,7 +202,8 @@ namespace Reflex
185
202
  union
186
203
  {
187
204
  struct {coord x, y, z;};
188
- Coord3 positions[MAX];
205
+
206
+ Rays::Coord3 positions[MAX];
189
207
  };
190
208
 
191
209
  PointerEvent ();
@@ -215,13 +233,15 @@ namespace Reflex
215
233
  union
216
234
  {
217
235
  struct {coord dx, dy, dz;};
218
- Coord3 delta_;
236
+
237
+ Rays::Coord3 delta_;
219
238
  };
220
239
 
221
240
  union
222
241
  {
223
242
  struct {coord x, y, z;};
224
- Coord3 position_;
243
+
244
+ Rays::Coord3 position_;
225
245
  };
226
246
 
227
247
  uint modifiers;
@@ -232,14 +252,14 @@ namespace Reflex
232
252
  coord dx, coord dy, coord dz, coord x = 0, coord y = 0, coord z = 0,
233
253
  uint modifiers = 0);
234
254
 
235
- Point& delta ();
236
-
237
- const Point& delta () const;
238
-
239
255
  Point& position ();
240
256
 
241
257
  const Point& position () const;
242
258
 
259
+ Point& delta ();
260
+
261
+ const Point& delta () const;
262
+
243
263
  };// WheelEvent
244
264
 
245
265
 
@@ -255,6 +275,28 @@ namespace Reflex
255
275
  };// CaptureEvent
256
276
 
257
277
 
278
+ struct TimerEvent : public Event
279
+ {
280
+
281
+ Timer::Ref timer;
282
+
283
+ TimerEvent (Timer* timer = NULL);
284
+
285
+ View* owner () const;
286
+
287
+ int id () const;
288
+
289
+ float interval () const;
290
+
291
+ void set_count (int count);
292
+
293
+ int count () const;
294
+
295
+ bool is_finished () const;
296
+
297
+ };// TimerEvent
298
+
299
+
258
300
  struct ContactEvent : public Event
259
301
  {
260
302
 
@@ -262,11 +304,13 @@ namespace Reflex
262
304
 
263
305
  Type type;
264
306
 
307
+ Shape* shape;
308
+
265
309
  View* view;
266
310
 
267
311
  ContactEvent ();
268
312
 
269
- ContactEvent (Type type, View* view);
313
+ ContactEvent (Type type, Shape* shape);
270
314
 
271
315
  };// ContactEvent
272
316
 
@@ -26,6 +26,13 @@ namespace Reflex
26
26
  };
27
27
 
28
28
 
29
+ class PhysicsError : public ReflexError
30
+ {
31
+ typedef ReflexError Super;
32
+ public: PhysicsError (const char* str = NULL);
33
+ };
34
+
35
+
29
36
  namespace ErrorFunctions
30
37
  {
31
38
 
@@ -35,6 +42,8 @@ namespace Reflex
35
42
 
36
43
  void layout_error (const char* file, int line, const char* format = NULL, ...);
37
44
 
45
+ void physics_error (const char* file, int line, const char* format = NULL, ...);
46
+
38
47
  }// ErrorFunctions
39
48
 
40
49
 
@@ -0,0 +1,56 @@
1
+ // -*- c++ -*-
2
+ #pragma once
3
+ #ifndef __REFLEX_FILTER_H__
4
+ #define __REFLEX_FILTER_H__
5
+
6
+
7
+ #include <xot/ref.h>
8
+ #include <xot/pimpl.h>
9
+ #include <rays/image.h>
10
+ #include <rays/shader.h>
11
+ #include <rays/painter.h>
12
+ #include <reflex/defs.h>
13
+
14
+
15
+ namespace Reflex
16
+ {
17
+
18
+
19
+ class Filter : public Xot::RefCountable<>
20
+ {
21
+
22
+ typedef Filter This;
23
+
24
+ public:
25
+
26
+ typedef Xot::Ref<This> Ref;
27
+
28
+ Filter ();
29
+
30
+ Filter (const Shader& shader);
31
+
32
+ virtual ~Filter ();
33
+
34
+ virtual void apply (Painter* painter, const Image& image) const;
35
+
36
+ virtual void set_shader (const Shader& shader);
37
+
38
+ virtual Shader& shader ();
39
+
40
+ virtual const Shader& shader () const;
41
+
42
+ virtual operator bool () const;
43
+
44
+ virtual bool operator ! () const;
45
+
46
+ struct Data;
47
+
48
+ Xot::PImpl<Data> self;
49
+
50
+ };// Filter
51
+
52
+
53
+ }// Reflex
54
+
55
+
56
+ #endif//EOH
@@ -28,7 +28,7 @@ namespace Reflex
28
28
 
29
29
  virtual Image get_image () const;
30
30
 
31
- virtual Point content_size () const;
31
+ virtual Bounds content_bounds () const;
32
32
 
33
33
  virtual void on_draw (DrawEvent* e);
34
34
 
@@ -23,15 +23,14 @@ namespace Reflex
23
23
  class RubyApplication : public Rucy::ClassWrapper<T>
24
24
  {
25
25
 
26
- public:
26
+ typedef Rucy::ClassWrapper<T> Super;
27
27
 
28
- RUCY_OVERRIDE_BEGIN(Rucy::ClassWrapper<T>)
29
- RUCY_OVERRIDE_END
28
+ public:
30
29
 
31
30
  virtual void start ()
32
31
  {
33
32
  RUCY_SYM(start);
34
- if (RUCY_IS_OVERRIDABLE())
33
+ if (this->is_overridable())
35
34
  this->value.call(start);
36
35
  else
37
36
  return Super::start();
@@ -40,7 +39,7 @@ namespace Reflex
40
39
  virtual void quit ()
41
40
  {
42
41
  RUCY_SYM(quit);
43
- if (RUCY_IS_OVERRIDABLE())
42
+ if (this->is_overridable())
44
43
  this->value.call(quit);
45
44
  else
46
45
  return Super::quit();
@@ -49,7 +48,7 @@ namespace Reflex
49
48
  virtual void on_start (Event* e)
50
49
  {
51
50
  RUCY_SYM(on_start);
52
- if (RUCY_IS_OVERRIDABLE())
51
+ if (this->is_overridable())
53
52
  this->value.call(on_start, Rucy::value(e));
54
53
  else
55
54
  return Super::on_start(e);
@@ -58,16 +57,25 @@ namespace Reflex
58
57
  virtual void on_quit (Event* e)
59
58
  {
60
59
  RUCY_SYM(on_quit);
61
- if (RUCY_IS_OVERRIDABLE())
60
+ if (this->is_overridable())
62
61
  this->value.call(on_quit, Rucy::value(e));
63
62
  else
64
63
  return Super::on_quit(e);
65
64
  }
66
65
 
66
+ virtual void on_motion (MotionEvent* e)
67
+ {
68
+ RUCY_SYM(on_motion);
69
+ if (this->is_overridable())
70
+ this->value.call(on_motion, Rucy::value(e));
71
+ else
72
+ Super::on_motion(e);
73
+ }
74
+
67
75
  virtual void on_preference (Event* e)
68
76
  {
69
77
  RUCY_SYM(on_preference);
70
- if (RUCY_IS_OVERRIDABLE())
78
+ if (this->is_overridable())
71
79
  this->value.call(on_preference, Rucy::value(e));
72
80
  else
73
81
  return Super::on_preference(e);
@@ -76,7 +84,7 @@ namespace Reflex
76
84
  virtual void on_about (Event* e)
77
85
  {
78
86
  RUCY_SYM(on_about);
79
- if (RUCY_IS_OVERRIDABLE())
87
+ if (this->is_overridable())
80
88
  this->value.call(on_about, Rucy::value(e));
81
89
  else
82
90
  return Super::on_about(e);
@@ -17,6 +17,9 @@ namespace Reflex
17
17
  Rucy::Class event_class ();
18
18
  // class Reflex::Event
19
19
 
20
+ Rucy::Class motion_event_class ();
21
+ // class Reflex::MotionEvent
22
+
20
23
  Rucy::Class update_event_class ();
21
24
  // class Reflex::UpdateEvent
22
25
 
@@ -44,6 +47,9 @@ namespace Reflex
44
47
  Rucy::Class capture_event_class ();
45
48
  // class Reflex::CaptureEvent
46
49
 
50
+ Rucy::Class timer_event_class ();
51
+ // class Reflex::TimerEvent
52
+
47
53
  Rucy::Class contact_event_class ();
48
54
  // class Reflex::ContactEvent
49
55
 
@@ -53,6 +59,8 @@ namespace Reflex
53
59
 
54
60
  RUCY_DECLARE_VALUE_FROM_TO(Reflex::Event)
55
61
 
62
+ RUCY_DECLARE_VALUE_FROM_TO(Reflex::MotionEvent)
63
+
56
64
  RUCY_DECLARE_VALUE_FROM_TO(Reflex::UpdateEvent)
57
65
 
58
66
  RUCY_DECLARE_VALUE_FROM_TO(Reflex::DrawEvent)
@@ -71,6 +79,8 @@ RUCY_DECLARE_VALUE_FROM_TO(Reflex::WheelEvent)
71
79
 
72
80
  RUCY_DECLARE_VALUE_FROM_TO(Reflex::CaptureEvent)
73
81
 
82
+ RUCY_DECLARE_VALUE_FROM_TO(Reflex::TimerEvent)
83
+
74
84
  RUCY_DECLARE_VALUE_FROM_TO(Reflex::ContactEvent)
75
85
 
76
86
 
@@ -84,6 +94,12 @@ namespace Rucy
84
94
  return Reflex::event_class();
85
95
  }
86
96
 
97
+ template <> inline Class
98
+ get_ruby_class<Reflex::MotionEvent> ()
99
+ {
100
+ return Reflex::motion_event_class();
101
+ }
102
+
87
103
  template <> inline Class
88
104
  get_ruby_class<Reflex::UpdateEvent> ()
89
105
  {
@@ -138,6 +154,12 @@ namespace Rucy
138
154
  return Reflex::capture_event_class();
139
155
  }
140
156
 
157
+ template <> inline Class
158
+ get_ruby_class<Reflex::TimerEvent> ()
159
+ {
160
+ return Reflex::timer_event_class();
161
+ }
162
+
141
163
  template <> inline Class
142
164
  get_ruby_class<Reflex::ContactEvent> ()
143
165
  {
@@ -0,0 +1,69 @@
1
+ // -*- c++ -*-
2
+ #pragma once
3
+ #ifndef __REFLEX_RUBY_FILTER_H__
4
+ #define __REFLEX_RUBY_FILTER_H__
5
+
6
+
7
+ #include <rucy/rucy.h>
8
+ #include <rucy/class.h>
9
+ #include <rucy/extension.h>
10
+ #include <rays/ruby/image.h>
11
+ #include <rays/ruby/painter.h>
12
+ #include <reflex/filter.h>
13
+
14
+
15
+ namespace Reflex
16
+ {
17
+
18
+
19
+ Rucy::Class filter_class ();
20
+ // class Reflex::Filter
21
+
22
+
23
+ template <typename T>
24
+ class RubyFilter : public Rucy::ClassWrapper<T>
25
+ {
26
+
27
+ typedef Rucy::ClassWrapper<T> Super;
28
+
29
+ public:
30
+
31
+ virtual void apply (Painter* painter, const Image& image) const
32
+ {
33
+ RUCY_SYM(apply);
34
+ if (this->is_overridable())
35
+ this->value.call(apply, Rucy::value(painter), Rucy::value(image));
36
+ else
37
+ Super::apply(painter, image);
38
+ }
39
+
40
+ };// RubyFilter
41
+
42
+
43
+ }// Reflex
44
+
45
+
46
+ RUCY_DECLARE_WRAPPER_VALUE_FROM_TO(Reflex::Filter)
47
+
48
+
49
+ namespace Rucy
50
+ {
51
+
52
+
53
+ template <> inline Class
54
+ get_ruby_class<Reflex::Filter> ()
55
+ {
56
+ return Reflex::filter_class();
57
+ }
58
+
59
+ inline Value
60
+ value (Reflex::Filter::Ref& ref, Value klass = Reflex::filter_class())
61
+ {
62
+ return value(ref.get(), klass);
63
+ }
64
+
65
+
66
+ }// Rucy
67
+
68
+
69
+ #endif//EOH
@@ -21,7 +21,7 @@ namespace Reflex
21
21
  }// Reflex
22
22
 
23
23
 
24
- RUCY_DECLARE_VALUE_FROM_TO(Reflex::Selector)
24
+ RUCY_DECLARE_VALUE_OR_ARRAY_FROM_TO(Reflex::Selector)
25
25
 
26
26
 
27
27
  namespace Rucy