Fixes between v4.2.9 and v4.2.10 ================================ - iOS: Add support for showing an IwError message when the OS warning about low memory. By default this is just and assertion but it the new iPhoneErrorOnMemoryWarning option will turn this into an IwError. - webos: Fix bug in webos package generation where filname of length exactly 100 were not being handled correctly (actually a bug the python standard library) - Symbian9: Added option to set the maximum heap size for the Symbian 9 loader as it still being used by some phones. Also changed the default value from 32MB to 256MB. - BREW: Added option not to not shutdown the BREW multimedia objects on pause events as it could prevent the ring tones from working. - Mac: Add "osx-icon" deplpoyment setting that allows a custom icon to be specified in OS X deployments. - Mac: add s3eAudio support to OSX loader. - Mac: add missing dzip utility to mac SDK. - iwutil: remove global 'map' that could conflict with project global. - bada: Vibration now works properly - mkb: Fix for handling of .cxx files in arm builds within visual studio. Fixes between v4.2.8 and v4.2.9 =============================== - BREW: Added option not to turn the backlight on for some phones as the API call could crash the phone. - Airplay Studio: Fixed "inMVMat" uniform (the rotational part was transposed). - Bada: Fixed an issue with sendto/recvfrom where it was using the wrong byte order for addresses - Bada: Error boxes now display using native dialogs - Bada: The Silent mode dialog box is now displayed using native dialogs with the buttons in English (rather than in phone language) - Bada: Fixed a socket issue where it would report that a network was available when there was no network connection. - vc2010 support: The 'S3E_LIB' target now works correctly - IwHTTP: Fixed an issue where a blocked read could cause socket closure whilst fetching headers. - Documentation: Fixed broken links between different CHM files. - Maemo: Maemo now enforces pausing the application when in the background. - Android: Fixed a Deployment Tool issue where builds would remain unsigned (and possibly not install) after "Create unsigned build" is un- checked in the tool. - Android: Fixed the application crashing when launched a large amount of times in rapid secession. Fixes between v4.2.7 and v4.2.8 =============================== - Android: add ICF setting AndroidIgnoreResizeWhilePaused which when set will cause the device to ignore resize events while paused. This is useful for app where the lock screen generates a resize event. - iOS: Game Center is now supported as a beta feature via the s3eExt_GameCenter.h extension. - iOS: Multi-Sample Anti-Aliasing (MSAA) is now supported for devices running iOS 4.0 or newer, via the standard [GL] EGL_SAMPLE_BUFFERS and [GL] EGL_SAMPLES ICF settings. EGL_SAMPLE_BUFFERS should be set to 1 and EGL_SAMPLES set to 2 (multi-sampling) or 4 (super-sampling). - Mkb system: "upstream" system now accepts some zipfiles that previously caused it to crash. - Mkb system: deployment syntax in mkb files for limiting configurations to certain OSes recognise bada and webos. - Android: The volume keys are no longer handled by the loader by default. This means that they now control the devices media volume (used by sound/audio/video). To use the old behaviour add the s3e icf setting "AndroidHandleVolume=1". - iOS: s3eDeviceGetInt(S3E_DEVICE_FREE_RAM) now returns the correct value. - iOS: Fixed an issue where playback of large videos could cause the media server to crash and permanently kill sound in memory-intensive apps. s3eVideo now uses a default system audio session for playback instead of sharing the application audio session with other S3E media APIs. - Windows: Fixed an issue on vista/windows 7 where s3eSoundRecordStop() would crash - Android: Fixed an issue with returning incorrect errors during sound recording Fixes between v4.2.6 and v4.2.7 =============================== - windows: The windows installers generated by the deployment tool will now overwrite existing files even if the version number has not changed. - windows: Fixed use of win-icon deployment option when deploying to the windows platform. - webOS: Support for Palm Pixi added. - bada: Fixed multitouch support. - bada: Allow silent mode dialog box not to be displayed if [s3e] BadaEnableSilentModePrompt=0 is set. - windows: Fixed error box display. - licensing: The airplay license is now stored in a non-version dependent location. This should make it easier to run art-build deployments. - Fix for beattoy example where it could fail to allocate enough memory in the simulator when GLES was disabled. (see app.icf in beattoy folder) Fixes between v4.2.5 and v4.2.6 =============================== - webOS: Reduce default sound latency to 30ms and honour the [s3e] SoundLatency setting. - iwgeom: Fixed an issue that would cause problems with gcc builds and the IwGeomIntersect functions. - iwgraphics: Fixed IwGraphicsModelRayIntersection example for distant objects. - iw2d: Fixed alpha of flat-coloured primitives not being respected in some circumstances. - iwhttp: Fixed a potential issue when reading chunk-encoded HTTP streams where the chunk size was 2 hex digits or less. - iwui: Various improvements to examples using iwhttp. - Android: The allocations from heap 6 now come directly from the OS. This means [s3e] memsize6 no longer needs to be explicitly set. - bada: s3eSocket bug fixes. IwUITwitterSearch now runs correctly. - bada: Keypad availability is now reported correctly. - bada: The deploy tool will now always create a zip package. Added a zip package deployment script. - bada: Default sound latency increased to 90 ms. - bada: Fixed issue with app suspension immediately on startup - bada: App will now not launch from the deploy tool whilst the screen is locked - bada: Socket code should now connect more reliably on first use - bada: Fixed issue with silent mode and suspend/resume - BREW: Fixes phone freezing on CLR or END keys being pressed during loading for some phones. - iOS: Fixed s3eVideoStop() causing occasional application freeze on iOS 4.x. - Configuration tool: Now correctly detects and uses RVCT 4.1 - Build system: RVCT SCons builds no longer fail when very long command line arguments are used. Fixes between v4.2.4 and v4.2.5 =============================== - iwhttp: Fix chunk parsing for small chunk sizes. - iOS: s3eAudioPlay is now asynchronous so that it will not block the app's thread for more than about 15 milliseconds. This means that some types of errors are more likely to occur after s3eAudioPlay has returned success. - iOS: s3eVideo will now attempt to give meaningful results for S3E_VIDEO_POSITION even though the underlying OS does not support this. - iOS: s3eVideo will now correctly move into the PAUSED state when headphones are removed on iPod touch. - iOS: Using [s3e] iPhoneUseCoreSurface now works correctly - Android: updated to the latest version of aapt.exe and android.jar - Win32: An issue where using ZeroConf would occasionally corrupt the heap has been fixed - Win32: Qualcomm's Snapdragon GLES emulation drivers are now included and can be selected from Configuration->GL API - Win32: Removed internal limit that could cause GL texture metrics to be inaccurate. Fixes between v4.2.3 and v4.2.4 =============================== - Added S3E_DEVICE_SILENT_MODE property, principally for the benefit of Bada to allow applications to pass certification requirements - bada: Fix s3eDeviceUnYield() - bada: Fixed an occasional crash on sound device shutdown. - bada: Fixed an issue with corrupted graphics when the app is suspended during startup. - bada: Fixed an issue where the app wouldn't suspend properly in idle mode. - webOS: Ensure that applications running in the background don't use any CPU time. - webOS: loader binary is now stripped to comply with palm requirements. - webOS: appinfo.json now used 'pdk' rather than 'game' for type field. - webOS: Change default sound output frequency to 441000 so that s3eAudio will work for most common mp3 and aac files. - Symbian9: Fixed an issue where the phone can sometime fail to detect that it is in a call after resuming from paused. - Mac SDK: Added missing Symbian deployment tools so that Symbian deployment from Mac OSX now works. - iOS: Reduced time for OSReadString dialog to appear. - iOS: iPad now uses a Popover dialog to display the Music Picker for the s3eBackgroundMusic extension. Also fixed a minor memory issue in this extension. - Android: s3eDeviceGetInt() now supports S3E_DEVICE_UNIQUE_ID and returns 1 for S3E_DEVICE_FPU if VFP is present. - Fixed an issue where architecture compatibility is not detected correctly. - Fixed compatibility issues with IntelliSense and libcmt when building with Visual Studio 2010. - Airplay Studio Director: Fixed issues with adding new entities from the project window. - UI Builder: Fixed various issues when editing nested element styles. - Build system: Multiple files of the same name (but in different directories) are now handled correctly in all build environments. Fixes between v4.2.2 and v4.2.3 =============================== - Android: Fixed an issue affecting touch response after suspend when playing audio. - bada: The stack size icf setting is now respected. - bada: Runtime behaviour when end key is pressed has been improved. - bada: s3eDeviceGetInt(S3E_DEVICE_LANGUAGE) now returns the current OS language - Win32 release deployments: Respect the OS language setting. - airplay studio: Improved resource building performance with large models. Fixes between v4.2.1 and v4.2.2 =============================== - Symbian9: Fixed case when sound failed to restart after volume has been turned to zero using the device's volume controls. - android: Fix playing video files when using the internal memory. - bada: The deploy tool now checks that the required api privileges are in the manifest file. New icf settings to copy files from the application's home directory to a user accessible area when the application exits. Dialogue box is shown on start up when the device is in silent mode allowing the user to enable sound. The dialogue box is shown by default. It can be controlled via the following icf settings: BadaEnableSilentModePrompt <0 or 1> BadaSilentModePrompt - Win32 release deployments: An issue with GLES off-screen rendering has been fixed, giving a performance improvement in some cases. - Win32 Simulator: An issue affecting iphone skin display has been fixed - iOS: iphone virtual resolution (ICF setting: [s3e] iPhoneScaleFactor) now defaults to 100 (standard iPhone resolution, 480x320) by default instead of 200 (iPhone 4 native resolution, 960x640). - Winmobile: Support for PNG icons in Windows Mobile 6.5 Start Screen. Fixed between v4.2 and v4.2.1 ============================= - Various bugs with the VC2010 integration have been fixed. - The configuration utility (s3eConfig) would sometimes write the Airplay license file to the wrong location under some circumstances. This is now fixed. - symbian9: Fix OSReadstring to do correct UFT8 conversion. - bada: Fix to pointer press being lost on double tap. - iOS: fix for crash on s3eVideoStop on iOS >= 3.2 - Metrics are now enabled in the ARM emulator Change log for SDK features between v4.1 and v4.2 ================================================= iPad Support ------------ Airplay now fully supports iPad deployments. By default all apps are "universal" and will run at native resolution on iPad and iPhone. You can use deployment options to produce iphone-only or ipad-only builds. The [s3e] iPhoneScaleFactor setting can be used to change the iPhone4's virtual resolution. Bada Support ------------ Airplay now supports deploying to the Samsung Bada platform. Compass API ----------- s3eCompass.h now provides an API for accessing heading information from the compass on android and iphone. Clipboard API ------------- s3eClipboard.h now cutting and pasting of UTF8 strings to and from the global OS clipboard. SMS API ------- s3eExt_SMS provides an API for sending and receiving SMS messages SoundRecord API --------------- s3eSoundRecord provides an API for recording sound from device microphones. iOS 4.0 Support --------------- Airplay is now built for iOS 4.0 and includes extensions for features such as iAd. webOS Support ------------- Airplay now includes full support for webOS, including multi-touch input and video playback. Android Deployment Improvements ------------------------------- Android deployments no longer depend on an installation of the Android SDK. The deployment process for android has also been optimized to be significantly faster. Android Filesystem Changes ------------------------- The "Finishing Installation" screen has been removed from the Android loader and the assets are only extracted when write access is required. The internal memory is used as the ram drive by default but the sdcard can be used instead with the icf setting "AndroidUseSdcard=1". Type of int32/uint32 changed ---------------------------- For a long time the basic type that defined int32 and uint32 in airplay as been 'long'. This was causing problems integrating with third party software and also compiling on 64-bit architectures. In this release the type as been redefined to 'int'. This change affects code that assumed that long and int32 were the same time, and also affects the printf format argument (%d, %u and %x should now be used in place of %lu, %ld and %lx when formatting int32/uint32 arguments). Simulator support for Full-Screen Mode -------------------------------------- In the Display->Preferences you can now select 'Full-Screen mode'. The Simulator will then go into full screen mode. Pressing Alt+Enter will also switch between full-screen/windowed modes. Note that switching full-screen mode whilst GLES is active is not supported (and requires a restart of the app). Simulator window resizing behaviour ----------------------------------- In the Display->Preferences you can now select 'Resize application surface with window'. With this selected the application will receive a S3E_SURFACE_RESIZE event whenever the window size is changed, and the application surface size will always match the size of the window. Multitouch for Android ---------------------- Multitouch support has been added to the android loader. This allows applications to make use of multiple touches on Android phones that support it. Some Android phones (e.g Nexus One) have limited multitouch hardware that may cause problems with advanced features (e.g dual stick control). Symbian deployment for Mac SDK ------------------------------ Symbian deployment is now possible on the Mac. The deployment tool creates a package file which can then be copied over to a device and installed from there. Windows Mobile deployment for Mac SDK ------------------------------------- Windows Mobile deployment is now possible on the Mac. The deployment tool creates a cab file which can then be copied over to a device and installed from there. Lcab used to create cab files (also replaces MAKECAB for PC deployment) Support for up to 256 bones in IwAnim ------------------------------------- IwAnim now supports up to 256 bones. Improved IwUI ------------- Substantial improvements across the board. IwUITableView added. Various new examples. Improved stability in UI builder. Dynamic Texturing Changes ------------------------- Added an example of dynamic texturing and added a fast path for improved performance through the API when conditions are met. Restrictions for modifying textures are relaxed: If CIwTexture::ChangeTexels is called with a compatible format, SetModifiable need not have been called. Texture Matrix Accuracy ----------------------- IwGx will now use a floating point texture matrix, meaning non power of 2 textures will work perfectly. The old behaviour will persist in OpenGL ES 1.0 and can be forced using the icf setting [GX] FixedPointTextureMatrix=1. Change log for SDK features between 4.0 and 4.1 =============================================== Airplay SDK for Apple Mac (Beta) -------------------------------- Airplay Mac SDK is now available for development using Apple Mac and Xcode IDE. The Mac version includes most of the core Airplay System functionality found in the Windows version, but does not yet support any of the Airplay Studio art tools. The Mac version currently supports deployment to iPhone, Android, Maemo and BREW devices. Airplay Mac SDK is a "Beta" release. See KnownIssues.txt for a list of known issues with the current Airplay Mac SDK. Please report any issues found on the public support forums at www.airplaysdk.com iPhone application signing on PC -------------------------------- iPhone deployments no longer require a networked Apple Mac for signing purposes. Signing can now be done locally on a Windows PC. This means iPhone applications can be developed, tested, deployed and signed entirely on a Windows PC. Maemo support (Beta) -------------------- The deployment tool now allows creation of .DEB files for distribution to Nokia Maemo devices, including Nokia N900. This feature is included as "Beta". Please report any issues found on the public support forums at www.airplaysdk.com/forum Palm webOS support (Alpha) -------------------------- The deployment tool now allows creation of .IPK files for distribution to Palm webOS devices, including the Palm Pre. This feature is included as "Alpha". Please report any issues found on the public support forums at www.airplaysdk.com/forum Remote Control (Beta) --------------------- The Airplay Simulator now supports remote control by mobile devices over WiFi. The Simulator receives input from the device which your app (running in the Simulator) responds to. It then sends the screen back to your device. This allows testing of device-specific interactions (such as multitouch and accelerometer) without needing to go through the process of installing on device. This feature is included as "Beta". Please report any issues found on the public support forums at www.airplaysdk.com/forum s3eContacts API (Beta) ---------------------- The s3eContacts API allows reading from, and writing to, the device contacts (address book). This feature is included as "Beta". Please report any issues found on the public support forums at www.airplaysdk.com/forum QEMU Updated ------------ The QEMU ARM emulator has been updated to the latest version of QEMU. It now supports breakpoints in code via IwDebugBreak() and has improved handling of certain exceptions. GCC Updated ----------- The version of GCC included in the SDK has been updated to CodeSourcery's 2009 Q4 release, based on GCC 4.4. 4Mb s3e file image size restriction lifted ------------------------------------------ There was an effective limit of 4Mb on the amount of code/read only data in a s3e file. This has now been lifted to 32Mb. 'make' support added -------------------- Command line builds of Airplay applications can now be performed with 'make' as well as 'scons'. 'debug' s3e file context menu ----------------------------- You can now debug any s3e file by right-clicking on it and selecting 'debug'. Change log for SDK features between 3.7 and 4.0 =============================================== Android Support Added --------------------- Deploying airplay applications to android (via an .apk) is now supported. The deployment tool also support installing and running on android devices directly from the GUI. New Module: IwUI ---------------- IwUI is a new module for building rich user interfaces that is fully integrated with the Airplay Studio asset pipeline. Improvements to Airplay Studio ------------------------------ Airplay SDK 4.0 includes widespread improvements to Airplay Studio: OpenGL ES 2.x support is extended with instance parameters and many new standard uniforms. VBOs are automatically used. HW rasterisation is now the default rendering mode. PVRTC compression for non-square textures. PVRTC textures are now compressed even if not square. IwGx will tile them up to square and scale incoming uvs. Support for ETC compression has been added. Gamma is now supported in HW rasterisation modes. Various new examples have been added. Single-boned animations can now be played without creating a single-boned skeleton in data. Models can be conditioned in strip major order for optimal vertex cache usage. IDE Integration --------------- Airplay SDK includes docs/airplay_autoexp.dat for type decoration in Visual Studio. It should be added manually to Visual Studio's autoexp.dat. Change log for SDK features between 3.6 and 3.7 =============================================== iPhone 3.0 Features Exposed --------------------------- Many of the iPhone 3.0 features have been exposed through the several S3E extensions: s3eExt_MicroTransaction.h s3eExt_IPhone.h s3eExt_IPhoneGameKit.h s3eExt_EMail.h s3eExt_BackgroundMusic.h These extensions are only available when deploying to iPhone 3.0. Documentation Updated --------------------- The existing documentation has been reordered and combined into a single chm file. Existing PDF documents, including DevelopingInAirplay.pdf and Ideaworks Labs-authored whitepapers have been merged into this main document. All content has been reviewed and largely re-written. New sections added: Installation and Licensing, Getting Started, User Guide, Airplay Programmer Tools Reference. All API listings are now in a sub-document called Airplay API Reference. AirplayStudioTools.chm has been replaced by the Airplay Art Tools sub-document. Specular Lighting in IwGx ------------------------- An OpenGL ES 1.x-equivalent specular component is now supported in scene lighting. IwGxSurface added for off-screen rendering ----------------------------------------- Cross-platform (including SW) off-screen rendering is now supported on a large range of target devices through CIwGxSurface. Note that performance varies significantly between devices. CPU Exceptions Handling Support ------------------------------- The S3E loader now supports CPU exception handling on platforms where the underlying OS supports this. This means it is possible for an application the crash and for the loader to continue to run and launch other applications. When an application crashes subsequent applications can see which exception cased the crash use S3E_DEVICE_EXIT_SIGNAL. Accelerometer Support Added --------------------------- Airplay System now support accelerometer input vis the s3eAccelerometer.h interface. Accelerometer support is currently available for iPhone, Symbian9 and NGage 2.0. Windows Accelerometer Simulation -------------------------------- The Windows debug environment now supports simulation of an accelerometer. Accelerometer values can be inputted manually or by orientating a 3D display of a device. Windows Pointer Configuration -------------------------------- Various pointer properties can now be configured in the Windows debug environment. It also supports a means of simulating multi-touch events. Change log for SDK features between 3.5 and 3.6 =============================================== iPhone support added -------------------- Beta support for the iPhone/iPod touch has been added to the SDK. Deploying for iPhone will create a .app (for use with Xcode) and a .ipa file (for use with iTunes). Signing of the application can be performed after deployment (using auto-generated scripts) or at deploy time using RPC to a Mac OS X machine on the network. To enable this feature you need to run the provided signing server (s3e/deploy/iphone/signing_server.py) on a OS X machine and set the S3E_IPHONE_SIGN_HOST environment variable on the development machine to the hostname of the OS X machine. LZMA support added ------------------ The s3eCompression API now supports decompressing LZMA data. The compressed archive manager derbh has been updated to support compressing data in LZMA format, which provides around a 5-10% improvement in compression ratio. S3E executable files are also compressed using LZMA giving a similar saving. The deployment option 's3e-compression' has been added to allow switching of the compression format used in the s3e file. QEMU/Insight Debugger support added ----------------------------------- The Airplay SDK now allows desktop emulation and debugging of ARM binaries through QEMU and Insight. To use this system, simply select QEMU/Insight as the debugger during SDK configuration. QEMU/Insight provides improved support for finding exceptions in ARM code, improved debugging display and better performance. GCC improvements ---------------- The GCC build included with the SDK had been upgraded to CodeSourcery's 2008 release. The newlib c library that it uses has been recompiled with space optimisations and we ship only the thumb version. Also, the GCC libraries within the SDK are all now built the RVCT in GCC compatibility mode. This means that speed and size of the SDK code is now identical between RVCT and GCC. The GCC libraries have also all been recompiled with -fshort-wchar to match the settings used by MSVC and RVCT. This means that size of all basic types is now the same in all supported compiler environments. Improved Linux support ---------------------- We now ship two different ARM Linux loaders. One for EABI Linux systems and one for Old-ABI systems. Examples of EABI Linux systems are the Nokia N-series internet tablets. Windows S3E environment UI-only mode ------------------------------------ If you hold down F5 whilst the windows S3E environment starts up, it will go into UI-only mode where the application is not run but configuration settings can be adjusted. This is useful if the application can't startup properly in the current configuration. Brew MIF file creation ---------------------- The deployment system will now modify/create the brew MIF file at deploy time such that includes the icons, name, version, uid and vendor information that were specified in the MKB. Change log for SDK features between 3.4 and 3.5 =============================================== Improved standard library support --------------------------------- The standard library headers and implementation have been updated considerably to the extent the many large open source projects can now be compiled and run on s3e without modification. Improved GCC linking -------------------- GCC binaries are now linked as executables rather than shared objects which allows the linker to discard unused objects. Windows metrics support ----------------------- The Windows S3E environment supports metrics display via the s3eExtMetrics interface, which can provide run-time readouts of S3E metrics (memory, API usage, socket usage, filesystem usage) as well as S3D metrics (polygon throughput, resource usage, memory buckets, etc.). GLES2.0/EGL1.3 support in the API --------------------------------- GLES2.0/EGL1.3 functions are now part of the S3E API and can be used under windows. OpenKODE Core 1.0 Provisional support in the API ------------------------------------------------ We now support OpenKODE. To use it, just include KD/kd.h, write your kdMain function and away you go. OpenKODE will automatically be linked in. Currently there is a complete implementation of the OpenKODE core, that is slightly newer than the version corresponding to the bugfix 2 release of the conformance tests. Look in kd.h to find out exactly what's available. (Note that s3e currently does not support threading; the OpenKODE threading API is present but all functions will fail, as is required on systems without preemptive threading.) ARM Emulator UI --------------- The RTSM ARM emulator now has the same UI as that of the windows S3E environment. The UI is only accessible when ARM code is running. UIQ Support ----------- Support for UIQ based phones have now been added as a Beta feature. Keyboard API ------------ s3eKeyboard.h now has support for all keys on a standard keyboard. Audio & Video API ----------------- The START, PAUSE and RESUME callbacks have been deprecated from the Audio & Video APIs. The Video API now has an expanded list of codecs for determining whether a video file can be played. IwGxFont -------- A module for handling texture-based font formatting and rendering has been added. dzip enhancements ----------------- Existing dz file contents can be listed and extracted using --extract and --list. Alternative syntax is now provided for automated use by scripts (running without a dcl file input). ARM libraries now thumbed for size ---------------------------------- Non-speed critical code paths in the middleware libraries are now thumbed, reducing RAM required by library code by ~1/3. ABGR4444 format supported in SW renderer ---------------------------------------- Textures can be uploaded to ABGR4444 format for variable alpha. Binary Serialising Enhancements ------------------------------- An assert message is triggered if the same resource is specified multiple times in a group. Test for EOF when serialising. Smaller binary format. Smoother animation ------------------ Support in IwAnim for performing animations in a higher precision space than world space. Defaults to 4x. Visual memory dump ------------------ Ability to dump a HTML file containing a detailed picture of all memory allocations. ATITC texture compression ------------------------- ATITC texture compression is now supported for the Imageon platform. Note that ATITC textures will not be visible on the PC. Asset sets for beattoy and racing demo are included. Support for 32-bit viewspace vertex streams ------------------------------------------- These are now supported through the IwGx pipeline. Guaranteed texture page defragmenting ------------------------------------- IwGx now guarantees that if textures are allocated/free in FILO order the texture pages will return to the start state. This incurs a small memory overhead, but can be disabled using [GX] MaxTexturesPerPage=0 if this behaviour is not required. Separated parameters for HW/SW ------------------------------ Since z-offsetting behaviour and requirements differ radically between HW and SW builds, materials now specify these separately. Likewise separate [GX] DataCacheHW and [GX] VertCacheHW will be respected for switchable builds. Texture pages without mipmaps ----------------------------- The application can now initialise a number of tpages without mipmaps using [GX] NumTPagesNoMipMaps. Textures with mipmapping disabled will be uploaded to these in preference to normal tpages. Tpages without mipmaps are 20k smaller. SW renderer convergence with HW ------------------------------- Many differences between SW rendering and HW rendering removed. Of particular note: Material alpha modes are now consistent (ALPHA_NONE will never be chromakeyed in SW). To defer to the texture ALPHA_DEFAULT should be used (this is the default). Vertex alpha is respected for flat-shaded polys. In the next release it will be supported across the board. Metrics for Airplay Studio -------------------------- Airplay Studio now exposes an extensive range of metrics for tracking rendering load and resource overhead. Custom memory buckets --------------------- IwMemBucketRegister can be used to register a user defined custom memory bucket derived from CIwMemoryBucket. Modified .config.txt system --------------------------- The system of documenting .icf settings has now been extended so that any .config.txt files in the project serve as documentation for .icf file settings. Windows context sensitive help ------------------------------ The Windows S3E environment documentation has been improved and is now available as context-sensitive help from the menus and dialogs of the x86 Simulator. Windows S3E allows setting of DirectInput for the keyboard ---------------------------------------------------------- A new option on the Preferences/Keyboard dialog allows Direct Input to be used in exclusive mode, which may help issues with spurious key presses whilst debugging. Improved assertion/error dialog in Windows S3E environment ---------------------------------------------------------- The assert/error dialog displayed when calling s3eDebugErrorShow or s3eDebugAssertShow (used by the IwAssert/IwError macros) has been improved to allow resizing of the dialog and copying text to the clipboard. It also automatically detects hyperlinks in the error message. Windows S3E environment window resizing --------------------------------------- Resizing the window in the windows S3E environment can be controlled by holding Shift and Control whilst resizing. Holding Shift will maintain the displayed surface aspect ratio, holding Control will ensure the displayed surface size is a multiple of the original surface size. Windows S3E environment option for sound latency ------------------------------------------------ There is now an option under Configuration... > Sound that allows the latency of the sound device (i.e., how much internal buffer occurs) to be controlled. Windows S3E environment option for surface alignment ---------------------------------------------------- There is now an option under Configuration... > Surface that causes s3eSurfacePtr() to return a 16-bit aligned pointer rather than the normal 32-bit alignment. This will help catch errors in the windows environment that would otherwise only occur on devices with unaligned screen buffers. This setting defaults to 'on'. Windows S3E environment backlight simulation -------------------------------------------- The windows S3E environment simulates a phone's backlight by darkening the display to simulate the backlight turning off. The backlight timeout can be set under Configuration... > Surface, and the darkening can be enabled or disabled in Preferences... Display Quantised Surface Width & Height Properties ------------------------------------------- The properties S3E_SURFACE_DEVICE_WIDTH_QUANTISED and S3E_SURFACE_DEVICE_HEIGHT_QUANTISED have been added. These return the device screen width and height quantised into specific sizes. The icf setting [S3E] SCREENSIZE is now set internally to be the quantised width and height multiplied together. The purpose of this is to help the user to create the same sized memory buffers etc for devices with similar sized screens. Improved support for SW and HW builds in a single SKU ----------------------------------------------------- Rasterisation icf parameter now supports "SW or HW" which will only initialise half of IwGx (based on it's appraisal of the GL support present). "DataCacheSizeHW" and "VertCacheSizeHW" added to icf to override cache sizes if HW is initialised. Better correspondence between SW and HW for non-power-2 textures and screenspace polys. Improved consistency of ARM runtime environment ----------------------------------------------- On ARM devices the runtime environment now guarantees the stack size in which the game runs is equal to the [S3E] Stacksize icf setting (Default 32k). S3E function calls now consume the same small quantity of stack on all platforms (about 20 bytes per call), and set all temporary registers to zero. Change log for SDK features between 3.3 and 3.4 =============================================== Standard Template Library ------------------------- The STL and C++ runtime library is now supported on GCC, RVCT and win32 consistently via use of STLport. Your S3E applications can now freely use , , , etc. Unified Standard C Headers -------------------------- The standard C headers are now shared between all compiler environments, so there should be far fewer cases where it is necessary to write code to compensate for different C library implementations. Also, where ever possible the compilers supplied C library functions will be linked directly, so you should get the optimal implementation for your target. New X86 Development Environment GUI ----------------------------------- The Windows S3E execution environment now has GUI options for configuring all the Airplay System subdevices, for better simulation of target hardware. Selective Linking ----------------- Selective linking has been added for IwGx and IwGraphics. Selective linking provides smaller builds by eliminating features you know are not used. New Scanline Renderer --------------------- An additional software renderer, the scanline renderer, has been added in addition to the standard software renderer. s3eSocket API Updated --------------------- The s3eSocket API has been updated to make it more consistent with other subsystems. The s3eInetLookupCancel() function has been added to cancel asynchronous DNS requests. OS Version Property ------------------- A new device property has been added to allow you to query the underlying OS version: S3E_DEVICE_OS_VERSION New Batch Files for Standard Python Tools ----------------------------------------- New bat files have bee added to run the standard python tools: s3e_deploy.bat and i3d_make_build.bat. These can be run from the command-line prompt regardless of current working directory or python installation. Brew ---- Brew files opened in append mode now work correctly. Airplay Studio Exporter Updated ------------------------------- World files can be exported and viewed. Locators, Curves and Static models can be exported from one scene. MultiGeo has been removed as an export type. Exporter - Known Issues: Max Export of face selection sets produces multiple entries for each face. Asset Viewer ------------ The background colour of the Asset Viewer has been changed to black. s3eVideoPlay Updated -------------------- s3eVideoPlay has been changed so that it correctly shows videos and jpegs with the correct size and location on the Windows platform. New Events Menu --------------- An 'Events' menu has been added to the Windows Loader to simulate 'suspend' and 'resume' events on the Windows platform. Symbian Deployment ------------------ Deployment now supports running on Symbian 7 & 8 emulators, and there is now increased stability when task-switching. OpenKODE support advanced to 1.0.2 ---------------------------------- The OpenKODE implementation now uses the 1.0.2 header files, and passes the 1.0.2r1 conformance tests. The differences between 1.0 and 1.0.2 are very minor; see the included OpenKODE spec for more details.