Table Of Contents

Previous topic

27. Conventions

Next topic

29. Contributors

This Page

28. Changelog

28.1. Version 1.x-dev

28.2. Version 1.31


  • Modified simplerendering.cgfx to not use structs (feature not yet implemented in IE11)
  • Updated TypeScript documentation for 0.9.1
  • Remapped semantics for devices with fewer than 16 vertex attributes
  • Updated gamepad detection to support latest specification
  • Updated fontManager documentation
  • Minor fix to subtitles sample
  • Correction of various tslint errors
  • Fixed an issue in the SoundDevice when gain was ignored on a source before playing
  • Updated AssetCache to version 2:
    • Includes a new ‘get’ function
    • Modified ‘request’ behavior to include a callback
    • Improved speed and memory allocations
    • Improved handling of the case where assets are forced out during loading
  • Fixed WebGL extension checking to avoid warnings in Firefox
  • Fixed mipmap initialization and debug checking
  • Fixed fontmanager mipmaps enabled by default
  • Fixed wireframe drawing of triangle strips
  • Fixed mime-type for mp3 files in SoundDevice
  • SoundDevice improvements for playing/stoping sources
  • Added node pool and extents to reduce number of ArrayBuffers in AABBTree
  • Various memory saving optimizations for scenes, sounds, physics, forward rendering
  • Enabled tslint and fixed basic errors on tslib
  • TypeScript files can now be linted by using the command: python check-ts path/to/file.ts
  • Fixed node extents update when removing its last renderable or its last light.
  • Added support for building tools with Visual Studio 2013
  • Line spacing support in FontManager

28.3. Version 1.3


  • Added subtitles sample:
    • Demonstrates the creation of subtitles from multiple languages
    • Example shows English and Japanese variants
    • Added support for 8bit font rendering in font.cgfx
  • Added FontManager support for multiple pages:
    • New properties linesWidth and glyphCounts added to the object returned by fontManager.calculateTextDimensions
    • Added argument dimensions to font.calculateTextDimensions
    • Replaced generateTextVertices function by generatePageTextVertices, now with page compatibility
    • Added argument pageIdx to font.drawTextVertices
    • Added argument dimensions to font.drawTextRect
  • Modified FontManager to use tri-strip instead of fan for single characters. Temporary fix for IE11.
  • PhysicsManager optimisations
  • Update protolib library (version 0.2.1):
    • Corrected 2D text rendering order
    • Added additional advanced callbacks/modified call back behavior
  • Fixed an issue in draw2D where sprites were incorrectly scaled around the origin
  • Added debug assertion for draw2D when npot textures are used with mipmaps not supported
  • Fixed missing copyright comments
  • Add viewBox transforms to svg implementation
  • Fixed the handling of gamesession create to treat 404s as if services are unavailable
  • Request handler now retries if 504 responses are encountered instead of failing immediately
  • Improved handling of non-JSON responses to API requests
  • Added support for tar files to deps.yaml and build process
  • General improvements to the soundDevice for stability and the process of incorrectly loaded files
  • Performance improvements to asset loading, especially for large files
  • Work-around fixes to support IE11 for incomplete WebGL specification
  • New feature: GPU-based particle system for high-performance particles simulated on the graphics card
    • High level particle system API for managing the creation and destruction of particles systems from particle archetypes
    • Low level particle system API for controlling the updating of the particles on the GPU
    • Plug-in architecture allowing high level of customization to the particle simulation
    • A sample demonstrating the features of the GPU particle system
    • Comprehensive documentation explaining the API and architecture including diagrams
  • Various documentation corrections
  • Added support to the Camera for specifying the near/far plane to getFrustumFarPoints, getFrustumPoints, getFrustumExtents query
  • Payment support for iOS/Android
  • Fix for jointMax being infinity in Physics2D Debug Draw
  • Updated device_initialization to output to console for fullscreen apps
  • Exposed the ability for the Graphics Device to be created with disabled stencil and depth buffers
  • Fixed an animation issue in addTime() for animations with zero length
  • Fixed an processing issue for cubemaps with a single mipmap level
  • Added scene extents to the viewer scene metrics
  • Improvements to fullscreen implementation (also supports IE11)
  • Improvements to DDS loader image processing
  • Removed usage of deprecated event property “event.keyLocation” in the Input Device
  • Added check when using Workers for processing DDS textures on unsupported platforms
  • Added support for proposed canvas API resetTransform to canvas.js
  • Updated documentation about developer clients
  • Deprecated the plugin-debug build. Sample apps no longer ship in this configuration.
  • Fixed tools build under clang 3.3
  • Changed default materialColor and uvTransform setting behaviour in the renderers to set on the sharedMaterial instead of each renderable

