forked from blitz-research/monkey2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
VERSIONS.TXT
325 lines (156 loc) · 16.5 KB
/
VERSIONS.TXT
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
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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
***** Monkey2-v2018.09 *****
Added SpriteMode.Fixed for sprites unaffected by camera.
Fixed entity.Color and Entity.Alpha not affecting sprites.
Fix for Mojave HDMI mode issues.
Fix for Mojave vsync not working. Removed support for Window.SwapAsync as it breaks on macos.
Fix for Mojave not rendering until window moved.
***** Monkey2-v2018.08 *****
Padded Time string conversion digits.
Added support for use of extension methods as first class functions.
***** Monkey-v2018.07b *****
Fixed broken ios bb_print.
Fixed kinda serious functions bug.
Made sure Component.OnStart is always called before any other Component.OnBlah method.
Added 'Protected Internal' access to mx2cc. Decls in protected internal sections in classes are visible both to subclasses, or to module they are declared in.
Removed Entity.Collided( rigidBody:RigidBody ) and added RigidBody.Collided( rigidBody:RigidBody ), please use this instead. Removed Component.OnCollided.
Component.OnUpdate now executes before physics update. Added Component.OnEndUpdate for post update processing.
Entity.Destroy() and Component.Destroy() now postphpone destruction until update has finished if called during Scene.Update.
***** Monkey-v2018.07 *****
Added thread support and std.thread module!
Updated android SDK to: Android Studio 3.1.3 ; Android SDK 27 (Oreo 8.1) ; NDK 17.1.4828580 ; Android SDK Tools 26.1.1
Added simple FXAAEffect post effect for simple antialiasing - see modules/mojo3d/tests/effects.monkey2
Updated Visual Studio Community Edition 2017 to 15.7.4
Added simple win32 module and some tests.
Fixed SDL2 issue where SDL_WaitEvent always took a multiple of 10ms to execute. This would have affected code that used purely timer driven update rates without any calls to RequestRender inside OnRender.
Added SUPER experimental SwapAsync flag to Window. Causes window to execute swaps in a separate thread. This allows you to use much finer grained timers etc. Note: it may not be a good idea to do any off-screen rendering with this enabled. It may not work everywhere, but Qt4.8 apparantley recommends it so give it a go! Confirmed to work on windows and macos, but not linux.
Added extern alias symbols to mx2cc, eg: you can now go `Alias DWORD:UInt="unsigned long"` (inside an Extern section) to get proper win32 dwords (and LPDWORDs that don't break c++).
***** Monkey-v2018.06 Mx2cc-v1.1.14 Ted2go-v2.11 *****
Added WeakRef class. Must be constructed with an Object and has a single Target property that returns Null if object has been GC'd.
Added Stream.SharedPath property for obtaining a path to an already open stream.
Changed to stb-image for hdr support so hdr images can now be loaded from any stream.
Added Cancel() method to HttpRequest.
Added Timeout property to HttpRequest.
Implemented HttpRequest on all targets - only GET tested.
Added cheezy godrays effect - see mojo3d/tests/pbhspheres.monkey2
Fixed deprecated warnings in android project template.
Updated android SDK to: Android Studio 3.1.2 ; Android SDK 27 (Oreo 8.1) ; NDK 16.1.4479499 ; Android SDK Tools 26.1.1
Point/spot light now render bounding quads instead of fullscreen quads.
***** Monkey-v2018.05 Mx2cc-v1.1.13 Ted2go-2.10 *****
Added simple support for .hdr pixmap/texture/image loading (wont work on android).
Added mojo3d HingeJoint. See tests/hingechain.monkey2
Renamed mojo3d Constraint->Joint and PointToPointConstraint->BallSocketJoint.
Added mojo3d support for 'spherical' sky textures. Also added TextureFlags.Envmap which must be used for envmap textures. Previously, cubemap+mipmap implied envmap but this is no longer true.
Fixed a very gnarly bug in garbage collector. Thanks Mac767!
Changed emscripten module builds so they generate .bc files instead of .a for a minor link speed up.
Added experimental spot and point light texturing via new Light.Texture property. See tests/spotlight and tests/room for demos.
Added RigidBody.LinearFactor and RigidBody.Angular factor properties - untested!
Added support for multiple UVs to gltf2 and assimp loaders.
Streamlined mojo3d tests dir.
Added LinearDamping and AngularDamping properties to RigidBody, but can't get them to do anything so far - please have a play James!
Added 'offset' version of ApplyImpulse to RigidBody.
Added AmbientTexture and AmbientFactor to PbrMaterial. Like EmissiveFactor, AmbientFactor defaults to black so needs to be set to white to enable AmbientTexture.
Major clean up of mojo3d material system. Minor cleanup of post effect system, mainly just added some helper methods in base PostEffect class.
Added multidimensional array initializers, eg: New Int[2,2]( 1,2,3,4 ). Array length much match number of elements exactly or runtime error.
Added first physics constraint component to mojo3d, PointToPointConstraint - should probably be renamed joint IMO. Stay tuned...
Added low budget OpenUrl for emscripten. It just replaces current page with the given URL so effectively ends app too.
Added zlib module and DataBuffer.Compress and DataBuffer.Decompress.
***** Monkey-v2018.04 Mx2cc-v1.1.12 Ted2go-2.10 *****
Added GetPixel and GetPixelARGB to both Image and Canvas classes - canvas version will be slow as hell, eg: 3 secs for 16x16! Image versions still relies on the 'managed pixmap hack', but I should be able to improve on the speed of this for desktop targets.
Fixed makedocs links to enums.
Tweaked mx2cc's gcc dependancy checking so it happens while compiling (just like msvc's) so there should now only be 1 'slow build' under mingw instead of 2. Sometimes it's just a matter of knowing that a certain command line option even exists!
Updated my anroid dev system to: Android Studio 3.1 ; Android SDK Tools 26.1.1 ; NDK 16.1.4479499 ; Android SDK 27 (Oreo 8.1) so you should do the same if you haven't yet.
Removed the ComponentType param overloads from NumComponents and GetComponent in Entity. Use NumComponents<T> and GetComponent<T> instead. Duh. Also added GetComponents<T>:T[]().
Added Variant.GetArrayLength, Variant.GetArrayElement, Variant.SetArrayElement and TypeInfo.NewArray.
MAJOR overhaul of the mx2cc 'dependancies' logic - may potentially cause the dreaded 'forward reference to incomplete type' c++ build error, but should be considerably more efficient (ie: #include fewer headers for faster(ish) builds). I also think I actually understand how it works this time around so it should be easier to find problems with this stuff in future.
Experimental mojo3d scene loading and saving added. Only very minimal support right now, eg: physics components are not yet supported and no texture or model loading support.
See mojo3d/tests/loadscene.monkey2 for a demo. This should also create a test-scene.mojo3d file in your monkey2 dir which you can double click to open in latest ted2go (the version included in the monkey2 repos).
To save a scene, you need to enabled mojo3d reflection by adding this to your file:
#Reflect mojo3d
You also need to enable 'editing' mode in your code with something like _scene.Editing=True before creating scene contents. Once you've created your scene, save it using the Scene.Save( path:String ) method. Ditto you can load a scene using the Scene.Load:Scene( path:String ) function.
Typeinfo.Name now always returns proper typename even if reflection info disabled and even for generic types. Typeinfo.Name used to return a 'unknown@12345678' style string.
String.ToUpper, String.ToLower and String.Capitalize now use java equivalents internally on android 'coz NDK doesn't support locales.
Updated MX2_MSVC_TOOLS_DIR in env_windows.txt for latest Visual Studio Community Edition 2017 update (15.6.2).
Added AngelFont and ImageFont support. Font.Load tries to guess correct font type via file extension but you can use ImageFont.Load and AngelFont.Load directly if you want. Changed monochrome font texture format to I8.
Fixed PATH growing when updating modules in ted2go.
***** Monkey2 v1.1.11 *****
Major change to name munging for tmp files to make them shorter.
PbrMaterial.Load now handles jpg files too.
Had another shot at an emscripten SDK and updated env_windows.txt to use it. Note if you were using a different version of emscripten, you'll need to removed the new env_windows.txt stuff or it'll conflict. The new SDK can be downloaded from http://monkeycoder.co.nz/monkey2-files/
You can no longer access enum members via an enum member, eg: WindowFlags.Resizable.Maximized no longer works.
***** Monkey2 v1.1.10 *****
Cleaned up dependency system in mx2cc a bit - you'll need to rebuild all.
Added simple support for iphone simulator. Alas, I've had to implement this as a sort of pseudo target: set MX2_IOS_USE_SIMULATOR=1 in env_macos.txt to enable simulator and rebuild modules. You'll need to change this env var to switch between simulator/hardware builds, you don't have to rebuild modules each time you switch though. Also note that apps builds to the same product project. Far from elegant sorry, I may be able to do something with lipo etc eventually.
Mojo3d camera's can now be attached to a view, which will take care of autoresizing camera viewport etc.
Camera param removed from Scene.Render. Scene.Render now renders all cameras in a scene. Add Camera.Render for just rendering a single camera - this is now recommended way to render a scene, multiple cameras not dealt with yet.
Moved fog settings to Scene, ie: FogColor, FogNear, FogFar. Fog is now built-in and FogEffect has been removed.
Added Scene.ShadowAlpha for faking soft shadows. Set to <1 for softer shadows.
Added experimental Entity.Alpha for master entity alpha control.
Merged forward/deferred renderers into single Renderer class. Added transparency support: materials with non opaque blend modes are depth sorted (only by instance for now) and rendered in a separate forward pass. Note: transparent materials can only currently be lit by a single light and are unshadowed.
Fixed some potentially serious GC issues that have have not, surprisingly, caused any issues so far. But it was just a matter of time... Hopefully no ones code will be affected - rebuildall2go recommend for this one.
Added Window.OnCreateWindow() virtual method. If Window.ClearEnabled is true (the default), the window is also cleared to Window.ClearColor before OnCreate is called. OnCreateWindow is where any slow initialization code should be placed instead of in Window constructor.
Fixed dots in filenames problems.
Added reflection support for type extensions and enum. Add reflection helper module - see modules/reflection/tests. Still WIP!
Changed default behaviour of Typeinfo.ExtendsType to do a plain compare instead of runtime error. Makes param matching easier.
***** Monkey2 v1.1.09 *****
Comments in bin/env_blah.txt files have changed. Comments must now span a whole line, and must begin with an apostrophe or hash. If you have modified your env files, make sure to remove any 'inline' comments, ie: comments that begin in the middile of a line somewhere. This change allows for apostrophes in env vars.
Added support for gltf2 binary files (ie: .glb files).
Added std.digest with MD5, SHA1, SHA256.
Added std.base64 with EncodeBase64 and DecodeBase64.
You can now create a DataBuffer with an existing memory block.
Merged mojo3d-physics into mojo3d.
Added "MOJO_MSAA_SAMPLES" for multisample antialiasing. On windows, need to set "MOJO_OPENGL_PROFILE" to "compatibility" too.
Added support for gltf2 animations/skins.
Added some more keycodes, eg: Key.ACBack.
Updated android studio to 3.0.1
Windows x64 support added! See MX2_ARCH_WINDOWS in env_windows.txt. Also, changed msvc tools to community editiion 2017
Use SetConfig( "MX2_MOJO_TEXTURE_MAX_ANISOTROPY",n ) to set texture max anisotropy, 0 to 16.
Nuked mojo App.Config system in favor of a simpler 'config setting' system in std.filesystem. Set SetConfig/GetConfig.
gles20 module deprecated, use opengl module instead. gles20 may or may not still work, left it in there mainly for the BlahEx funcs that people were using - please copy these into your own project.
Note: env_target.txt files in bin have CHANGED! Make sure to update your old ones if you've changed them.
Added a TextureFlags param to Font.Load.
Cleaned up animator/animation. Added transition parameter to Animator.Animate.
Added SDL GameController class. Tweaked Joystick/GameController Open logic so devices can be added/removed more cleanly. See joystick and gamecontroller samples in bananas.
Added experimental selective reflection. Use '#Reflect namepsace_path' to enable reflection for an entire namespace. Using same system as 'Using' ie: can end with '..' to 'reflect all'.
***** Monkey2 v1.1.08 *****
Added AudioDevice.PlayMusic.
Language addition: Added bool->string implicit conversion, returns "True" or "False". Note that a bool cannot be safely converted to a string and back using built-in conversions, because bool->string->bool will always return true (since string->bool returns true if string is non-null, and bool->string always returns a non-null string). A std.stringio.ParseBool function has been added to parse "True"/"False" style strings. Use this or something similar if you are parsing bools from a stream.
Language addition: Added where expressions to classes. Note that since classes can't be overloaded, class where expressions can only possibly generate errors, they can't be used to 'select' a particular overload.
Language addition: parser now allows optional newlines before primary expressions, which allows you to split long expressions over multiple lines.
Language addition: objects can now by cast to/from void ptr using the Cast<> operator.
Language addition: Elvis operator '?Else' added, eg: 'Local x:=y ?Else -1' will assign 'y' to 'x' if y is 'true', else will assign -1 to 'x'.
Language addition: Safe reference operator added, eg: 'Local x:=c.t' will assign 't' to 'x' if 'c' is not null, else will assign null to 'x'. Can simplify 'If c Then c.Blah' type stuff.
Mojo3d component system added, Animator/RigidBody/Collider now component based.
Mojo3d anisotropic texture filtering enabled, see anisotropic test.
Mojo3d Scene.EnvColor added.
Mojo3d Renderable class added.
std.permissions added, android only for now.
Implemented custom openal on macos 'coz the OS one is stuffed.
***** Monkey2 v1.1.07 *****
Android min-sdk now 14 for android projects.
Added Scene.DestroyAllEntities.
Added new 'instance' uniformblock type for better (not great yet) instancing.
Enabled assimp FBX and BLEND loaders.
Sprites now compare with depth buffer.
Added Sprite.TextureRect:Rectf property for simple 3d sprite animation.
Fixed Texture.Flags setter.
Added simple outline drawing to Canvas, see: Canvas.OutlineMode, Canvas.OutlineColor and Canvas.OutlineWidth. See chimpmunkdebugger.monkey2 in hellochipmunk banana for demo.
Implemented point light shadows using rgba depth cube texturing for webgl compatibility. Slow, needs to do some culling.
Added ParticleSystem entity subclass. A ParticleSystem contains a ParticleBuffer and a ParticleMaterial, so you can creating multiple instances of the same ParticleBuffer with different materials. See mojo3d particles test.
Added LinearColors property to UniformBlock and Renderer. Material color properties now always in sRGB space. Changed Color.Gold etc. to compensate (they were linear colors).
Added bananas showcase files. See Help->Bananas showcase.
***** Monkey2 v1.1.06 *****
* App no longer renders when minimized/inactive.
* Added 'Internal' decl visibility to mx2cc, which means a decl is only visible to other decls within the same module.
* Namespace mojo3d now uses degrees. Namespaces monkey.math and std.geom still use radians.
* Mx2cc now tries to make docs for type extensions. No way to link to 'em yet.
* Entity Position, Basis, Scale, Matrix etc properties are now in *world* space. Use LocalPosition, LocalBasis etc for local space versions. Ditto SetPosition, Setbasis, SetScale etc methods.
* Added subclasses for RigidBody: StaticBody, DynamicBody and KinematicBody, use these with New instead of RigidBody.
***** Monkey2 v1.1.05b *****
* Fixes a number of fairly critical GC bugs. GC is more aggressive now which has turned up a few 'lurkers'.
* Mojo 2d lighting now handles windows/devices larger than 1920,1080.
* Added 3d modules!
***** Monkey2 v1.1.05 *****
* Added std.requesters.OpenUrl support for android and ios.
* Added WIP assimp and bullet modules mainly for future use by mojo3d but its nice to have standalone versions of these.
* Added tinyfiledialog library for linux requesters, except for Proceed which uses kdialog as there's no equivalent in tfd.
* Added WIP MSVC support for faster compile times on windows. To enable, use 'MX2_USE_MSVC=1' in bin/env_windows.txt and rebuild all modules.