Iggy Development History
This change log includes the Iggy development history.
Release 1.2.56 - August 17, 2017
- bugfix: Textfield selection didn't work correctly if parent or ancestor had a scrollRect with a non-0 offset
- bugfix: (AS3) fixed functions hitTestPoint, hitTestObject, localToGlobal, globalToLocal, and properties localX, localY, and pixelBounds to correctly account for scrollRect`s in ancestors
Release 1.2.55 - July 25, 2017
- bugfix: htmlText HTML tags weren't being compared case insensitively, meaning only lower-case tags worked
- bugfix: REMOVED_FROM_STAGE event wasn't being generated properly
Release 1.2.54 - July 11, 2017
- bugfix: Fixed IggyLibraryFlushAll, which previously generated a warning and did nothing
Release 1.2.53 - June 8, 2017
- platform: Use October 2016 XDK for Xbox One
- bugfix: fix mouse-based text selection in TextField when scrollY is non-zero
Release 1.2.52 - March 15, 2017
- bugfix: Loadtime translation callback wasn't being called for textfield strings in .iggy files
Release 1.2.51 - Feb 2, 2017
- bugfix: Fix garbage collection bug in vector<> initialization
- bugfix: Fix converting utf16 surrogate pairs to utf8
Release 1.2.50 - October 19, 2016
- bugfix: Font character fonts w/ multiple separate shapes could render wrong in the vector path
- bugfix: Avoid possible crash if an exception is thrown in the constructor of a nested DisplayObject
Release 1.2.49 - July 21, 2016
- bugfix: (AS3) multiplication of integer-valued Numbers could wrap at 32-bit instead of using double as specified
Release 1.2.48 - June 29, 2016
- platform: Use PS4 3.500 SDK
- enhancement: iggyplay can dump memory stats
- bugfix: match Flash: trailing newline accounted in textHeight for input textfields but not dynamic textfields
- bugfix: (AS3) fix case where certain strings were improperly initialized, could lead to crash
Release 1.2.47 - January 15, 2016
- optimization: speed up rasterization of fonts in bitmap cache
- enhancement: allow fonts embedded in SWF to be used as fallback font
- enhancement: added IggyGDrawCleanup function which you should run before destroying GDraw context
- bugfix: fix iggyconvert64 corrupting text in static textfields
- bugfix: fix several mishandled characters in Japanese line-breaking
- bugfix: fix handling of certain TrueType fonts which use an obscure part of the specification
- bugfix: (PS4) fix broken sRGB handling when baking textures into iggytex format
- bugfix: avoid crash if no fallback font is installed (on path that should be unreachable)
- bugfix: (PS4 GDraw) explicitly reset setIndexOffset
- bugfix: (OpenGL GDraw) avoid warning on some OpenGL platforms
Release 1.2.46 - October 28, 2015
- bugfix: (AS3) TypeError in function parameters unbalanced an internal stack and could crash
- bugfix: better mouse selection when dragging outside single-line textfields
- bugfix: fix incorrectly-reversed compositing order of nested ColorTransforms
- bugfix: fix leak of internal object handles used for finalizers/weak-refs
- bugfix: fix leak of per-file mutex introduced in 1.2.44
- bugfix: fix crash bug with installed truetype fonts rendered as vectors introduced in 1.2.44
- bugfix: fix handling of Flash-10 specific fields when using .iggy files
- bugfix: (AS3) fix lost Timer events due to garbage collection
Release 1.2.45 - September 18, 2015
- platform: Build with Xbox One June 2015 XDK
- enhancement: added IggyValueRefGetGlobal to allow accesses AS3 classes
- enhancement: (AS3) allow System.gc()
- bugfix: fix utf8 texture substitution callback
- bugfix: utf8 translation callbacks are 0-terminated as specified in docs (utf16 callbacks aren't)
- bugfix: (iggyperfmon) prevent flashing after disabling
Release 1.2.44 - September 8, 2015
This version changes the interface between GDraw & Iggy; you will get a compile error in GDraw if you don't update it.
- platform: Use PS4 2.500 SDK
- enhancement: (iggyconvert) add "--anyversion" option to iggyconvert that disables Flash version check
- enhancement: increase performance of font rasterizer by 35%
- bugfix: (AS3) fix bug where flushing/destroying an Iggy wouldn't free cached gradient GDraw texture handles
- bugfix: (AS3) fix bug where clear on a Graphics object wouldn't free cached gradient GDraw texture handles
- bugfix: (AS3) fix potential crash if you add more graphics without calling clear to a Graphics object that's already been rendered
- bugfix: (AS3) fix race condition when rendering one Iggy while ticking another Iggy when the latter has a Graphics object, which could cause crashes in GDraw, the graphics library (e.g. D3D), or Iggy
- bugfix: (AS3) fix theoretical race condition when rendering one Iggy while ticking another Iggy even if the latter has no Graphics object; this could lead to arbitrary crashes in either of the threads; this race was probably not possible in practice since it's never been observed, but I couldn't prove it wasn't possible so I fixed it anyway
- bugfix: (OpenGL gdraw) fix texture coordinate problem when rendering to rendertargets
- bugfix: fix bug where AS3 classes defined in IggyLibrary files used from multiple Iggy players could cause crashes
Release 1.2.43 - July 29, 2015
- enhancement: TextField.height for empty textfields is 0 if IGGY_VERSIONED_BEHAVIOR_textfield_html_newlines is 1.2.43 or earlier
- bugfix: (AS3) fix DisplayObjectContainer.getObjectsUnderPoint to handle scrollRect in descendents
- bugfix: (AS3) fix bug in getObjectsUnderPoint and iggyGetObjectsUnderPoint where an object disabled by setHittestProperties truncates the list prematurely
Release 1.2.42 - July 22, 2015
- bugfix: (AS3) fix DisplayObjectContainer.getObjectsUnderPoint to handle textfields and bitmaps
- bugfix: (OpenGL) fix issue with deleting uninitialized renderbuffer handles
Release 1.2.41 - May 27, 2015
- enhancement: added IggyPlayerEnableMouseProcessing for disabling mouse processing entirely
- enhancement: parse 'visible' elements of SWF 11 files and produce warning about lack of support
- bugfix: (iOS) avoid problem with reference to ___sincos_stret when targeting old OS versions
- bugfix: (PS4) support SDK 2.500
- bugfix: (AS3) avoid crash if changing textfield text from AS3 then using no-longer-relevant undo/redo
Release 1.2.40 - April 22, 2015
- enhancement: added IGGY_VERSIONED_BEHAVIOR_forbid_dispatching_new_listeners to revert following bugfix to previous behavior
- bugfix: (AS3) Change EventDispatcher.addEventListener behavior when adding a listener to an EventDispatcher that is currently in the middle of dispatching the same event to more closely match Flash by not calling the newly added listener in certain (undocumented) circumstances
- bugfix: (AS3) fix hit-testing of 3D objects
Release 1.2.39 - April 10, 2015
- enhancement: added IggyLibraryMakeFontsGlobal that allows font importing from library files without specifying import-for-runtime-sharing
- bugfix: (AS3) fix Array.join delimiter GC protection; perfectly-timed garbage collection could relocate Array.join delimiter (only if not a string constant) without its knowledge, causing garbage characters in the output
- bugfix: (AS3) support interface inheritence ("extends")
Release 1.2.38 - March 11, 2015
- bugfix: fix certain platforms where loading a SWF that uses Vector<> would produce a VerificationError
- bugfix: avoid crash if a parameter to ExternalInterface.call or return value from IggyPlayerCallMethodRS or IggyPlayerCallFunctionRS is of type EventDispatcher but not DisplayObject
- bugfix: change return value of IggyValueGetTypeRS to IGGY_DATATYPE_object if object is of type EventDispatcher but not DisplayObject
- bugfix: correctly allow alpha-fading of opaque bitmaps encoded in SWF as non-JPEG
- bugfix: (AS3) throw exception on invalid name in getDefinitionByName instead of returning null
- bugfix: (AS3) change behavior of Timer.start after Timer.stop to match Flash (now resets the timer, used to pause/continue)
Release 1.2.37 - February 3, 2015
Position of all textfields will shift slightly in this release. The new behavior is closer to Flash's behavior more than half the time, but mostly important fixes a bug with certain fonts. Generally it adds a tiny bit of extra space at the left and right of text; centered text shouldn't change substantially.
You can disable the new behavior if your existing content relies on the old behavior.
- enhancement: added IGGY_VERSIONED_BEHAVIOR_improved_textfield_width to revert following bugfixes to previous behavior
- bugfix: adjust left, right, center justification to differently account for space at beginning and end of line for better font compatibility
- bugfix: (AS3) change TextField.autosize to do the same thing
- bugfix: (AS3) change value reported by TextField.textWidth to be consistent with above for better Flash compatibility
- bugfix: (AS3) rewrite behavior of TextField.autoSize to better match Flash semantics depending on what order you set x, width, and autoSize
- bugfix: (not controlled by IGGY_VERSIONED_BEHAVIOR_improved_textfield_width) apply leading properly to textfields which start with an image
- source: improve linux build compatibility: correct case for #includes
Release 1.2.36 - January 21, 2015
- bugfix: (AS3) (WiiU, Vita) fix Date.getTime() and Date.setTime() on WiiU
Release 1.2.35 - January 12, 2015
- platform: Support 64-bit iOS
- platform: Use PS4 2.000 SDK
- enhancement: added IGGY_VERSIONED_BEHAVIOR_textfield_html_newlines to revert following bugfix to previous behavior
- bugfix: (AS3) change handling of <br>, <p>, </p> tags & their interactions to more closely match Flash (<p> must be closed to work correctly)
- bugfix: (AS3) change handling of SimpleButton children so you can copy from one state to another
- bugfix: (AS3) fix getting/setting rotation when one axis is scaled negatively
- bugfix: fast text filter effects were getting incorrectly clipped to edge of textfield
- bugfix: autosized text fields include empty line at bottom, same as Flash
- bugfix: correctly support 16-bit mousewheel values instead of only 8-bit
- bugfix: (D3D10/11) support more than 8 masks per frame
- bugfix: (PS4) support more than 8 masks per frame
- bugfix: (OpenGL) clear depth & stencil buffer automatically instead of making user do it (consistent with other platforms)
Release 1.2.34 - October 1, 2014
- platform: Use PS4 1.700 SDK
- bugfix: (AS3) clamp Bitmap.alpha value identically to Flash (was already clamped for Sprite/MovieClip)
- bugfix: (AS3) fix comparing NaNs to non-NaNs on x64 platforms
- bugfix: (AS3) fix DisplayObject.rotation when scaleX or scaleY is negative
- bugfix: (AS3) fix DisplayObject.rotation snapping to integers when close
- bugfix: remove dependency on rrCore.h from iggyperfmon.h
- bugfix: (Mac) fix vertex array object handling in GL core gdraw
- bugfix: (Vita) enable fast text filter effects
- bugfix: (X360) fix examples broken by 1.2.33 radtypeschange
- bugfix: (Windows) fix using mp3 decoder when compiling with VC 2012/2013 broken by 1.2.33 radtypes change
- enhancement: (PS4) enable Iggy's limited 3D capabilities
- source: improve linux build compatibility, mostly correct case for #includes
Release 1.2.33 - August 30, 2014
- platform: The original Wii is no longer supported.
- platform: (Mac) GL Core 3.2 profile now officially supported with separate Core GDraw
- change: Iggy now uses "radtypes.h" instead of "rrCore.h". You may want to update other RAD products as well.
- bugfix: (AS3) fix random crash bug when doing 'new Vector<T>()'
- bugfix: (AS3) fix bug that produced garbage when querying scaleX,scaleY,scaleZ
- bugfix: (AS3) fix infrequent garbage matrix produced by Matrix3D.clone (gc bug)
- bugfix: (AS3) fix inability to pass arrays through ExternalInterface.call
- bugfix: (3D) fix bug when 3D object had both 2D and 3D ancestors in certain configurations
- bugfix: (3D) support blends & filter effects in 3D (inefficiently for now)
- bugfix: (source) include Xbox One shadergen source
- enhancement: (Vita) fixed gdraw warnings
Release 1.2.32 - August 1, 2014
- bugfix: (AS3) fix TextField.y accessor for certain textfields created from timeline
- bugfix: (AS3) allow accessing super.foo when foo is a variable rather than a getter
- bugfix: (AS3) fix behavior of DisplayObject.x`/`y`/`z after setting Transform.matrix3D
- source: add missing header file broken in 1.2.28
- source: avoid a couple warnings
Release 1.2.31 - July 9, 2014
- platform: Update Xbox One to use new monolithic API, fix broken example project
- bugfix: fix fast text filter effects to obey textfield clipping (broken in 1.2.30)
- bugfix: fix broken font fallback handling when SWF file contains empty fonts
- bugfix: (3D) apply 2D transformations from ancestors to 3D objects
- bugfix: (AS3) fix 'z' getter (broken in 1.2.30)
Release 1.2.30 - June 20, 2014
- enhancement: Added IggyFontSetFallbackFontUTF8/UTF16 to set a font which is used if any other fonts are missing characters.
- platform: (Mac) Experimental GDraw for using core GL instead of legacy GL
- bugfix: fix various issues with textfield mouse selection, most visibly clicking on centered single-line text
- bugfix: fix fast text filter effects to respect ColorTransform e.g. alpha (broke in 1.2.29)
- bugfix: (AS3) fix certain uses of TextFormat to not incorrectly set the font size to 12
- bugfix: (3D) fixes to scrollrects & textfield clipping
- bugfix: (3D) explicitly make blend modes and filter modes be no-ops instead of breaking weirdly
- bugfix: (3D) fixes to handling of 2D properties like rotation/scaleX/scaleY in 3D
Release 1.2.29 - May 27, 2014
- enhancement: Iggy now silently accepts SWF files with Flash versions up to 10.3 (but still only targets compatibility with Flash 9)
- enhancement: can apply multiple fast text filter effects to a single textfield (though they behave differently from Flash)
- enhancement: added IGGY_VERSIONED_BEHAVIOR_fast_text_effects to revert following bugfix to previous behavior
- bugfix: fixed bug where direction of dropshadow fast text effects was wrong for any direction but 45 and 135 degrees
- enhancement: (D3D10/11) add limited subset of Flash 3D
Release 1.2.28 - May 1, 2014
- platform: added support for PS Vita
- platform: added support for armv7s on iOS
- enhancement: added IggyValueRef system (see Using IggyValueRefs for more detail)
- enhancement: added IGGY_CONFIGURE_BOOL_SuppressAntialiasingOnAll9SliceBitmaps to suppress Iggy edge-antialiasing on bitmaps inside 9-slice scaled objects
- documentation: added thorough documentation about Communication between C++ and AS3
- bugfix: avoid crashing if Input textfield has an inline image
- bugfix: correctly handle out-of-memory during IggyPlayerInitializeAndTickRS
- bugfix: (AS3) Function.apply allows undefined for second parameter
- bugfix: (PS4) fixed iggyconvert to not produce corrupted iggytex files
- bugfix: (mac) fixed broken gdraw
- bugfix: (ios) fixed broken sample code
Release 1.2.27 - April 15, 2014
- bugfix: avoid crashing if Input textfield has an inline image
- bugfix: (ios) fix broken gles shader file
Release 1.2.26 - April 8, 2014
- platform: WinRT support
- bugfix: (D3D9) Set correct value for ZFUNC when partially-clearing stencil
- bugfix: (Mac) Replace calls to glClear() with custom shader to reduce driver overhead
- bugfix: avoid stack smash if textfield HTML tag name is too long
Release 1.2.25 - March 28, 2014
- platform: Use Xbox One March SDK
- bugfix: fix crash bug caused by incorrect garbage collection handling of IggyLibrary files with certain kinds of AS3 code in them
- bugfix: don't define _WINDOWS on Xbox One
Release 1.2.24 - March 10, 2014
- bugfix: fix bug where ADDED_TO_STAGE messages weren't sent for most objects
Release 1.2.23 - March 7, 2014
- enhancement: add IGGY_CONFIGURE_BOOL_SuppressAntialiasingOnAllBitmaps to suppress Iggy edge-antialiasing on all shapes with bitmap fills, not just simple rectangles (useful when 9-sliced diced bitmaps aren't detected properly); also iggyplay accepts --nobitmapaa to enable it
- bugfix: fix bug where text could overlap itself if one character was defined as extremely wide in the font
- bugfix: (X360) fix edge artifacts when applying filter effects and insufficient EDRAM memory is available
Release 1.2.22 - January 30, 2014
- bugfix: fix incorrect mouse hit-testing when masking using AS3 DisplayObject.mask property
Release 1.2.21 - January 27, 2014
- memory: add no-inline directive to avoid 50KB+ stack usage due to clang aggressively inlining leaf function that used 5KB of stack into a recursive function
- bugfix: avoid crash when changing text format of textfield containing inline images
- bugfix: (AS3) fix removeChildAt to return the removed child
- bugfix: fix display bug if 9slice object was directly contained in 9slice object
- bugfix: (X360) fix bug in scissor-rect handling that affected filter effects
Release 1.2.20 - December 16, 2013
- enhancement: can specify fallback character to use for missing characters in TTF fonts
- enhancement: control-left and control-right move by words in TextField
- bugfix: added IggySetFontCachingCalculationBuffer to support screens displaying more than 2000 characters
- bugfix: TextField.getTextFormat now works correctly for empty textfield / empty region
- bugfix: defensively avoid potential infinite-loop when trying to move focus with keyboard
- bugfix: TextField created with new() incorrectly had selectable set to false, now true
- source: rework Telemetry handling for better source releases
Release 1.2.19 - November 26, 2013
- bugfix: fix scaling bug when non-uniformly scaled text that's provided by app as bitmaps
- bugfix: fix crash bug in japanese line-breaking algorithm when embedded images are used
- bugfix: (AS3) fix crash if there's a reference to vector<Foo> where Foo is undefined
Release 1.2.18 - October 21, 2013
- enhancement: support ' ' in htmlText, and make U+00A0 use the same path and no longer be a breaking-space
- enhancement: add counts of AS3 DisplayObjects (MovieClips) to garbage collector monitoring callback data
- performance: sped up garbage collector if you have a lot of off-stage DisplayObjects
- performance: don't render objects which have their alpha set to 0
- bugfix: respect bold/italic font settings specified on textfield property page (previously only used bold/italic from htmlText or TextFormat)
- documentation: small clarifications to installed fonts, gdraw resource management
- enhancement: (GDraw) change unused-variable macro on VS2010+ to avoid warnings when compiling GDraw
Release 1.2.17 - September 18, 2013
- bugfix: fix cursor flashing to work correctly when using IggyPlayerDrawTilesStart
- bugfix: fix bug introduced in 1.2.16 when setting DisplayObject.width/height if child of object is scaled to 0 width/height
Release 1.2.16b - September 13, 2013
- bugfix: fix IggySetTextCursorFlash (was just forcing cursor on when called)
Release 1.2.16 - September 11, 2013
Avoid using .iggy files from iggyconvert from 1.2.13 through 1.2.15; the handling of bitmaps/textures were incorrect in those versions, and are incompatible with this version.
- change: (PS3/PS4) add "lib" prefix to library file
- performance: minor improvement for rendering non-9slice shapes
- documentation: fix a few minor errors and missing options in the docs
- enhancement: Added IggySetTextCursorFlash to allow configuring textfield cursor blink speed
- bugfix: prevent keyboard focus change with tab from focusing on hidden mc's/textfields
- bugfix: don't crash when setting IggySetIndirectFontMaxCount if there are currently no indirections
- bugfix: (AS3) fix GC crash bug with DisplayObject.filters getter
- bugfix: (XBone/Win64) fix broken IggyMakeEventKey on Xbox One and win64
- bugfix: fix bug where cursor wasn't drawn in empty textfields with no border or background
- bugfix: fix bug in setting DisplayObject.width/height when object was previously scaled to 0 width and height
- bugfix: (AS3) fix bug in .iggy file format for bitmaps on little-endian platforms introduced in 1.2.13
- bugfix: make textfield cursor blink speed frame-rate independent
- bugfix: (gdraw) fix unused variable warnings in gdraw_shared and gdraw_ps3gcm
- bugfix: (iggyperfmon) fix 'unnamed union field' warning in code using iggyperfmon.h
- bugfix: (iggyplayer) Fix output for --texsub
- bugfix: Fix linker dependency bug in PS4 project file
- bugfix: Add missing icon files to XBone example project to allow deployment
- bugfix: (AS3) fix performance bug in String.toLower
Release 1.2.15 - August 14, 2013
- bugfix: Fix bug introduced in 1.2.14 which broke setting ValuePath of root with an explicit field name
- bugfix: avoid link collision with Miles Sound System for function rrCompareUtf8toUTF16
- platform: Use PS4 SDK 1.000
Release 1.2.14 - August 12, 2013
- enhancement: Allow returning a value from ExternalFunction.call by using IggyPlayerCallbackResultPath
- enhancement: Added IggySetLanguage
- bugfix: (D3D9 gdraw) fix a bug in partial-stencil-buffer clear code from 1.2.12
- bugfix: Word-wrapping of East Asian languages is more consistent with Flash (use IggySetLanguage to enable)
- bugfix: Fix very rare bug in Iggy vector graphics processing of objects with holes
- bugfix: Fix totally broken generation of mouse double-click events
- bugfix: (AS3) Fix mouseX/mouseY values when queried on objects contained in an object with a scrollRect
Release 1.2.13 - July 25, 2013
- change: changed PS4 & Xbox One iggyconvert platform names from sekrit1/sekrit2 to 'xbone' and 'ps4'
- enhancement: Iggy will load Flash 10 files. Vector<> is supported, but not much else.
- enhancement: change API of IggyPlayerSetFocusRS to allow passing in the keyboard character that will propagate to focus events
- enhancement: added IggyPlayerForceMipmaps to force mipmaps to be created when a bitmap is first converted to a texture
- performance: Spread out performance load caused if multiple bitmaps are gradually scaled down and need mipmaps at the same time
- bugfix: (D3D9 gdraw) support partial-stencil-buffer clears so more than 8 masks work correctly even when certain ones are nested
- bugfix: (WiiU gdraw) fix issue where additive color (e.g. "tint") on one object would extremely rarely be applied to another object as well
- bugfix: (AS3) fix occasional crash caused by using new Array(a,b,c,...etc..) with certain kinds of a,b,c
- bugfix: (AS3) fix occasional crash caused by using initialized-object syntax like { "foo":3, "bar":"baz" } with certain kinds of values
- bugfix: fix small leak when non-cached vertex buffers were created (fairly rare); note memory was already eventually freed by IggyPlayerDestroy
- bugfix: allow uninstalling the translation callback by setting it to NULL
- bugfix: MOUSE_LEAVE is supposed to be a non-bubbling event, but was handled incorrectly
- bugfix: fix crash bug in triangulator caused by degenerate input (shapes with a non-zero but extremely tiny width or height)
- bugfix: fix bug in hit-test logic when using Graphics class to create overlapping shapes with different fills
- bugfix: fix graphics bug with masking when the masked object uses Graphics starting with a lineTo/curveTo without an initial moveTo
- bugfix: fix hit testing of objects with hitArea when the hitArea object is in an object with a scrollRect
- source: various improvements for compiling from source
- platform: Use July 2013 Xbox One SDK
- platform: Use PS4 SDK 0.930
Release 1.2.12 - May 23, 2013
Source code to Iggy is now available on request.
- platform: Use 2.08.13 SDK on WiiU
- enhancement: Iggy can now play audio to multiple devices at once
- enhancement: allow IggyPlayerPause to stop voices instead of pausing them
- bugfix: fix "Method was not a function" error message in IggyPlayerCallMethodRS
- bugfix: (AS3) Fix bad matrix returned by Matrix.invert for degenerate matrices
- bugfix: remove duplicate rrisnan() function that conflicted when linking with Granny
- bugfix: iggyconvert properly aligns PS3 textures
- bugfix: fix crash in iggyconvert when using texture replacement
- bugfix: fix crash during shutdown when installed fonts were freed before calling shutdown
- bugfix: allow clicking on an underlying object when clicking on an object that's masked away
- bugfix: fix several thread-unsafe lazy initializations, most of which were very unlikely to happen
- source: try to avoid some static-analysis warnings from certain compilers
- source: fix assertion problem when loading an .iggy file in a debug build
Version 1.2.9 of Iggy replaced the error handling in Iggy. If you're upgrading from a version before 1.2.9, see Notes on upgrading from versions prior to 1.2.9.
Release 1.2.11 - April 9, 2013
- optimize: don't do filter/blend effect processing on empty textfields without background/border
- change: changed mousewheel delta value in IggyMakeEventMouseWheel to 16-bit (from 8-bit)
- bugfix: improve line-break/word-wrapping logic to better match Flash for CJK and hyphenated words
- bugfix: always add text leading to empty lines
- bugfix: (AS3) fix String.split delimiter GC protection; perfectly-timed garbage collection could relocate String.split delimiter without its knowledge, causing incorrect splitting or crash
- bugfix: (AS3) fix TextArea focus issues etc by making keyFocusChange and mouseFocusChange events cancelable, so preventDefault() works
- bugfix: (AS3) don't use Flash 10 definitions if file is Flash 9, e.g. allow user code to add a 'z' variable to DisplayObjects that doesn't conflict with Flash 10 'z' getter/setter
- bugfix: fix error messages which include numbers to display the numbers correctly
- bugfix: fix false positive warning in debug leak checker about "iggy/seekqueue"
Release 1.2.10 - March 18, 2013
- bugfix: fixed a small number of error-handling paths which, instead of failing and sending IGGY_RESULT_Error_Create errors, would instead crash dereferencing NULL.
- bugfix: fixed IggyPlayerCallFunctionRS to send an error callback if the called function throws an uncaught exception
- bugfix: (AS3) fixed TextField.getLineText to not crash if the line contains an image
- bugfix: (AS3) fixed AS3 to not hang if you try to coerce a Function to a Number
- change: reverted the .iggy file format changes in 1.2.9; .iggy files from 1.2.8 and earlier will still work
Release 1.2.9 - March 11, 2013
This version of Iggy totally replaces the error handling in Iggy to something which should make it significantly easier to detect and fix programming errors. For rationale and general info, see Iggy error handling.
Changing the error handling introduces numerous API changes. We are not providing a deprecation path or back-compatibility; the API changes will introduce compile errors that you will need to fix. You will not need any new API calls, and the changes should all be straightforward. See Notes on upgrading from versions prior to 1.2.9.
- change: Many API changes due to new error handling system
- bugfix: Fix crash that could occur if multiple libraries defined the same name
- change: Iggy file format has changed (This change was reverted in 1.2.10)
Release 1.2.8 - February 28, 2013
A minor update to the previous release, to avoid a long delay on this bugfix.
- bugfix: Fix a crash which only manifests if you "new Shape" while rendering with Iggy's antialiasing disabled
Release 1.2.7 - February 27, 2013
- enhancement: allow spaces in binpath used by iggyconvert
- bugfix: fix crash introduced in 1.2.6 if using <img> in htmlText (fix increases memory usage by the 8KB that 1.2.6 tried to save)
- bugfix: Allow font-size changes to affect empty lines
- bugfix: (X360) Fix loading of textures from .iggytex files broken in 1.2.6
- bugfix: (D3D10/11 GDraw) Better handling of NULL mallocs
- change: (D3D10/11 GDraw) DISCARD dynamic buffers once a frame, to avoid exercise less common driver path
- bugfix: (X360 GDraw) fix calculations involving D3D Width/Height that could cause spurious assertions and incorrect calculations if sizes were not EDRAM tile multiples
Release 1.2.6 - February 13, 2013
Major changes:
- vector graphics are faster
- optional simplified filters for text effects
- several scale9grid fixes
- several AS3 fixes
Full list:
- platforms: added new GDraw for new devkit hardware/SDK on secret platform
- performance: reduce vector-shape filled graphics batch count (drawprims) by 50%, but increases vector-shape vertex-buffer memory use by estimated 5-10%.
- performance: added IggyFastTextFilterEffects to provide faster (but reduced functionality) path for text drop-shadows etc.
- performance: (WiiU) optimized special blend modes to remove a copy
- performance: doubled the maximum number of bitmap characters that can be drawn in one batch from 128 to 256
- enhancement: IggyPlayerPause can pause audio playback (API function prototype change)
- enhancement: new convenience functions for mapping controllers to Iggy Perfmon API on PS3/Wii U/secret platform
- enhancement: (WiiU) sample app for GamePad display (DRC)
- enhancement: iggyplay32/64 can generate a dummy texture when setTextureForBitmap is called
- bugfix: Iggy Perfmon has correct controller button names for PS3/Wii U/secret platform
- bugfix: correctly handle scale9grid/9slice that shrinks on one axis and grows on another
- bugfix: correctly handle textfields inside scale9grid objects
- bugfix: apply color effects/ColorTransform to TextField border/background
- bugfix: allow AS3 variable set/get from inside custom draw callback
- bugfix: (AS3) TextField.getCharBoundaries returns correct results, even for characters off edge of textfield
- bugfix: (AS3) don't spuriously fail other constructors if a constructor throws an exception
- bugfix: (AS3) fix incorrect handling of subclass of Array (previously, instances would end up as plain Arrays)
- bugfix: (AS3) added support for "tabstops" attribute in <textformat> tag (TextFormat.tabStops was already supported)
- bugfix: (AS3) define methods in IEventDispatcher properly so in rare case where AS3 compiler specifies it as the source it can be found
- bugfix: (AS3) make interfaces which extend other interfaces additionally define the extended interface's methods with the new correct source
- bugfix: don't leak AS3 stack if a function call fails at startup (e.g. typechecking failure)
- bugfix: (GL GDraw) implemented thrashing detection
- bugfix: (D3D10/11 GDraw) separate dynamic index and vertex buffers for D3D11 Level 9 compatibility
- bugfix: (D3D10/11 GDraw) do error checking for dynamic vertex buffer allocation failing
- memory: Iggy frees memory to application slightly more aggressively, like it did before 1.2.3
- memory: reduce memory usage by 8KB per Iggy
- change: textures used for gradients no longer get mipmaps: fixes a one-pixel glitch in default skin of Button, slightly faster uploads, may save texture memory on some platforms
Release 1.2.5 - January 23, 2013
This release fixes two major bugs introduced in 1.2.3 and 1.2.4: a texture handle leak when using texture substitution and an audio click with mp3/adpcm playback.
- platforms: initial release for "sekrit1" platform
- platforms: initial release for "sekrit2" platform
- enhancement: (GDraw) Minor cleanups to gdraw_shared.inl
- enhancement: Improve tesselation of curved wide lines if the width is very large
- bugfix: fix texture substitution to cache by name properly (was broken by changes in 1.2.3)
- bugfix: fix audio click at beginning of mp3/adpcm sounds (was broken by changes in 1.2.4)
- bugfix: add missing reentrancy checking to IggyPlayerTickRS
- bugfix: (AS3) fix memory-leak of MovieClips with RENDER or ENTER_FRAME event listeners
- bugfix: fix glitch in wide-line rendering if two successive lines went in nearly same direction
- bugfix: (AS3) fix memory corruption on 64-bit platforms that only occurred if you used very large integer constants in AS3 code (bigger than 2^29)
- bugfix: (GDraw) OpenGL gdraw must default glDepthMask to true so depth clears work
- bugfix: (iggyperfmon) fix button names for PS3
- compatibility: (AS3) getDefinitionByName now accepts "foo.bar.baz" as well as old "foo.bar::baz"
Release 1.2.4 - December 12, 2012
- enhancement: IggyFlushInstalledFonts allows changing gdraw ResourceMemory when using installed fonts
- enhancement: .iggy files can be loaded in-place in memory
- bugfix: if .iggy file load is not in-place, memory containing .iggy file is not modified
- bugfix: (AS3) fix bug in AS3 property 'delete' which was exposed by changes in memory manager in 1.2.3
- bugfix: (AS3) allow Math.min and Math.max to take more than two parameters (also less than two)
- bugfix: (AS3) fix alpha scaling of gradients set by calling AS3 Graphics functions
- bugfix: fix broken position handling for gradient/bitmap linestyles
- bugfix: fix incorrect positioning of some DisplayObjectContainers nested inside scale9grid objects
- bugfix: fix click artifacts when doing extreme sample-rate conversions for mp3 and ADPCM
- bugfix: installed truetype fonts now use vertical font metrics that are more likely to be consistent with Flash's
- bugfix: (PS3) Fix assert in ResetAllResourceMemory
Release 1.2.3 - November 29, 2012
This release includes a rewrite of Iggy's internal memory manager. The new code is much cleaner and may be slightly faster. Enabling the debug leak tracker no longer requires additional memory overhead. However, as this code is new, it might have bugs, so keep an eye out for excessive memory usage or leaking.
- change: rewrote internal malloc implemenation; minor API change in allocator callback functions
- enhancement: iggyconvert config file can specify replacement image files with replace command
- enhancement: font names can be indirected so multiple names can use same font using IggyFontSetIndirectUTF8 etc
- enhancement: add UTF8 texture susbtitution callback IggySetTextureSubstitutionCallbacksUTF8
- enhancement: AS3 texture substitution call can request specific width/height
- bugfix: (AS3) improved compatibility of TextField.getCharBoundaries
- bugfix: (gdraw) fix bug with WrappedTextures introduced in 1.2.2
- bugfix: support Flash binding bitmap images to Bitmap rather than BitmapData classes (Flex components)
- bugfix: fix bug when using Sprite.startDrag with a null Rectangle
- bugfix: tweaked textfield clipping for better Flash compatibility
- bugfix: fix handling of italics/bold fonts for installed fonts (previously couldn't have multiple variants of same font)
- bugfix: fix crash bug which occurred in certain conditions if garbage collection was triggered during gotoAndPlay() called from timer event
Release 1.2.2 - November 12, 2012
This release fixes a number of small bugs and improves one aspect of memory usage. We recommend updating GDraw as well, as the rewritten system included here may fix some bugs.
- change: (gdraw) rewrite handle caching logic to be much more explicit, less likely to have bugs
- memory: 40% reduction in memory used to store classes and bytecode functions in AS3 virtual machine
- enhancement: increase maximum simultaneous substituted textures from 256 to 2048
- enhancement: ampersands in htmlText which are not part of valid escapes behave same as Flash
- bugfix: (Windows) add missing OpenGL GDraw files
- bugfix: (iggyperfmon) fix crash bug when using substituted textures
- bugfix: (AS3) when setting negative scaleX, make scaleX negative instead of multiplying scale by -1
- bugfix: (AS3) reading stage.stageWidth and stage.stageHeight return current size set by IggyPlayerSetStageSize. (Use stage.fullscreenWidth/fullscreenHeight to read the value set by IggyPlayerSetDisplaySize.)
- documentation: full documentation for htmlText supported/unsupported/extra features
Release 1.2.1 - November 1, 2012
- bugfix: (WiiU) add missing Wii U GDraw files
- bugfix: fix bug introduced in 1.2.0 which caused Iggy to not generate mipmaps most of the time
Release 1.2.0 - October 29, 2012
This release introduces the Iggy File Format, which allows files to load faster and use native textures. We made significant change to the GDraw implementations, including changes to the internal API and, on some platforms, to the public API. The iOS gdraw has been renamed to be iOS specific.
- enhancement: The Iggy File Format on all platforms except iOS
- enhancement: output Wii U DRC audio using IggyPlayerSetAudioDevice
- enhancement: OpenGL support in Windows using gdraw_wgl.c
- change: significant, incompatible changes to all GDraw implementations
- change: rewrote parts of incremental GC related to MovieClips (there were no observed bugs in the old system, but it didn't have an unambiguous invariant)
- bugfix: avoid possible but never-seen rare crash due to GC-mishandling of rarely-used MovieClip cases
- bugfix: (WiiU) avoid possible but never-seen rare crash in GC from computing Event.toString, MouseEvent.toString, etc
- bugfix: (AS3) fix bug where hasOwnProperty, isPropertyOf, and propertyIsEnumerable threw errors when called on objects defined using "obj = { x:a, y:b }" notation.
- bugfix: fix scale9/9slice objects compositing incorrectly if filters or blend modes were applied to them
- bugfix: fix bug in handling of conditional non-pow-2 textures
- bugfix: (gdraw) fix some incorrect handling of errors if resources could not be created
- change: (gdraw) more consistent error reporting
- optimization: (PS3/WiiU gdraw) remove unnecessary GPU flushing during GDraw shutdown
Release 1.1.20 - October 5, 2012
- change: (WiiU) Use SDK 2.07.03p5
- change: renamed iggyplayer.exe to iggyplay32.exe, and added iggyplay64.exe to Windows SDK
- change: (iOS) wrapped texture API requires you to specify if texture has mipmaps or not
- enhancement: (PS3 gdraw) minor performance improvement
- bugfix: (PS3 gdraw) obey the minimum texture pitch requirement -- this is very important
- bugfix: fix bug in horizontal positioning of characters from some TrueType fonts
- bugfix: (AS3) String.split() should produce an empty string at the end if there is a trailing delimiter
- bugfix: (AS3) StaticText objects had incorrect bounding boxes
- bugfix: unlikely to be noticable, mouse coordinates weren't properly affected by IggyPlayerSetDisplaySize until after next Draw
Release 1.1.19 - September 24, 2012
- change: (WiiU) Use SDK 2.07.03p4
- bugfix: allow passing IGGY_DATATYPE_null to IggyPlayerCallMethodRS and IggyPlayerCallFunctionRS
- bugfix: fix date handling in Wii U to avoid overflow
Release 1.1.18 - September 12, 2012
- change: (WiiU) Use SDK 2.07.03p1
- change: make some API functions const-correct
- enhancement: IggyAudioUseDefault to reduce #ifdefs when initializing Iggy
- enhancement: reduce stack usage in iggyperfmon tree recursion
- bugfix: certain textures weren't freed properly on flush
- bugfix: fix possible hang if calling SoundChannel.stop() on an already-stopped sound
Release 1.1.17 - August 27, 2012
- bugfix: fix a "hitArea" case where the original content could incorrectly still be hit tested (broken in 1.1.15 rewrite)
- bugfix: (AS3) fix crash when accessing root.currentLabels if root has no scenes
- bugfix: fix crash if a timeline object can't be created because a library import is missing
- bugfix: make thread-safe multiple simultaneous calls to IggyLibraryCreate
- bugfix: (GDraw) remove incorrect assert(t->gdraw_managed) from gdraw_shared.inl
- bugfix: (GDraw D3D9) explicitly set default values for D3DRS_BLENDOP, D3DRS_SEPARATEALPHABLENDENABLE
Release 1.1.16 - August 15, 2012
- bugfix: fix debug-build link error "unresolved g_fp_rrDisplayAssertion"
Release 1.1.15 - August 13, 2012
- bugfix: (AS3) rewrite "hitArea" versus "mouseEnabled" behavior to match Flash
- bugfix: (AS3) correctly initialize AS3 strings encoding frame labels/scene names to avoid crashes if used as dictionary property names
- bugfix: (AS3) fix bug where value of dropTarget wasn't correctly protected from garbage collection
- bugfix: disable tmMessage calls in IGGY_TELEMETRY_normal mode
- bugfix: fix rare bug in triangulator for vector shapes
- bugfix: (AS3) make Timer.start() work like Flash: expired Timer will run exactly once
- bugfix: (GDraw) prevent non-gdraw-managed textures from ever going onto LRU list
- bugfix: generate distinct error code if import library doesn't contain required symbol
- bugfix: iggyplayer prints error codes
Release 1.1.14 - July 26, 2012
- change: (WiiU) Use SDK 2.06
- bugfix: (AS3) make hit tests using "hitArea" respect "mouseEnabled"
- bugfix: fix bug with executing code in prototypes
- bugfix: (X360 GDraw) add additional disownshaders call
Release 1.1.13 - June 21, 2012
This release offers support for the "fl.transitions" package, and fixes a number of unrelated bugs.
- enhancement: Added support for fl.transitions, i.e. Flash's Tween and Transition classes
- enhancement: Added IggyTween class, a mostly-compatible but better-behaved version of Tween
- change: (WiiU) Use SDK 2.05
- bugfix: (graphics) prevent excessive JPEG artifacts in transparent bitmaps
- bugfix: (AS3) fix getDefinitionByName so it works with names of built-in classes
- bugfix: (AS3) change setters for many DisplayObject properties to change NaNs to 0s for greater Flash compatibility
- bugfix: (SWF parsing) fix incorrect handling when shape morph data in SWF is truncated
- bugfix: (gdraw, all platforms) fixed a bug where WrappedTextures could be incorrectly freed by the LRU cache manager
- change: rewrote garbage collector's old-heap management to improve allocation performance in bad cases
Release 1.1.12 - May 10, 2012
This fixes a few bugs in the Actionscript interface to vertical scrolling of TextFields.
- bugfix: fixed TextField.maxScrollV to more closely imitate Flash (previously allowed scrolling in empty space at bottom)
- bugfix: fixed TextField.bottomScrollV to account for scrolling
- bugfix: implemented IggySetDoubleClickTime (previously documented as IggyPlayerSetDoubleClickTime)
- bugfix: (ps3 gdraw) explicitly call SetTransferLocation so if game has set it it doesn't mess up Iggy
Release 1.1.11 - May 7, 2012
This is version 1.1.11 of Iggy. Because we massively refactored all the top-level API functions, there may be bugs in some of them that we missed in our testing. Let us know ASAP if anything is broken.
- enhancement: Iggy API functions check for incorrect multithreaded usage and trigger a warning callback (and returns an appropriate error code). This doesn't make it multithread safe, just makes it clear if you're using it simultaneously from multiple threads.
- change: The error code "IGGY_RESULT_Error_ReentrantFromCallback" has been renamed to "IGGY_RESULT_Error_ReentrantFromCallbackOrThread"
- enhancement: added IggyForceBitmapSmoothing() function to force bitmap smoothing regardless of Flash settings
- enhancement: added command-line option for iggyplayer to override the stage size
- bugfix: fix IggyPlayerSetStageSize
- bugfix: (d3d9 gdraw) explicitly clear depth bias so if game has set it it doesn't mess up Iggy
- bugfix: fix typo in win32_user_input_ime.cpp
Release 1.1.10 - April 26, 2012
This is version 1.1.10 of Iggy. It finishes fixing a bug introduced in 1.1.8, and fixes a few other bugs.
- bugfix: one more fix so text cursor is only displayed if textfield is both an input textfield and selectable=true
- bugfix: fix crash involving multiple Iggys and "...args"
- enhancement: added IGGY_CONFIGURE_BOOL_NeverDelayGotoProcessing to allow disabling deferred gotoAndPlay/Stop processing (but inconsistent with Flash)
Release 1.1.9 - April 24, 2012
This is version 1.1.9 of Iggy. It fixes a bug introduced in 1.1.8 and a few other bugs with textfields.
- bugfix: text cursor is only displayed if textfield is both an input textfield and selectable=true
- bugfix: cursor movement keys are ignored if input textfield is selectable=false (matches Flash behavior)
- bugfix: initial text cursor position after setting text is at beginning not end of text
- enhancement: added IGGY_VERSIONED_BEHAVIOR_textfield_autoscroll to revert following bugfix to previous behavior
- bugfix: automatic horizontal scrolling of single-line textfields works even when not focused
- bugfix: mouse selection of horizontally-scrolled text works correctly
Release 1.1.8 - April 20, 2012
This is version 1.1.8 of Iggy. It fixes a number of bugs.
- enhancement: added new flags events which report whether any event handlers were run
- bugfix: changed mousewheel event to only report true if an event handler was run
- bugfix: allow mouse click-to-focus on textfields with tabEnabled=false
- bugfix: allow mouse click-to-focus on non-input textfields
- bugfix: tabbing to a textfield selects all the text in the textfield
- bugfix: only show textfield selections in textfield with keyboard focus
- bugfix: respect TextField.maxChars
- bugfix: fix interaction between dragging mouse in textfield and AS3 changing selection
- bugfix: fix rare bug in left-aligned text due to uninitialized variable
- bugfix: fix bug with hitArea clip having alpha=0 always failing to hittest
- bugfix: fix bug where stencil bits for masks could get reused incorrectly
- bugfix: fix bug where textfield selection dragging could occur without mouse move events
Release 1.1.7 - March 19, 2012
This is version 1.1.7 of Iggy. It fixes a number of miscellaneous bugs.
- enhancement: Add more information to debug leak check output (changes API)
- bugfix: Fix memory leak when using AS3 Graphics class (leaked data was always freed when you Destroyed the Iggy, so this was only significant if you were constantly creating new graphics)
- bugfix: Add missing BitmapFilterQuality class used by Gradient filters
- bugfix: Fix broken cursor interaction & selection display for centered and right-aligned text
- bugfix: Fix slightly-incorrect selection display for left-aligned text
- bugfix: Fix incorrect check that prevented some Iggy get/set functions from working during callbacks
- bugfix: Fix bug in leak checker that caused crashes if freeing block from different context it was created in
- bugfix: (GDraw D3D9) Allocate zbuffer if rendering to rendertarget that's larger than passed-in target
Release 1.1.6 - February 29, 2012
This is version 1.1.6 of Iggy. It adds a new feature for 3d UI display and fixes several bugs with editable textfields.
- enhancement: Added IggyFunctions.setDepth and IggyPlayerSetFaux3DStage for adding simulated 3D depth to user interfaces
- enhancement: Added support for connecting Flash textfields to platform cut & paste API by means of IggyPlayerCopyUTF8, IggyPlayerPasteUTF8, and IggyPlayerCut
- bugfix: support insert mode in textfields
- bugfix: up/down arrow keys in single-line textfields now move left/right, like Windows
- bugfix: fix some bugs when cursor was after last character of single-line textfields (e.g. Home key didn't work)
- bugfix: cursor on empty line with centering/right-justify displays correctly
- bugfix: fix performance bug in textfield
- bugfix: fix bug where mouseEnable=false and mouseChildren=false caused an object to be entirely culled from mouse-testing
- bugfix: (GDraw) fix blend mode shaders applying an additive ColorTransform
Release 1.1.5 - February 8, 2012
This is version 1.1.5 of Iggy. It fixes a bug introduced in 1.1.4.
Note that if you're upgrading from version 1.1.1 or earlier, versions since 1.1.2 fix a bug in the handling of bilinear texture filtering for bitmaps, which may result in all of your previously-bilerped bitmaps becoming nearest-neighbor sampled. If you don't want your artists to have to fix the content, use IggyConfigureVersionedBehavior to re-enable the old behavior.
- bugfix: Fix bug when processing AS3 classes from indirectly-referenced library.
- enhancement: Change error when desroying a library with dependencies (IGGY_RESULT_Error_LibraryFileStillInUseCantBeClosed) to a warning (IGGY_RESULT_Warning_DependenciesStillExist), and still destroy the library. Attempting to use dependent files will cause a crash. (The old behavior was likely to lead to "leaking" the library handle and memory but no obvious failure if the return value wasn't checked.)
Release 1.1.4 - January 31, 2012
This is version 1.1.4 of Iggy. It adds a new performance monitoring library and a number of bugfixes.
- enhancement: Added Iggy Perfmon library for in-game performance monitoring of Iggy
- enhancement: Allow custom draw callback to have mask applied to it by providing scissor rect and stencil test information
- bugfix: Fix crash bug when drawing certain shapes scaled to 0 and certain morphing shapes
- bugfix: Fix bug when rendering bitmap fonts scaled to 0
- bugfix: TextField.restrict = null disables restriction instead of restricting to 'l','n', and 'u'
- bugfix: Allow negative leading in text fields
- bugfix: Fix bug where changing leading mid-line affected current line instead of next line
- bugfix: Match Flash behavior if leading is set multiple times on one line
- bugfix: (X360 GDraw) Initialize texture fence handle
Release 1.1.3 - January 12, 2012
This is version 1.1.3 of Iggy. It adds one minor feature.
- enhancement: IggyFunctions.setObjectAntialiasingEnable allows fine-grained control over antialiasing on a per-Shape basis
- bugfix: Render non-antialiased lines correctly
Release 1.1.2 - January 11, 2012
This is version 1.1.2 of Iggy. It adds support for IME in Windows, and includes a number of bugfixes.
Note that this version fixes a bug in the handling of bilinear texture filtering for bitmaps, which may result in all of your previously-bilerped bitmaps becoming nearest-neighbor sampled. If you don't want your artists to have to fix the content, use IggyConfigureVersionedBehavior to re-enable the old behavior.
Iggy
- enhancement: Windows IME support for East Asian languages (see tutorials)
- enhancement: Can attach an arbitrary "user data" pointer to each Iggy
- enhancement: Can specify filename and an internal name for each Iggy (will be used in Iggy Explorer etc.)
- enhancement: Added IGGY_VERSIONED_BEHAVIOR_bitmap_smoothing control to allow old bitmap smoothing behavior
- enhancement: (AS3) implement TextField.getLineMetrics, read-only implemenetation of TextLineMetrics class
- bugfix: fix bug where Bitmap.smoothing value was always passed to GDraw inverted (so bitmaps marked for not smoothing would get bilinear filtering, and bitmaps marked as smoothing would get nearest neighbor sampling)
- bugfix: fix bug where a textfield in a scrollRect could prevent the scrollRect clipping from working
- bugfix: (AS3) obey dragBounds parameter of TextField.startDrag
- bugfix: (AS3) don't throw exception when gotoAndPlay-ing a label that doesn't exist (Flash does some of the time, Iggy used to always)
- bugfix: (AS3) fix bug where <font face> in htmlText was sometimes ignored
- bugfix: (AS3) fix bug in Event.clone that should never have worked
- bugfix: (AS3) fix conversion of empty string to number which was incorrect in certain code paths (discovered by testing http://stackoverflow.com/a/1998224)
- bugfix: fix yet another bug where moving/animating MovieClips with special blends would lose the blend mode
- bugfix: avoid a potential crash in the font substitution path
- bugfix: fix rare crash when running a DisplayObject constructor during construction of another DisplayObject in certain circumstances
- bugfix: fix memory trash when parsing BinaryData objects defined in SWF file
- bugfix: when attaching to Iggy Explorer, any other Iggy attached to the explorer automatically detaches (second attempt)
GDraw
- enhancement: (WiiU) Added support for blend modes
- enhancement: Support rendering quads as well as triangles (good for text) -- some platforms had this in earlier builds, but wasn't in changelog
- optimization: (X360) Improved performance of swizzling on moderate-to-large textures, typical 3x (up to 12x on mid-sized)
- change: (X360) simplifications to blend mode logic
- bugfix: Use fewer depth values so linearly-spaced depth values are still unique in an FP depth buffer
- bugfix: (X360) change blend mode 1:1 render to point sample to avoid interpolator precision inaccuracy on non-pow-2 textures
- bugfix: (X360) allow specifying Iggy tile origin arbitrarily, rather than requiring it match Resolve alignment constraints
- bugfix: (X360) fix possible memory corruption that would only occur after running out of render target memory
- bugfix: (X360) fix clamping render area to tile bounds (avoids D3D debug error)
- bugfix: (PS3) expand render target borders to two pixels instead of one to avoid +-1 nondeterminism at edges
- bugfix: (PS3) clip render area to tile bounds, then add padding
- bugfix: (WiiU) fix coarse mipmaps (which are swizzled differently from fine ones)
- bugfix: (WiiU) fix broken anti-aliasing vertex shader
Release 1.1.1 - November 28, 2011
This is version 1.1.1 of Iggy. It fixes bugs in the last release.
The APIs for performing font replacement introduced in 1.1.0 were inadequate and have been enhanced.
- enhancement: Support for .ttc files using new ttc_index parameter in TrueType font installer
- enhancement: Can now specify that font replacements are bold and/or italic
- bugfix: Fix memory corruption when freeing vertex buffers used for font-replacement (vector path)
- bugfix: Fix text flow for empty characters like space character in truetype fonts
- bugfix: Fix rare bug in TrueType decoding of certain glyphs
- bugfix: Fix cursor height on empty line of textfield
- bugfix: Fix bugs in undo/redo buffers for textfields
- bugfix: Fix rare crash bug in handling of Event cloning
- bugfix: Fix bug in classes created for shared library SWFs when multiple IggyPlayers use the SWF
Release 1.1.0 - November 21, 2011
This is version 1.1.0 of Iggy. It adds a major new feature and new platforms.
All GDraws have been updated; make sure you copy the gdraw files.
Platforms
- WiiU beta
- iOS beta
- Direct3D 11
- bugfix: Direct3D 10 now has an example file
Features
- Support rendering text from TrueType font files
- Support rendering text from arbitrary vector shapes
- Support rendering text from bitmap fonts or custom rasterization
See Using Fonts in Iggy.
Iggy
- bugfix: (AS3) when calling defaultTextFormat, null TextFormat fields should have no effect on current format
- bugfix: (AS3) when calling setTextFormat, null TextFormat.align field should have no effect on current format
- bugfix: avoid crash when clearing Graphics object with empty graphics
- bugfix: fix bug where moving/animating MovieClips with special blends would lose the blend mode
- bugfix: when attaching to Iggy Explorer, any other Iggy attached to the explorer automatically detaches
- bugfix: avoid rare crash when user allocator returned insufficiently-aligned memory
- bugfix: don't crash if attached to an Iggy Explorer and there's an embedded image in a textfield
- enhancement: all symbols exported by statically-linked Iggy libs begin with "Iggy", "iggy_", "as3vm_", or "rr".
GDraw
- bugfix: fix shader bug when dynamically setting alpha of MovieClip with a special blend mode (e.g. Overlay)
- bugfix: (D3D10) correctly free all D3D objects on shutdown
- optimization: (D3D10) faster rectangle clears
- optimization: (PS3,Wii) slightly faster texture swizzling
- enhancement: (D3D9,D3D10,X360) fix as many warnings as possible since we don't control compiler settings
- enhancement: if user passes incorrectly-aligned resource blocks, align them
- enhancement: various cleanups to simplify having more platforms
Release 1.0.26 - October 27, 2011
This is version 1.0.26 of Iggy. It fixes a number of bugs and adds compatibility with the latest update of Telemetry.
- update: Recompile against latest Telemetry
- enhancement: Return error code when installing Telemetry so you can detect version mismatch
- change: (gdraw) Significant refactoring of shared file gdraw_shared.inl, affects all gdraw implementations
- bugfix: (crash) Avoid rare crash caused by library-defined static AS3 objects being allocated from wrong heap (introduced in 1.0.15)
- bugfix: (graphics) Fix bug where shape morphs didn't work as masks
- bugfix: (AS3) Avoid "undefined class/interface" errors caused if compiler generates "multinames" for inter-class references
- bugfix: (AS3) fix incorrectly handled case when gotoAndPlay/Stop was called with a label and a scene
- bugfix: (AS3) Zero previously uninitialized mousewheel-value in non-mousewheel MouseEvents
- bugfix: (API) Allow calling getters like ".parent" in ValuePaths in CallMethod/CallFunction
- bugfix: (API) Fix missing space in certain error messages in the AS3 loader
- bugfix: (iggyplayer) Reset D3D device if lost
- bugfix: (D3D10 gdraw) Fix scissor rect caching bug
Release 1.0.25 - October 17, 2011
This is version 1.0.25 of Iggy. It fixes a number of bugs and adds some minor features.
Textfields created from the timeline will appear in a slightly different location which should be more consistent with Flash. If this causes problems you can get the old behavior by calling IggyConfigureVersionedBehavior.
- enhancement: added IGGY_VERSIONED_BEHAVIOR_textfield_position to override improved textfield positioning described below
- enhancement: (iggyplayer) added -b, -q, and -Q flags for suppressing iggyplayer output
- enhancement: (Windows) specify path to the mp3 DLL
- enhancement: (gdraw) don't generate spurious Thrashing warning during shutdown
- enhancement: support "<sbr/>" htmlText tag generated by Flash CS5.5
- memory: (PS3 gdraw) Fix one 128KB block never being freed on shutdown (one time only)
- bugfix: fix bug with texture substitution requesting the same name repeatedly introduced in 1.0.18 (resulting in mutliple callbacks and leaked handles)
- bugfix: fix cases where classes in indirectly-referenced libraries used the wrong definition of the class
- bugfix: improve textfield positioning relative to Flash; use IggyConfigureVersionedBehavior to get the old behavior
- bugfix: fix case where textfield cursor was sometimes invisible when below a blank line
- bugfix: fix Timer.reset() to reset the time not just the timer count
- bugfix: fix bug in handling user-installed allocators that return misaligned pointers
- bugfix: fix rare crash when processing the AS3 exception on a failed property get
- bugfix: fix crash when doing debug leak-checking and using texture substitution
- bugfix: (X360) fix Xbox 360 Telemetry support
- bugfix: (X360 gdraw) on shutdown wait for GPU before returning so user won't overwrite vertices/textures (consistent with gdraw on other platforms)
- bugfix: (D3D10 gdraw) fix double-free of cache handle arrays on certain code paths
Release 1.0.24 - October 4, 2011
This is version 1.0.24 of Iggy. It is a minor update.
Note that this version does not support Telemetry on Xbox 360. It will be back in the next version.
- bugfix: (X360) Allow linking on Xbox 360 without Telemetry library
- bugfix: fix rare SWF-parsing problem with vacuous bitmap filltypes in Flash
- bugfix: fix bug with AS3 classes referenced by libraries not explicitly loaded by primary SWF
Release 1.0.23 - September 27, 2011
This is version 1.0.23 of Iggy. It fixes a number of bugs, especially compatibility with older hardware under D3D9.
All GDraws have been updated and need to be replaced.
Iggy
- enhancement: Additional Telemetry markup during IggyPlayerCreate, Initialize
- enhancement: Improve error messages reported during AS3 function verification
- enhancement: Allow <img> tag in htmlText to be xml-style <img/>
- bugfix: If hardware lacks non-pow2-mipmaps, don't request non-pow2-mipmaps from GDraw
- bugfix: IggySetTextfieldTranslationFunctionUTF16 wasn't linkable.
- bugfix: Detect overly-large AS3 functions at start of function processing to avoid a crash
- bugfix: Fix certain cases where vertex buffers for dynamically-created Graphics weren't freed properly
- bugfix: Allow user-allocator to return arbitrarily-aligned memory
- bugfix: Fix handling of per-iggy-file allocator when closing without leak debugging
GDraw
- enhancement: (3DS) texture substitution support
- enhancement: Change texture substitution logic to use an explicit flag to avoid bugs
- memory: Slightly reduce memory usage by not allocating minimal placeholder memory for substituted textures
- bugfix: (D3D9) Workaround an issue with GeForce 7000-series hardware
- bugfix: (D3D10) Include missing file
- bugfix: change rrAssert() to assert() to avoid link issues; use -DIGGY_DISABLE_GDRAW_ASSERT to disable
Examples
- bugfix: (X360) 360_basic_flash_playback demo doesn't use native resolution since it can't run at 1080p due to EDRAM
Release 1.0.22 - August 31, 2011
This is version 1.0.22 of Iggy. It fixes a number of bugs.
Iggy
- enhancement: Use IGGY_VERSIONED_BEHAVIOR_movieclip_gotoand to suppress the bugfixes below regarding gotoAndPlay/Stop (these bugfixes improve compatibility with Flash, but you might be relying on the old behavior)
- enhancement: support TextField.displayAsPassword
- enhancement: API functions that accept strings accept length=-1 to mean nul-termianted
- bugfix: reduce memory and improve performance by not creating an (unused) AS3 VM for IggyLibrarys
- bugfix: add missing computation of IGGY_FOCUS_CHANGE_TookFocus / IGGY_FOCUS_CHANGE_LostFocus
- bugfix: (AS3) Run correct framescript after certain gotoAndPlay/gotoAndStop calls
- bugfix: (AS3) Run missing framescripts after certain gotoAndPlay/gotoAndStop calls made during event processing
- bugfix: Fix initialization error for SWF with no AS3 code
- bugfix: Don't crash when computing TextField.text for text with an <img> tag
- bugfix: Correctly handle running out of memory when constructing initial AS3 floating point value during SetFloat/CallMethod APIs
- bugfix: Fix handling of scenes/currentLabels for movieclips defined in IggyLibrarys
- bugfix: Change IggyPlayerDrawTilesStart/End so that GDraw rendering state isn't set outside Iggy functions (for example, this fixes the tiled rendering example on the Xbox 360, which relies on being able to call D3D rendering functions between tiles)
GDraw
- bugfix: (3DS) Fix incorrect fence-value initialization
Release 1.0.21 - August 15, 2011
This is version 1.0.21 of Iggy. It is a minor fix for the Xbox 360.
- bugfix: (X360 gdraw) fix incorrect mipmap generation for certain non-power-of-two textures
Release 1.0.20 - August 13, 2011
This is version 1.0.20 of Iggy. It is a minor fix.
- bugfix: back out visible=false optimization from 1.0.19 that causes problems with invisible SimpleButtons and invisible hitAreas
- bugfix: (X360,PS3,Wii gdraw) fix premature allocation failures when using texture substitution which could lead to missing textures and trigger asserts
Release 1.0.19 - August 10, 2011
This is version 1.0.19 of Iggy. It fixes several major stability issues.
This version expands the function table provided by GDraw to Iggy defined in gdraw.h. Thus you must update both the per-platform GDraw source and gdraw.h to use the new Iggy library.
Iggy
- optimization: sound mixer pauses if no open Iggy files
- optimization: faster processing of objects with visible=false in IggyPlayerDraw
- bugfix: (AS3) fix occasional crash in garbage collector caused by allocating strings longer than 124 characters
- bugfix: fix crash when out-of-memory while building shape defined in library
- bugfix: fix link problem with Bink 1.99h and later
- bugfix: (AS3) Function.apply accepts 'null' as argument array
GDraw
- bugfix: (X360) fix problem if defragment triggered when allocating font cache
- bugfix: (X360, PS3, Wii) fix texture substitution block-leak
Release 1.0.18 - July 29, 2011
This is version 1.0.18 of Iggy. It fixes several bugs.
Iggy
- bugfix: fix hang involving texture subsitutions exposed in 1.0.17
- bugfix: other fixes to texture substitution management/tracking
- bugfix: fix bug with AS3 timer events triggering very fast if frame rate is lower than SWF frame rate
Release 1.0.17 - July 27, 2011
This is version 1.0.17 of Iggy. This release is a bug-fixing release.
This version fixes a major bug in console GDraws, and a rare bug in all GDraws. Please make sure you update your GDraw.
Iggy
- enhancement: added support for TextField.restrict
- bugfix: IggyPlayerFlushAll preserves mapping from Bitmaps to texture substitutions but forces the textures to free
- bugfix: IggyPlayerDestroy destroys mapping from Bitmaps to texture substitutions but leaves the texture alone if there are outstanding references
- bugfix: other fixes to texture substitution management/tracking
- bugfix: "change" event generated when editing textfield
- bugfix: improve handling of textfield cursor display in presence of empty lines
- bugfix: improve handling of textfield in single-line mode
- bugfix: fix incorrect textfield cursor movement with keyboard up/down
- bugfix: keyboard events for untranslatable keycodes get charcode=keycode
- bugfix: (AS3) Capabilities.version etc. have "WII" and "N3DS" cases
- bugfix: (Win) fix compile error in win32_custom_graphics.cpp
GDraw
- enhancement: (Wii) undocumented "slow sync mode" for testing fence integration problems, interface will change in later versions
- enhancement: remove dependency on assert.h
- enhancement: (D3D9/X360) suppress warnings when built at warning level 4
- bugfix: (Wii/PS3/X360) fix assert/WaitOnFence problem with freed resources under load
- bugfix: (Wii) fix logic error in simulating 32-bit fence from 16-bit fence
- bugfix: (X360) fix possible assert from using logic that assumes fences increase
- bugfix: fix GDraw error in handling rare case when Iggy created the same resource twice while drawing one object
Release 1.0.16 - July 18, 2011
This is version 1.0.16 of Iggy. This release is a bug-fixing release.
Iggy
- enhancement: added support for letter spacing (e.g. TextFormat.letterSpacing)
- bugfix: remove CallFunction/CallMethod gotoAndPlay changes from 1.0.15, to be restored and fixed at a later date
- bugfix: added missing handlers for out-of-memory conditions in some API functions
- bugfix: fix crash bug in leak-checker in out-of-memory condition
- bugfix: fix memory leak in triangulator for empty shapes
- bugfix: fix potential memory leak when calling IggyPlayerFlushAll()
GDraw
- bugfix: (Wii,PS3,X360) fixed memory management error (probably harmless) with wrapped textures
Release 1.0.15 - July 14, 2011
This is version 1.0.15 of Iggy. This release is primarily a bug-fixing release.
Iggy
- enhancement: (AS3) new APIs for controlling garbage collector memory usage and performance: IggyPlayerConfigureGCBehavior and IggyPlayerGCSizes.
- enhancement: (AS3) flush movieclip seek queue after CallFunctionRS, CallMethodRS so calls to gotoAndPlay/Stop behave more usefully
- enhancement: Add IggyLibraryFlushAll function to allow flushing libraries as well as players
- debugging: (X360) Iggy Explorer runtime resolves numeric IPs manually so it works regardless of devkit settings
- debugging: fix IggyDebugGetMemoryUseInfo to track AS3 VM data structures, vtables, etc.
- bugfix: fix indirect library use (IggyPlayer uses a library which uses a library)
- bugfix: (AS3) MovieClip.currentLabel should return a string, not a FrameLabel
- bugfix: (X360) sample code used wrong device flags so could block during drawprim calls
- bugfix: reference counts of references to libraries weren't updated thread-safe
- bugfix: alter SWF parsing for font reference with 0 characters
- bugfix: fix potential crash or memory leak if GDraw vertex buffer allocation fails
- bugfix: fix potential (never seen) GC bug involving return value from CallFunction/CallMethod
- bugfix: fix incorrect handling of empty textfield lines introduced in 1.0.2
- bugfix: fix incorrect logic in IggySetGDraw if GDraw is shutdown and recreated at same address
GDraw
- bugfix: (X360) textures with mipmaps would get corrupt mipmaps when defragmented
- bugfix: (Wii,PS3,X360) fix crash bug if handle limit was reached
- bugfix: (X360) arbirary empty clip region is forced to API-safe empty region
Release 1.0.14 - June 22, 2011
This is version 1.0.14 of Iggy. This is a bugfix release.
Iggy
- enhancement: (AS3) added Sprite.startDrag/stopDrag/dropTarget
- enhancement: added IggySetTextCursorPixelWidth to set size of text cursor
- enhancement: report TooManyOpenLibraries if trying to open too many IggyLibrarys at once
- fix: added missing Windows examples to Wii and 3DS sdks
- documentation: improve documentation of IggySetAS3ExternalFunctionCallback functions
- bugfix: fix rendering of cursor in TextField/TextArea
- bugfix: fix leak of IggyLibrary handles
- bugfix: (AS3) make some effects of gotoAndPlay/gotoAndStop immediately visible instead of queued to match Flash Player
- bugfix: (AS3) setting x/y field of DisplayObject suppresses timeline updating
GDraw
- bugfix: (Wii) set default alpha-compare state
Release 1.0.13 - June 10, 2011
This is version 1.0.13 of Iggy. This is a bugfix release.
Version 1.0.12 broke the behavior of MOUSE_OVER and MOUSE_OUT messages. This behavior is fixed in 1.0.13.
- bugfix: (AS3) fixed MOUSE_OVER/MOUSE_OUT logic to match 1.0.11 and earlier
- bugfix: (AS3) change ROLL_OVER/ROLL_OUT logic to not generate events when target=stage
Release 1.0.12 - June 9, 2011
This is version 1.0.12 of Iggy. This is a bugfix release.
Version 1.0.11 incorrectly disabled all support for filters and blend modes. All developers with 1.0.11 should upgrade to Iggy 1.0.12.
- bugfix: re-enable filters and blend modes on platforms that support them
- bugfix: (AS3) setting DisplayObject.visible shouldn't prevent timeline animation from working
- bugfix: (AS3) gotoAndStop() with an undefined label still stops the movie (similarly gotoAndPlay)
- bugfix: (AS3) revised ROLL_OVER/ROLL_OUT logic to better match Flash Player in presence of tree mutation
- enhancement: (3DS beta) added sound support to 3DS sample code
Release 1.0.11 June 7, 2011
This is version 1.0.11 of Iggy.
This is a maintainence release. All platforms have new GDraws that fix a bug with additive constant color, so make sure update/merge GDraw.
Iggy
- enhancement: Only warn once about missing "_sans" font
- bugfix: avoid crash in certain rare cases when creating movieclip trees defined by timeline
- bugfix: jpeg-compressed SWF images have premultiplied alpha
GDraw
- enhancement: (Wii) GDraw includes the gd code used to generate the precompiled TEV stages
- bugfix: pixel shader correctly saturates constant color addition to non-opaque pixels
- bugfix: (Wii) support adding negative constant colors
- bugfix: (3ds beta) allow setting resource texture size to 0
- bugfix: (X360) fix bug in WrappedTextureDestroy() that broke future texture allocations
Miles MP3 decoder
- bugfix: rework the Miles MP3 interface to avoid conflicts when using both Iggy and the Miles Sound System and both are using the mp3 decoder. Avoiding this conflict will require getting a new Miles release as well, but it is not necessary unless you use MP3s in both Iggy and MSS in the same game.
Release 1.0.10 May 30, 2011
This is version 1.0.10 of Iggy. This is a bugfix release.
Iggy
- bugfix: (Wii) fix memory corruption when initializing audio subsystem introduced in 1.0.9
Release 1.0.9 May 28, 2011
This is version 1.0.9 of Iggy. This is a maintainence release.
Iggy
- enhancement: (3ds beta) sound is supported
- enhancement: IGGY_CONFIGURE_BOOL_IgnoreFlashVersion allows loading Flash 10 files if they don't use Flash 10 features
- enhancement: added API to alter the garbage collector's internal sizes (not very useful yet, but will be)
- optimization: don't invoke garbage collector automatically every frame
- optimization: (3ds beta) prefetching
- change: renamed a few more globals that lacked iggy_, swf_, or as3vm_ prefix
- change: remove documentation from iggy.h so header file is cleaner
- bugfix: an AS3-added movieclip with a masked-object topmost could cause the mask to affect other objects
- bugfix: build against February 2011 XDK to avoid XAudio2 API mismatch
- bugfix: enlarge mixer thread-stack to make room for mp3 decoding
GDraw
- bugfix: (3ds beta) fixed scissor-rect logic error which occurred when using a tile smaller than the renderbuffer
Release 1.0.8 May 5, 2011
This is version 1.0.8 of Iggy.
This release of Iggy fixes a number of bugs and adds a number of small new features:
- improvements to translation callbacks
- custom Iggy features for suppressing hit-testing on objects
- implementation of ActionScript 3 access to filter effects
Full change log for this version:
- enhancement: added IggySetTextfieldTranslationFunctionUTF16 to set a callback called whenever textfield text is set
- enhancement: added UTF8 translation callbacks to reduce the likelihood you have to allocate strings
- enhancement: translation callbacks include a deallocation function if you need to allocate strings
- enhancement: special IggyFunctions support to allow you to prevent objects from participating in hit-testing
- enhancement: added support for AS3 BitmapFilter classes and DisplayObject.filters (but not ConvolutionFilter or DisplacementMapFilter)
- bugfix: fix crash when using per-IggyPlayer/IggyLibrary allocator
- bugfix: win32_cropped.cpp example is actually in all rars now
- bugfix: allow setting DisplayObject width/height again after setting to 0
- bugfix: fix bug in setting DisplayObject.width with rotated and non-uniformly scaled object
- bugfix: attempt to obey HTML flag in edittext tag in SWF file, but never seen a file where it's false
Release 1.0.7 April 26, 2011
This is version 1.0.7 of Iggy.
This is a maintenance release of Iggy which fixes a number of bugs.
Iggy
- enhancement: input text fields autoscroll horizontally as user types/navigates
- optimization: don't use mutex for internal IggyPlayer allocator (still used for IggyLibrary)
- optimization: slightly improve hit-testing performance
- bugfix: return correct error code from IggyPlayerCreate functions
- bugfix: fix bug in swapChildren when children are non-adjacent
- bugfix: fix swapChildren interaction with timeline object creation/removal
- bugfix: named objects in timeline don't lose their name in parent if moved/removed by AS3 code
- bugfix: fix incorrect hit-testing results for masks
- bugfix: fix incorrect handling of bitmap size in bitmap/texture substitution path
- bugfix: fix masking by certain type of empty mask (behaves like no masking)
- bugfix: fix iggyplayer.exe crash on exit
GDraw
- bugfix: (X360,PS3) Fix scissor-rect state update logic
Release 1.0.6 April 17, 2011
This is version 1.0.6 of Iggy.
This release fixes two bugs in version 1.0.5.
- bugfix: fix crash bug when using Graphics introduced in 1.0.5
- bugfix: textfields added from timeline obey positioning info from symbol even when autoSize is set
Release 1.0.5 April 15, 2011
This is version 1.0.5 of Iggy.
This is a maintenance release of Iggy which fixes several major bugs.
Iggy
- enhancement: new IggyDebugGetMemoryUseInfo API for finding out how Iggy memory allocations are being used
- memory: major reductions in per-Iggy overhead and fixed overhead
- bugfix: textfields added from timeline obey positioning info from symbol
- bugfix: fix glitch in first frame of wide lines with gradient/bitmap fills
- bugfix: fix SimpleButtons appearing as "null"
- bugfix: fix rare memory allocation corruption (caused by short strings in textfield)
GDraw
- bugfix: (Wii) Allocation for sound thread stack goes through Iggy allocation callback
- bugfix: (Wii) Fix scissor-rect state update logic
- bugfix: (Wii) Fix z-buffer clear to clear whole frame
Release 1.0.4 April 10, 2011
This is version 1.0.4, the first alpha release of Iggy for Nintendo 3DS.
Release 1.0.3 March 25, 2011
This is the 1.0.3 release of Iggy.
This is a minor release with a few simple fixes to the previous release.
- bugfix: fix bitmap caching of fonts accessed through import-for-runtime-sharing
- bugfix: adjust text positioning/padding of TextFields more, especially if created from AS3 (fixes Adobe components)
- bugfix: fix bug where IggyPlayerCallMethodRS with an invalid path would make Iggy inoperable
Release 1.0.2 March 24, 2011
This is the 1.0.2 release of Iggy.
This is a maintenance release of Iggy which fixes a number of bugs.
Iggy
- enhancement: win32_cropped.cpp demo to illustrate how to crop to match resolution
- enhancement: win32_callbacks.c demo tests all the basic possible callbacks
- enhancement: added Telemetry plots
- memory: repack several data structures
- bugfix: fix vertical text positioning in TextField to more accurately match Flash
- bugfix: fix behavior of paragraph tag in TextField.htmlText
- bugfix: fix value of ".target" in re-dispatched events (bug caused scrollPane to scroll in wrong direction)
- bugfix: don't allow selecting non-editable textfields
- bugfix: default text background is opaque white
- bugfix: avoid crash if setting or appending "" to a TextField
- bugfix: rewrite of seek-processing to get timing of events/framescripts more accurate to Flash
- bugfix: don't generate spurious MOUSE_MOVE events
- bugfix: fix telemetry processing in IggyPlayer
- bugfix: fix a bug involving ColorTransform concatenations in certain cases
- bugfix: avoid debug-d3d errors (out-of-range scissor rect)
- bugfix: fix rare audio processing bug involving audio envelope (fixes audio in weebl's Badger movie)
GDraw
- bugfix: (d3d9) don't reset rendertarget during draw callbacks
- bugfix: (d3d9) don't check requirements flags for main framebuffer
- bugfix: (d3d9) always update scissor state if scissor is active
Release 1.0.1 February 22, 2011
This is the 1.0.1 release of Iggy.
This is a maintenance release of Iggy. The bugfixes are really only necessary if you're using the referenced features; the gotoAndPlay behavior requires specific behavior to trigger and even if triggered might be too subtle to notice.
Iggy
- enhancement: added translation callbacks example: bare_examples/win32_translate.c
- bugfix: fix bug introduced in 1.0.0 involving <img> in htmlText
- bugfix: fix odd vanishing objects after gotoAndPlay (happened only if objects on the timeline were deleted between that frame and the next frame, and only affected those objects)
- bugfix: make TextField.textHeight report numbers more consistent with Adobe (noticeably affects Adobe's component library)
- bugfix: multiple bugfixes to animations of SimpleButton (button object in Flash)
- bugfix: bugfix for hit-testing of SimpleButton
Release 1.0.0 February 15, 2011
This is the 1.0.0 release of Iggy.
The mp3 decoder has been moved to a separate library which you must download separately. If you need it and don't have it, send email.
The changes from the last version are primarily bug fixes. The full list of changes is:
Iggy
- enhancement: New AS3-accessible IggyFunctions.inIggy to easily tell if you're running in Iggy (easier than using Capabilities.manufacturer or making your game set a variable)
- enhancement: New IGGY_CONFIGURE_BOOL_StartupExceptionsAreWarnings that allows Iggy to load a SWF even if it throws an AS3 exception during startup.
- enhancement: Publically-visible API for checking for leaks inside Iggy (but with false-positives)
- memory: saved some memory on the storage of AS3 string constants
- memory: free the naive actionscript bytecode after we finish processing it
- memory: allocate triangulator temporary data from library's heap instead of player's
- bugfix: (AS3) Fix occasional compiler-dependent VerificationError when using libraries (involving libraries with multiple DoABC tags)
- bugfix: (AS3) Fix occasional compiler-dependent VerificationError "Slot trait redefined error" (involving compiler generating slot_ids)
- bugfix: (AS3) Fix potential (never seen) VerificationError (change handling of disp_id to be paranoid, given previous bug)
- bugfix: improve TextField text layout to better match Flash Player in the vertical direction
- bugfix: (Wii) avoid crash when using custom allocator (sometimes Iggy dereferenced garbage)
- bugfix: fix a common memory leak (dictionary was allocated from wrong heap)
- bugfix: fix a rare memory leak with using .graphics on a new Shape()
- bugfix: fix an issue where event listeners added to incompletely-constructed objects were deleted when the object finished constructing
- bugfix: (AS3) avoid a possible crash (never observed) if you tried to assign a new name to an object that had been named explicitly by the timeline
- bugfix: (unsupported) fixed a minor memory leak in files that use ActionScript 2 (we don't support AS2, but we unofficially try to play everything in such files except the AS2 code)
GDraw
- bugfix: (Wii) don't use GX_CA_ONE, which is a fake back-compatibility constant
Beta versions
Beta Release 0.9.9 February 02, 2011
This is the sixth beta release of Iggy.
This release fixes many bugs, and adds an implementation of GDraw for D3D10.
Please update to the latest GDraw versions; many huge changes were made, including changes to the API (hopefully for the last time). GDraw has been refactored for clarity and some small changes were made to the API. Many changes were made to support tiled rendering and rendering to MSAA rendertargets. See the Rendertargets; Tiles; and MSAA in Iggy for more info.
Full list:
Documentation
- enhancement: expanded documentation of some Iggy functions
- enhancement: added docs for all user-facing GDraw functions
- enhancement: added discussions of rendertargets, antialiasing, and related topics
- enhancement: added a brief FAQ
Iggy
- enhancement: (Iggy Player) added --msaa and --tile arguments for testing using msaa and tiled rendering
- enhancement: generate a new warning, IGGY_RESULT_Warning_NoActionScript3, if a non-library SWF file has no AS3 code in it, to help catch if publish settings are set to ActionScript 2
- enhancement: now optional to set "actual_size" return value from custom allocators
- enhancement: support for tabs ('\t') in TextField, plus tabStops field of TextFormat
- enhancement: add IGGY_ANTIALIASING_PrettyGood which doesn't require a rendertarget (hence looks same on all platforms)
- optimization: rendering performance improvement (Iggy-side batch setup, primarily for Wii)
- optimization: slightly optimize garbage collector (prefetch improvement)
- optimization: small improvements in font rendering performance
- bugfix: (AS3) arrays indexed by string encodings of integers access same slots as arrays indexed by integers
- bugfix: (AS3) bitmaps were getting mouse events as if they were InteractiveObjects, and thus 'target' was wrong
- bugfix: fix possible crash after IggyDestroy due to state shared incorrectly between multiple Iggys
- bugfix: fix decoding lossless bitmaps with intermediate alpha values (SWF file stores with premultiplied alpha)
- bugfix: don't crash if GDraw rendertarget allocation fails
- bugfix: avoid crash/bad data after flushing vertex buffers
- bugfix: handle setting tab indices from the timeline (not just AS3)
- bugfix: avoid RGB saturation if alpha multiplier is >1 (clamp multiplicative alpha value to 1 early in the pipeline)
- bugfix: avoid explosion of left-edge of text box in cases where autoSize=right/center with wordWrap=false, especially with text alignment=right/center
- bugfix: (Wii) fix masking bugs (bug in stencil-simulation-with-alpha-test, bounding box error on stencil-simulation, obey stencil bit count returned by GDrawInfo)
- bugfix: fix IggyValueGetStringUTF16RS to correctly report full string length when passed NULL
- bugfix: fix missing spaces in some verification errors
GDraw
- cleanup: [changes user-facing API] rename SetResourceLimits to SetResourceMemory on X360,Wii
- cleanup: (X360) [changes user-facing API] require non-null pointers for SetResourceMemory (remove support for using XPhysicalAlloc)
- new: D3D10 GDraw (10% faster than D3D9 on one test on one video card, but it may be slower in other cases)
- enhancement: add explicit format parameter to MakeTextureBegin
- enhancement: add explicit format parameter to MakeVertexBufferBegin
- enhancement: pass stats parameter to MakeTextureEnd, MakeVertexBufferEnd
- optimization: (D3D9) custom software mipmap generator
- optimization: (X360) use custom swizzler instead of X function (13x faster on large textures)
- optimization: for platforms with shaders, test alpha in shader instead of using fixed-function alpha-test
- optimization: reduce blur padding from 2 pixels to 1 pixel
- cleanup: MakeTexture/VertexBuffer return result at End, not Begin
- cleanup: renamed of functions with Begin/End for consistency
- cleanup: reorganize files to make them easier to modify
- cleanup: removed unused parameters for texture creation
- cleanup: renamed structure fields for consistency and clarity
- cleanup: renamed enum types and names for consistency
- bugfix: (consoles) fix handling of vertex buffer callbacks for vb's in use by GPU
- bugfix: always flush on SetResourceMemory
- bugfix: free dead resources before freeing handle cache
- bugfix: fix blur texture-sample clamping logic
- bugfix: many cross-platform fixes for tiled rendering
- bugfix: many cross-platform fixes and additions for rendering to MSAA rendertargets
- bugfix: (X360) when freeing vertex buffer, clear d3d's index pointer SetIndices
- bugfix: (X360) multiple saveunders in the same place DO need to clear even if they don't need to resave-under
- bugfix: (X360) don't crash if we can't allocate a new rendertarget
- bugfix: (X360) fix special blend rectangles
Release 0.9.8 January 9, 2011
This is the first alpha release of Wii Iggy.
There is no 0.9.8 release on other platforms.
Beta Release 0.9.7 December 17, 2010
This is the fifth beta release of Iggy.
GDraw has had some minor changes made on all platforms in anticipation of future support for new platforms. Make sure to grab the new GDraw versions.
Iggy Player
- enhancement: specify libraries on the command-line using "-l"
Iggy
- enhancement: approximately 70 error messages providing more info when ActionScript runtime exception are thrown (reported as part of IGGY_RESULT_Warning_UncaughtActionscriptException)
- enhancement (for consoles): all public symbols (except API) renamed to start with "iggy_" or "as3vm_" or "rr_"
- bugfix: fix certain text scaling cases
- bugfix: improve behavior on TextField with wordWrap=false,autoSize=right/center; document that we still deviate from Flash
- bugfix: avoid enormous slowdown when rendering fonts defined in libraries
- bugfix: if class is defined in both library and main SWF, always use first library definition
- bugfix: call class constructors for classes defined in libraries and instantiated from timeline
- bugfix: make user-defined global public AS3 functions accessible
GDraw API
- enhancement: [changes API] added a few new query values to GDrawInfo to let Iggy know about GDraw implementations with more restrictions than PC/PS3/360
Beta Release 0.9.6 December 02, 2010
This is the fourth beta release of Iggy.
Note that the IggyValueGet functions have all had an "RS" added at the end of the name, to reflect the fact that they can now run code if you try to get a property that is defined as a "getter".
Note that we changed the semantics of one function in GDraw, so if you are updating a previous beta release, make sure you integrate the updated GDraw source file.
Iggy Tools
Iggy Player
- enhancement: Display amount of resources actually being used by GDraw
- enhancement: Display message if ExternalFunction.call is invoked
- bugfix: Resize back buffer on window maximize
Iggy Explorer
- enhancement: Iggy handles pause/resume from Iggy Explorer specially, so game's Pause/Play can't interfere
Iggy
Iggy API
- enhancement: add IggyPlayerCallMethodRS which can call arbitrary method of arbitrary object identified by an IggyValuePath
- enhancement: IggyPlayerCallFunctionRS can use IggyValuePaths to specify arbitrary function arguments
- enhancement: [changes API] IggyValueSet/Get functions can call AS3 getters/setters (all IggyValueGet functions now end in 'RS')
- enhancement: can store user-data pointer on AS3 DisplayObjects, and DisplayObjects as arguments to ExternalInterface.call will report those pointers
- enhancement: IggyValueGetStringUTF8 and IggyValueGetStringUTF16 can query for length of string
- enhancement: Check for NULL parents in IggyValuePaths
- enhancement: Better error messages for IggyValuePath operations
- enhancement: Iggy's estimate of drawn frame rate in seconds_per_drawn_frame field in return value of IggyPlayerProperties
- bugfix: Iggy checks for reentrancy and returns error (you can get/set from callbacks, but not getter/setters)
- bugfix: IggyValuePathRoot checks for AS2 files (Iggy doesn't officially support AS2, but we can load and play graphics from AS2 files)
- bugfix: IggyPlayerDestroy and IggyPlayerFlushAll flush bitmap-texture substitutions
- bugfix: Fix bad errorcode returned from IggyPlayerCallFunctionRS
- bugfix: Fix memory overwrite due to off-by-one allocation in certain cases of UTF8-to-UTF16 conversion
Iggy ActionScript3
- enhancement: add htmlText <img> tag support including custom voffset/hoffset (but not yet align=left, align=right); does not support URLs, only bitmaps, in a limited way
- enhancement: add htmlText <textformat> tag support
- enhancement: implement AS3's arbitrary left-to-right right-to-left audio mixing
- optimization: minor load-time speedup from using class hash table
- bugfix: allow same class to be defined in a library and the main swf
- bugfix: fix potential crash when supplying htmlText with bad html
- bugfix: handle certain kinds of AS3 getter/setter pairs generated by mxmlc
- bugfix: fix regression: some known html tags were being ignored
- bugfix: avoid crash for Bitmaps with no BitmapData
- bugfix: avoid crash when destroying incomplete SimpleButtons
- bugfix: set x87 control word to double-precision while doing AS3 processing
- bugfix: fix some time/date handling functions for AS3 Date object
- bugfix: determine time-zone in a thread-safe way using per-platform functions instead of unsafe C stdlib
- bugfix: discard alpha component of TextField.backgroundColor/borderColor before storing it
- bugfix: fix garbage collection bug with event listeners
- bugfix: fix garbage collection of classes defined in libraries
- bugfix: fix garbage collection rootstack leak if addChildAt throws an exception
- bugfix: fix as3-stack overwrite when building as3-stack frame for as3-function with only 'return'
- bugfix: avoid garbage-collection issues when initializing a SWF with a sufficiently-large set of classes
Iggy Graphics
- enhancement: bitmap-cached fonts are less fuzzy but use more texels
- enhancement: can specify a pixel-shape aspect ratio to get consistently-shaped lines
- optimization: faster wide-line rendering
- optimization: use masks and clip rect info when "frustum" culling
- optimization: faster mapping from font name as string to actual font
- bugfix/optimization: faster/better rendering of bitmaps with alpha
- bugfix: support rotated scrollRect (we use scissor if non-rotated, scissor+stencil if rotated)
- bugfix: proper antialiasing if main display scale is non-uniform
- bugfix: scale9grid with bitmaps has all-new logic that actually works in all cases
- bugfix: don't apply scale9grid to nested sprites (matches Flash Player)
- bugfix: text characters are clipped to box, instead of culled (culling incorrectly makes them disappear entirely)
- bugfix: fix regression: rounded joins for wide lines were broken most of the time
- bugfix: fix unlikely leak in non-antialiasing path
- bugfix: fix regression: crash in morphed shapes
- bugfix: avoid crash when textfield defined in library is hardcoded to use a font from the same library
- bugfix: don't warn about a missing font if there's a matching font even if the matching font has 0 glyphs
Iggy other
- optimization: internal allocator speedup
- bugfix: properly hit-test against curves
GDraw
D3D GDraw
- enhancement: SetResourceLimits can now be called after creating GDraw (but you have to flush all Iggys first)
- optimization: Don't clear whole rendertarget, only region to be used
360 GDraw
- enhancement: Can pass in a block of memory which will be used for all resource allocation, instead of GDraw making three XPhysicalAllocs for its three regions
general GDraw
- enhancement: [changes GDraw API] existing worldspace xform is repurposed to apply only to things drawn directly in worldspace
- enhancement: Call back to Iggy with warnings and let Iggy pass them to client
- enhancement: Warn when trying to create oversized textures on consoles
- enhancement: Warn when out of memory and thrashing
- optimization: Defragmenter for consoles discards older data instead of getting stuck moving it around over and over even though it's never used
Beta Release 0.9.5 November 12, 2010
This is the third beta release of Iggy. This is a minor update that fixes several crash bugs in version 0.9.4.
Iggy
- bugfix: Fix potential crash when handling mouseOver/mouseOut messages that add/remove objects from the stage
- bugfix: Fix crash when deleting Graphics objects introduced by new caching system in 0.9.4
GDraw
- change: Use installed Iggy allocator (via IggyGDrawMalloc), not malloc, to allocate handles etc.
Beta Release 0.9.4 November 11, 2010
This is the second beta release of Iggy.
It includes the following changes from the previous release:
Noteworthy changes
- Added commandline Windows Iggy player application for all platforms
- Added system for replacing bitmaps with app-controlled textures
- Added Windows tutorial demonstrating the new bitmap-substitution system and the old arbitrary-rendering callback system
- Many optimizations
Full change list
Additions
- Added commandline Windows Iggy player application for all platforms
Iggy
- enhancement: bitmap/texture substitution with IggySetTextureSubstitutionCallbacks
- enhancement: included FLA files for examples have been converted to CS3-version FLA instead of CS4-version
- bugfix: [affects GDraw] fix how we cache variants of the same object multiple times, particularly likely to affect scale9grid cases
- bugfix: generate warning instead of crashing when an imported object is missing
- bugfix: added missing IggyFunctions.as placeholder file for using IggySetRuntimeTranslationFunction
- optimization: strokepath (wide lines) rendered directly from temporary memory to avoid allocations entirely
- optimization: various optimizations to wide line rendering: vertex optimizations, faster rounded joins/caps (esp on Power PC)
- optimization: faster zlib decoder (affects load time, decode of lossless images)
- optimization: other loader speed-ups (bit buffer decoding/refilling, faster min/max, avoid LHS)
- optimization: other optimizations to lossless-encoded image decoding
- optimization: optimized pixel-format conversions (including alpha-premultiply) for image decoders
- optimization: prevent compiler from inlining in bad places
- optimization: change incremental garbage collector for better convergence under extreme conditions (also affects memory usage)
GDraw
- bugfix: GDraw generates a callback to Iggy when a vertex buffer is flushed from the cache so that Iggy can manage its variant-of-same-shape caching efficiently.
- change: [affects user-facing GDraw API] GDraw custom draw begin/end functions (which are platform-specific) now include platform name
- enhancement: [affects GDraw API] GDraw side of texture substitution system
Beta Release 0.9.3 November 1, 2010
This is the first beta release of Iggy.
It includes the following changes from the previous release:
Iggy Explorer
- enhancement: new application for investigating resource usage, see docs
Iggy
- enhancement: PS3 version (built with gcc, our SNC builds are slightly slower)
- enhancement: Call from Iggy into AS3 with IggyPlayerCallFunctionRS()
- enhancement: Two different localization APIs, IggySetLoadtimeTranslationFunction() and IggySetRuntimeTranslationFunction()
- enhancement: API to get bounding boxes of all focusable objects and set new focus, for implementing appside-cursor movement (example TK)
- enhancement: Allow AS3 "render" event even on first frame (inconsistent with Flash Player, but looks better with things that need it)
- enhancement: [affects existing API] Clean up error handling (error string on Create functions, good general error API)
- enhancement: support for AS3 Sprite.hitArea API
- memory: [affects GDraw API] Indices are 16-bit instead of 32-bit
- memory: strokepath produces meshes in chunks, avoiding realloc
- optimization: optimize zlib decoder used during load (15-50% faster load on x86), lossless-image decode
- optimization: optimize jpeg decoder
- optimization: various optimizations to main rendering path, fontcache
- optimization: better panic mode for fontcache
- optimization: use SIMD in audio mixer on consoles
- optimization: other general audio mixing optimizations
- optimization: bounding box merge uses fsel for min/max on consoles
- optimization: performance improvements to bitmap font rasterizer and uploading to GDraw
- bugfix: Fix the logic for bitmap font caching to be based on the actual character size
- bugfix: Fix case of Placeobject3 swf tag that is incorrectly specified in the spec
- bugfix: Much more solid job of detecting and reporting use of unsupported features and corrupt files
- bugfix: Don't let bitmapped characters be scaled slightly smaller (looks totally broken), only allow scaling larger
- bugfix: Flush actually flushes all textures & vertex buffers
- bugfix: Nested filters compute correct bounding boxes, so don't get clipped randomly
- bugfix: Do optimization of AS3 multinames after all AS3 code is loaded (for libraries and mxmlc output)
- bugfix: Fix stroke bug that turned curves starting at same y as previous vertex into straight segments
- bugfix: Fix hit-test logic for Shape classes created dynamically
- bugfix: More careful referencing against Flash Player of hit-test logic of various combinations of InteractiveObject.mouseEnable and DisplayObjectContainer.mouseChildren
- bugfix: Fix crash in odd combination of mouseEnable and mouseChildren
- bugfix: Implement IggyLibraryDestroy
GDraw
- change: [affects GDraw API] GDraw explicitly knows about the texture used for antialiasing
- memory: flag when Iggy knows it's drawing 2nd batch with same state as previous to reduce command buffer usage (also improves performance in Windows D3D, miniscule improvement on X360/PS3)
- memory: [affects GDraw API] Indices are 16-bit instead of 32-bit (reduces vertex buffers 10-20%)
- memory: merge texgen case for fewer shaders (maybe helps performance too)
- optimization: edge_matrix efficiency
Windows D3D GDraw
- bugfix: enable bilinear filter on minification (got lost in an optimization)
- optimization: pack vertex constants into minimal number possible
Xbox 360 GDraw
- optimization: reduce calls to GetCurrentFence
- optimization: use a branch to reduce vertex shaders (hence vertex shader switching)
This release runs our most absurd test file about 20% faster on the Xbox 360 CPU and GPU than the previous release.
PS3 GDraw
- first release
- builds with both gcc and SNC
Alpha versions
Alpha Release 0.9.2 October 5, 2010
This is the second alpha release of Iggy. It includes the following changes from the previous release:
Iggy
- enhancement: Report more detail about AS3 verifier errors through the Warning system (a temporary workaround until there's a way to get detailed messages on errors)
- enhancement: New AS3-variable-access-API that's more flexible (old one will go away in next release; tutorial rewritten to use new API)
- enhancement: Very limited support for AS3 class flash.system.Capabilities
- enhancement: [affects GDraw API] Some Telemetry statistics gathering if you have a Telemetry beta
- optimization: General AA rendering performance improvements (fewer cases need rendertargets)
- optimization: Garbage collector performance improvements (discard unreachable unparented DisplayObjects before invoking the GC)
- optimization: Memory mananger performance improvements (keep more free-list sizes)
- bugfix: tweak top margin for dynamic text to better match Flash Player (still not perfect)
- bugfix: X360 debug libs require a valid texture stride (Iggy wasn't bothering to give a valid one if only downloading a single row)
- bugfix: fix acute-angle antialiasing on certain sizes of objects (epsilon test was wrongly scaled, introduced when we moved AA processing to vertex shader)
- bugfix: Support for file format generated by mxmlc
Xbox 360 GDraw
- bugfix: [affects user-facing GDraw API] X360 GDraw receives zbuffer and clears (clear even unused padding memory so it is properly cleared when used with rendertargets with different stride)
- enhancement: Return statistics to Iggy for reporting through Telemetry etc.
- memory: X360 GDraw allocates rendering resources from a fixed-size buffer, and can defragment it
- memory: X360 GDraw needs less memory when generating mipmaps (incrementally build mipmaps, don't require full image first)
- optimization: X360 GDraw creates tiled textures (doesn't help on unrotated stuff, but hey)
- optimization: X360 GDraw performance improvements (~20% less usage of GPU and total CPU on our bad-art test)
Windows D3D GDraw
- enhancement: Return statistics to Iggy for reporting through Telemetry etc.
Alpha Release 0.9.1 September 4, 2010
This is the first alpha release of Iggy. There are no changes from previous versions, because there are no previous versions.