28.4. Version 1.2


  • Fixed animation NodeTransformControllers which would not bind to multiple root nodes in a scene.
  • Added method Material.clone.
  • Added default effect callbacks for all the renderers:
    • defaultPrepareFn
    • defaultUpdateFn
    • defaultSkinnedUpdateFn
    • defaultShadowMappingUpdateFn
    • defaultShadowMappingSkinnedUpdateFn
    • loadTechniquesFn
  • Added utility function PhysicsManager.addNode.
  • Fixed CanvasContext.fillText to support scale and rotation transforms.
  • Updated all Python code to comply with a Pylint 1.0.0 based on updated .pylintrc file.
  • Upgraded to TypeScript 0.9.1 compiler for all engine, sample and application builds. See for information about breaking changes from 0.8.x.
  • Added alpha channel support when creating the GraphicsDevice.
  • Added TEXTURE_UNITS and VERTEX_TEXTURE_UNITS to GraphicsDevice.maxSupported.
  • Added experimental header and footer code required to run .canvas.js builds under ejecta.js. See scripts directory.
  • Updated hub documentation relating to changes in metrics display. See the Hub user guide metrics section for details of changes.
  • Numerous small fixes and optimizations across all the typescript and javascript libraries.
  • Fixed background sound source bug in Protolib.
  • Added a setProgress method to the LoadingScreen object.
  • Added id property to Texture, VertexBuffer, IndexBuffer, RenderBuffer, RenderTarget, Shader, and Technique objects.
  • Canvas 2D API no longer requires a MathDevice object.
  • When setting a negative or invalid score the leaderboard manager will now raise an error.
  • Added getTime method to TurbulenzEngine.
  • Added a getMetrics method on the scene when scenedebugging is enabled, and show metrics in the viewer.
  • Fixed wireframe rendering issues in scenedebugging, adds support for non-indexed geometries sharing buffers.
  • Fix for removal of playbackRate property in Firefox 22.
  • Updates and optimizations to cgfx2json shader compilation.
  • Enable support for pointer lock outside of fullscreen mode in Firefox 22 and higher.
  • Added new copyFiltered post effect to PostEffects.
  • Respect the requested version of typescript when setting up the env to avoid failures with new releases.
  • Enable deferred rendering sample for canvas builds when extensions are supported.
  • Added support for WEBGL_draw_buffers or EXT_draw_buffers extensions.
  • Added sphere loading to load_model sample.
  • Fixed dependencies link in README.rst.
  • Various minor updates shadowmapping.
  • Added NodeJS script to allow exportevents tool to work with open source engine releases.
  • Added compilers check to ‘env’ command. Should warn if correct compilers can’t be found.
  • Fix for unnecessary NvTriStrip build argument

28.5. Version 1.1


  • Update protolib library (version 0.2.0):
    • Added version number field.
    • Added horizontalAlign, verticalAlign properties to drawText.
    • Depricated alignment property of drawText and textAlignment enum.
    • Added setPostRendererDraw function for rendering after the scene rendering.
  • Added Data Shares - shared public key-value stores which allow games to share data with other users.
  • Added Notifications - send instant to other users or delayed notifications to the current user.
  • Added Tic-tac-toe app - An app showing how to use the Data Share and Notification API’s with a simple game.
  • Update protolib library and add two apps ‘protolibsampleapp’ and ‘protolibtemplateapp’ (version 0.1.1)
    • Added a ‘warn’ function to the protolib.utils for warnings.
    • Add a ‘time’ property with app timers calculating current, previous, delta and maxDeltaTime times per frame.
    • endFrame, returns the result of graphicsDevice.endFrame.
    • Made naming conventions more explicit md -> mathDevice.
    • Loading now waits for essential assets to load.
    • Warning if minimum asset requirement is not met.
    • Simplesprite now preloads the shader.
    • Added loading screen with asset tracker for the assets loaded at the start of the game.
    • Params is now available via globals.config.
    • Added setPostDraw function for rendering after protolib, but before graphicsDevice.endFrame
    • Fix for the default assetPrefix value in the mapping settings.
    • Fix for opensans not being specified as the default font.
    • Fix for materialColor incorrectly set in plugin.
    • Fixed check for devices destroy function before calling.
    • Fix: Removed maxDistance = Infinity for sounds, that caused no sound on Firefox.
    • Fix: jQuery,extend undefined reference that caused exception on certain configurations.
  • Updated the buildassets tool to support parallel builds
  • Added support for batched submission of custom events, this allows for many custom events to be sent with less HTTP request overhead
  • Added Visual Studio 2010 and 2012 projects for the tools
  • Added NvTriStrip as a submodule. This is built with the tools command and is used by dae2json to generate optimized tristripped output assets

28.6. Version 1.0


  • Changes for first open source release