-
Notifications
You must be signed in to change notification settings - Fork 32
ReleaseNotes
- The complete list of API changes for the most recent release is available.
Thanks to various external contributors for these patches.
TPUI
- Element now allows layout constraints to be replaced.
- Fixed layout issues when contents of Button, for example, shrink.
- Fixed issue with velocity calculations in XYFlicker.
Skipped due to upstream PlayN release problems.
Thanks to various external contributors for these patches.
TPUI
- Elements are now properly invalidated when they are moved.
- Added support for adjusting interline spacing via
Style.LINE_SPACING
. - ModalShadow now emits a signal when it is clicked.
- Added support for repeating background sections (instead of scaling) to
Scale9Background
. - Element's internal layer is now set to the element's size.
- BorderLayout now supports setting its gaps after construction.
- Fixed issues with alignment to physical pixels when sibling elements are invalidated.
TPUI
-
Element better handles alignment of UI elements to "natural" pixel grid on scaled displays.
Previously we rounded to nearest logical pixel, but this may not align with a physical pixel on
displays with non-integral scale factor (many Android displays). Now we no longer round
coordinates, but instead at UI validation time use the new
Scaled.roundToNearestPixel
method to align UI elements to actual physical pixels. - Scroller also uses new scaled display aware rounding to avoid positioning clipped UI on non-integral physical pixel.
TPUI
-
Box
set
now removes its element from its parent before adding. - Fixed
TextWidget
issue withICON_CUDDLE
if there is no text.
- Bogus release to fix problems with publishing 2.0.2 release. Yay.
TPUI
- Added
ELLIPSIZE
Style which truncates text with three dots. - Added
MIN_FONT_SIZE
Style for use withAUTO_SHRINK
. This used to be hard coded. - Added
BAR_ON_BACKGROUND
style for use with Slider. - Added ModalShadow helper class for making UI below a modal dialog inactive.
TPGame
- Fixed issue with ScreenSpace constructor.
-
ScreenStack constructor now requires
Game
reference.
TPGame
- Added
sizeValue
to ScreenSpace.Screen and ScreenStack.Screen. This allows code to react to the size of the screen changing (due to device orientation change). - Fixed issue with ImageButton using images before they finished loading.
TPUI
TPDemo
- Split the Java demo into a separate demo per Java backend.
- Added demo of new layer debug rectangle rendering (press
d
key in demo).
- All implementations updated to work with new PlayN 2.0 APIs.
TPUI
- Added new Icons
Aggregated
along withScaled
andOffset
wrappers. - Added Icons
solid
. - Added Root
validated
signal. Emitted when root is validated.
TPAnim
- Added Animation
Handle.complete
to force-complete an animation early. - Added Flicker
stop
andfreeze
. - Interpolator API simplification and improvement.
TPGame
- Added ScreenSpace. It's like ScreenStack but uses a 2D navigation metaphor.
TPSound
- Fixed NPE when rapid-fire toggling SoundBoard mute.
TPFlump
- Added Movie
labelPassed
signal. - Added
ConvertFlumpLibsMojo
Maven plugin totripleplay-tools
.
TPPlatform
- Eliminated dependency on Guava.
TPUtil
-
Logger
format
now takes a prefix message.
TPUI
- Added support for using a custom EffectRenderer via Style
TEXT_EFFECT
. - Added TextStyle
withEffect
. - Added AnimBuilder
tween(XYValue)
. - Added Background
tiledImage
. - Fixed issue with auto-shrinking and preferred size calculation.
TPUtil
- Added JsonUtil
toString
.
TPUI
- Revamped the way interaction is handled. This is only relevant if you extend TPUI widgets with custom interactions or create your own TPUI widgets. See Behavior for details.
- Added ImageButton, a button that uses images for its up and down state.
- Factored "parent"-ness into Container (out of
Elements
) plus Container.Mutable. - Added Box a container that contains zero or one widgets.
- Added Insets
adjust
. - Added Composite for widgets that are composed of other widgets. Made Tabs and Scroller into
Composite
s. - Added MenuHost
deactivate
. - Added Scroller
BAR_TYPE
style. - Added Style.TextEffect
GRADIENT
.
TPEntity:
- Added TPEntity entity system. See AsteroidsDemo for example usage.
TPAnim:
- Added AnimBuilder
destroy(Destroyable)
,emit(Signal,value)
.
TPFlump:
- Made PlayMovie respect Movie
speed
. - Factored loading into JsonLoader added BinaryFlumpLoader.
TPPlatform:
- A bunch of work on and revamping of native text fields. Much of this effort went toward getting them working in the Java backend, which requires running the app via SWT.
- Added support for setting the app icon in the running Java app.
TPUtil:
- Added Tapper and DoubleTapper for simple interaction handling on a layer.
- Added Interpolator
applyClamp
which ought to be the default but that would cause too much trouble. - Added Interpolator
BOUNCE_OUT
andEASE_OUT_ELASTIC
. - Fixed issue with empty string in TypedStorage
setFor
, handle removals from said sets. - Added Bag, an unordered collection that may contain duplicates. Optimized for speed.
- Added BitVec, a bit set like
java.util.BitSet
(Java's BitSet doesn't work in GWT). - Added TextStyle and StyledText to replace now deprecated TextConfig and to work with PlayN's new approach to multiline text rendering. Eventually this combo will also support "rich" text (changing styles in the middle of a wrapped paragraph of text).
TPUI
- Added Element
bindVisible
andbindEnabled
. - Added Button
bindText
andbindIcon
. - Various NativeTextField fixes.
- Added Scale9Background
setTint
. - Added Background
croppedImage
.
TPGame
- Fixed issue where screen could spend one frame at wrong position during transitions.
TPUtil
- Added TextConfig
renderCX
.
TPUI:
- Factored Background insets into Insets class.
- Various
Menu
improvements. - Added Style
ICON_EFFECT
. - Added Interface
destroyRoots
. - Added Button
onClick
method for easy connecting of a slot toclicked()
. Also added LongPressButtononLongPress
.
TPAnim:
- Added
easeInBack
andeaseOutBack
to interpolated Animation.
TPPlatform:
- Added NativeTextField
setEnabled
. - Fixed various keyboard issues when changing orientation.
TPUtil:
- Added TexturePacker, Inflater, Deflater.
Everywhere:
-
Most
update
methods were changed to take anint delta
to match the changes toPlayN
, and mostpaint
methods were changed to take an instance ofClock
. This allows certain calculations to be performed once-per-frame instead of repeatedly by half a dozen subsystems. Your game should be updated to use a pattern like the following:class MyGame extends Game.Default { public MyGame () { super(UPDATE_PERIOD); } public void update (int delta) { _clock.update(delta); _screens.update(delta); _particles.update(delta); _sounds.update(delta); // ..etc.. } public void paint (float alpha) { _clock.paint(alpha); _screens.paint(_clock); _particles.paint(_clock); // ..etc.. } private Clock.Source _clock = new Clock.Source(UPDATE_PERIOD); private ScreenStack _screens = new ScreenStack(); private Particles _particles = new Particles(); private SoundBoard _sounds = new SoundBoard(); private static final int UPDATE_RATE = 30; // FPS private static final int UPDATE_PERIOD = 1000 / UPDATE_RATE; }
TPUI:
- Elements that supported icons now take an Icon class rather than Image. Use Icons
image
to easily turn anImage
into anIcon
. - Various new widgets. See API changes for full details.
- Added Constraints
maxWidth
/maxHeight
/maxSize
constraint builders. - Boolean style constants can now be expressed as
Style.FOO.on
andStyle.FOO.off
in addition toStyle.FOO.is(true)
andStyle.FOO.is(false)
.
TPAnim:
- Fixed bug with calling
cancel
on an animation that was just about to start. AlsoAnimation.Handle.cancel
no longer returns a boolean value. - Animation durations were always specified in milliseconds, but various places in the code and documentation talked about seconds. The code and documentation has all been normalized to use and talk about milliseconds.
TPPlatform:
- Beginnings of native text field support for Java.
- Various enhancements to native text field support on iOS. See API changes.
TPUtil:
TPUI:
- Added Scroller
makeVisible
. - Added LongPressButton which supports both a normal press interaction and a long-press interaction.
- Added AxisLayout.Policy
CONSTRAIN
off-axis sizing policy. - Added Field
MAXIMUM_INPUT_LENGTH
style. - Added TableLayout
colspan
for configuring a column span on an element. - Added ValueLabel.
- Added Style
ICON_CUDDLE
andUNDERLINE
(the latter for underlined text). - Added TableLayout.Column
free
to allow weighting of free columns.
TPAnim:
- Added AnimGroup for creating a group of invoked-in-parallel of animations that are either added to an Animator later, or are added to a serial animation chain.
- Moved animation creation methods from Animator to AnimBuilder. Animation
then
now returns an AnimBuilder which is a cleaner design. - Clarified behavior of Animator
add
andthen
, madethen
freak out if used incorrectly. - Fixed bugs with repeating animations.
TPSound:
TPParticle:
- Added Transform
randomScale
andrandomOffset
.
TPFlump:
- Various bug fixes and small API improvements. See API changes.
TPPlatform:
- Added NativeTextField
Validator
andTransformer
for (native) text validation and transformation.
TPShader:
-
TintingShader
was removed as PlayN layers now support tinting directly.
TPUtil:
- Added Logger.Level
ERROR
for really serious business. - Added Ref, Destroyable and DestroyableList which can simplify manual resource management.
- Added Hud for easy display of debug info.
- Mainly this release is to track the PlayN 1.5.1 patch release.
- Various dependency updates: React 1.3.1, Pythagoras (inherited from PlayN) 1.3.2.
- Added the
gesture
package for touch gesture recognition. - Added a framework for native extensions to TriplePlay (in the
platform
package), and NativeTextField (only implemented on iOS) for overlaying a native iOS textfield onto the PlayN view. - Added a number of new TPUI widget classes:
Menu
, Scroller,Tabs
. - Added SoundBoard and associated sounds for easily managing sound effects and music.
TPUI:
- Added Style
ACTION_SOUND
for playing a sound when buttons are clicked, etc. - Added Style
BACKGROUND
support to all elements (previously it only worked forTextWidget
derivatives and [Group]). - Added Shim constructor that takes
Dimension
. - Added Background
alpha
for making backgrounds translucent. - Added Slider
setWidth
. - Added SizableWidget.
- Added TableLayout
alignTop
andalignBottom
for configuring vertical alignment of cell contents. -
Root
wasRemoved
is now properly called when a root is removed and/or destroyed.
TPAnim:
- Added Animator
setAnimating
. - Added Animator
stop(Sound)
. - Added Animator
tweenVolume(Sound)
. - Added Flicker
posValue
. - Fixed Animator
repeat
which had all sorts of wacky edge case bugs.
TPGame:
- Added page turn transition (via ScreenStack
pageFlip
). Uses a custom shader (for real 3D-ness) and thus only works on GL-based backends. - Added flip transition (via ScreenStack
flip
). Uses a custom shader (for real 3D-ness) and thus only works on GL-based backends. - Added ScreenStack
remove(Predicate)
for removing all screens that match a predicate. - Added AbstractTransition
onStart/onComplete
. - Fixed issues when screen transitions are interrupted (by starting a new transition).
TPUtil:
- Added TypedStorage
contains(String)
andsetFor
. - Added TypedStorage
get/set
for enums andvalueFor(String,Enum)
. -
TextConfig moved from
ui
toutil
.
TPParticle:
- New particle system. See Demo for examples.
TPSound:
- Added MultiSound.
TPSyncDB:
- SyncDB is a new system for syncing a set of persistent data across a set of clients (via a server). Think syncing local game state across multiple mobile clients and/or web clients. Supports offline play with accumulation of changes and merging of those changes into the shared database with conflict resolution. Not fully implemented.
TPFlump:
- Beginnings of player for Flump animations.
TPDemo:
- Extracted all of the demos into a standalone demo project.
TPUI:
- Removed focus support, modified Field to always use
Keyboard.getText
. - Added CheckBox.
- Added Slider
setIncrement
and SlidersetThumb
, made Slider use configured background style. - Added Element
getStyleClass
. - Added Background
roundRect
. - Added TextConfig.
- Added FlowLayout.
- Added AxisLayout
stretch
. - Added Style
SHADOW_X
andSHADOW_Y
. - Added Style
TEXT_EFFECT.vectorOutline
,OUTLINE_WIDTH
,OUTLINE_CAP
, andOUTLINE_JOIN
. - Changed Style
TEXT_EFFECT.outline
to StyleTEXT_EFFECT.pixelOutline
- Added TableLayout.Column
copy
. - Added Interface
roots
. - Revamped
TextWidget
which resulted in changes to Button and Label. - Clicks are now ignored by non-enabled widgets.
- Fixed issue where text was positioned on non-integral-pixels in HiDPI mode.
TPAnim:
- Added Animation
from
andto
that take aPoint
. - Added Animator
setVisible
,addAt
. - Added Animator
flipbook
,flipbookAt
and Frames, SimpleFrames, PackedFrames. - Added a tool to create packed frame images. See
tripleplay.tools.FramePacker
. - Improved flow when transitioning between animations (no longer does it force a frame to elapse when one animation ends and then next starts).
TPGame:
- Added ScreenStack
popTo
andpush(Iterable<Screen>)
. - Added ScreenStack.Transition and ScreenStack
slide
. - Added Screen
showTransitionCompleted
andhideTransitionStarted
. - Added AnimScreen, UIScreen and UIAnimScreen.
TPUtil:
- Added Logger
Level
andLevels
. - Simplified Logger.Impl.
- Added TypedStorage
valueFor(String,String)
.
TPUI:
- Added TogglableTextWidget and ToggleButton.
- Added BorderLayout, like AWT's layout of same name.
- Added AxisLayout
stretchByDefault
. - Added Field
focus()
, FieldmaybeFocus()
for setting focus programmatically. - Modified Field to use Keyboard
getText
on platforms with no hardware keyboard. - Added Scale9Background and Background
scale9
. - Added Background
bordered
. - Added Element
hierarchyChanged
signal, which is emitted when an element is added to or removed from the UI hierarchy. - Added TableLayout
(int)
constructor for easier creation of table with many standard columns. - Changed Background insets configuration to Background
inset(int)
, etc. - Changed
NullBackground
toBlankBackground
for consistency. - Made labels not intercept clicks.
- Made elements/group not respond to clicks when not visible.
- Fixed bug where icon gap was shown when we had icon and no text.
- Rewrote event handling to use PlayN's new built-in event dispatch to layers. This means Interface no longer takes a Pointer.Listener and TPUI plays more nicely with other click handling you are doing on layers in your game.
TPAnim:
- Added Animator
tween
to allow tweening of custom properties. - Added Animator
reparent
for reparenting a layer during an animation. - Added Flicker for doing iOS-style flick scrolling.
TPUtil:
- Added Timer for periodic and one-shot timers.
- Added Layers
reparent
. - Added
long
anddouble
values to TypedStorage. - Added Logger.PlayNImpl for easy wiring of logging facade to PlayN.
I wasn't maintaining release notes back in those glorious days.