As usual, there's been a bunch of new stuff since latest release, including 2 complementary ports for Android, thanks to Laschweinski and Lydesik.
You can grab it here.
!Warning: Some parts of the API/config properties have slightly changed so please read carefully
the CHANGELOG file!
Here's its content:
* *** Added new platform with full support: android/android native. ***
* IMPORTANT: Added very easy to use CPU profiler module with optional runtime graphical display (#define __orxPROFILER__)
* IMPORTANT: Added OpenGL ES 2.0 support for iPhone/iPod Touch/iPad + full shader pipeline (including custom shader support)
* IMPORTANT: Mingw dev package has binaries built with gcc 4.5.0 which are *NOT* compatible with older versions of gcc. Please upgrade or recompile orx and dependencies.
* IMPORTANT: Added physics joints support and updated to Box2D 2.1.3 (svn v140, pre-release) which impacts on some physics settings (no more world boundaries, etc...)
* IMPORTANT: a ChildJointList can be specified in config for building complex objects with joints, along the ChildList config property
* IMPORTANT: iPhone touch, motion and accelerometer events have now been merged with android ones in orxSYSTEM_EVENT_*
* IMPORTANT: Added non-monospace (ie. non-fixed width) font support + updated orxFontGen to generate both monospace and non-monospace fonts, packed/non packed characters
* IMPORTANT: Added sound recording (to memory and/or disk with various file format support, with possibility of analyzing/pre-processing the samples through events)
* IMPORTANT: When playing a sound stream, the packets can be analized/altered on the fly (for realtime effects, for example)
* IMPORTANT: Rendering to texture support is back with GLFW & iPhone plugins
* IMPORTANT: orxSYSTEM_EVENT_BACKGROUND & orxSYSTEM_EVENT_FOREGROUND have been added to handle new iOS 4 "backgrounding" for application and will deactivate any rendering made by orx by defaault
* IMPORTANT: Scale for objects with a ParentCamera is now expressed in camera space, by default.
* IMPORTANT: Custom event config syntax has changed (please check CreationTemplate.ini): they are now bound to keys and don't require a timestamp
* IMPORTANT: If a shader parameter is defined as an explicit list, an array will be created instead of a single variable
* IMPORTANT: UseParentSpace config property for objects with a ParentCamera now take additional values: both, non, positiona and scale
* IMPORTANT: UseRotation/UseScale in spawner config changed: when set to false, no rotation/scale will be applied to the created object by the spawner and UseRelativeSpeed will always use spawner's parent orientation/scale
* IMPORTANT: Added Tutorial #12
, Shader and Lighting
* IMPORTANT: Added Smooth(step) curve for orxFXs
* IMPORTANT: orxCamera_GetFrustum now returns a frustum in camera's local space
* IMPORTANT: Config save callback now takes an extra parameter: the file name
* IMPORTANT: orxLOG() will now use the current debug flags so it's possible to globally enable/disable file/console logging, even for orx's generated logs
* Optimized home render plugin to batch objects by texture (5-15% FPS boost, depending on scenes)
* Optimized frame update for orphan objects (6-8% FPS boost)
* Optimized GLFW and iPhone rendering: batching + indexing + interlacing -> 10 - 100% FPS boost
* Orx will now use the current desktop resolution if none if provided
* Fixed 2nd object in orx's global list not being ticked for one frame when first object's life time was depleted
* Orx has perfect synchronization between sound playing and sound recording to allow on the fly analysis/modication of sound packets
* When selecting a new input set, the inputs status will be updated immediately to make sure holding key/button won't register as a new status
* Better mouse axis handling in the input module: when user manually moves the cursor to simulate a capture, this won't affect input's values
* Added JoystickMultiplier to input module: all joystick axis values will be multiplied by this value to allow scaling and a more seamless joystick/mouse input integration
* Anims can now contain 65535 keys and 65535 events
* Config lists can now contain 65535 values
* Increased config section table size to provide faster accesses for huge config data (10 000+ sections)
* Added orxDisplay_GetBitmapData()
* Added optional depth buffer creation + better user-defined external rendering support (such as custom 3D rendering)
* Added CleanOnDelete in spawner config to delete all alive spawned objects when their spawner is deleted
* Minor internal pipeline/vertex shader optimization
* Added dlmalloc as internal default memory allocator
* Clock DT and orxSystemGetTime() are now using double precision and can support much much longer uptimes
* Added orxEVENT_TYPE_DISPLAY/orxDISPLAY_EVENT_SET_VIDEO_MODE event
* No more limitation on the number of body parts contained in a body
* Added AllowSleep config property for bodies
* Replaced system's pseudo-random functions with faster pseudo-random ones
* Merged orxFile and orxFileSystem modules
* Added orxBank_Compact()/orxBank_CompactAll() functions to reclaim unused bank segments
* Fixed rendering with positive aspect ratio (only negative were working correctly)
* Fixed some config "block" parsing issues with multiple double-quotes
* Fixed orxFontGen to output visually correct fonts when used with fonts that have a negative left side bearing
* Fixed orxConfig_SetEncryptionKey() not being able to be called before orx's init
* Fixed orxString_ToS32/ToU32 considering 0 as an invalid octal number (still giving 0 as result but interrupting the conversion of the remainder of the string)
* Removed object render flag (wasn't very precise)
* Added orxTEXTURE_EVENT_CREATE/_DELETE events
* Added orxSPAWNER_EVENT_CREATE event
* Body's features can now be queried with read-only flags
* Added linear & angular damping runtime accessors (get/set) for bodies
* Added self flags & check mask runtime accessors (get/set) for body parts
* Simplified iPhone demo
* Changed the way reference handling works for orxSTRUCTUREs so as to be more consisten
* Fixed issues that prevented orx from being fully restarted in the same program execution
* Better AllowGroundSliding handling in the Box2D physics plugin
* Fixed full executable path handling on init
* Misc optimizations & fixes
I was using this function
is there any alternative now, that I overlooked?
Based on that I didn't think people would use it much as it proved so unreliable and costed CPU time for nothing.
I can add it back if you want. However, you might as well simply listen to the orxRENDER_EVENT_OBJECT_START that would correspond to previous IsRendered() status (but this time that would work for multiple viewport rendering).
You can also additionally do some more precise intersection test when receiving this event to see if the object will actually make it to the screen. I didn't want to add this test automatically as the CPU overhead would have been for everybody and I assumed most users didn't care for it. ^^
alright then I'll just use the event. totally fine with me.
there seem to be so many events I don't know of^^
In the meantime you can open orxEvent.h, look at all the different types and open the corresponding module header file that will then reveal all the existing internal events. Their name are (hopefully) pretty explicit.
Just spent the evening getting VS2010 Express installed and running and did a convert of my project. So far so good. Then used Grey's tute to update some settings.
Then figured it was getting too hard so I was going to download the vs2010 version of orx 1.3 and forgot that there isn't one yet.
Any word on this? Or should the 2008 be compatible enough?
Not an urgent thing, you have other priorities.
Grey updated the vs2010 project files but as I don't have 2010 I couldn't compile a version myself. If I were you I'd use the svn though, and compiling the vs2010 version should work out of the box.