Skip to content

Latest commit

 

History

History
821 lines (601 loc) · 51.5 KB

CHANGELOG.md

File metadata and controls

821 lines (601 loc) · 51.5 KB

Changelog

Release Changes

Full Changelog

Release Changes

Full Changelog

Release Changes

  • Fixed issue that was not restoring the environment in Try mode when stopOnCrash was enabled by @lvcabral in #361
  • Reduced complexity of Try/Catch visit functions by @lvcabral in #362

Full Changelog

Release Changes

  • Fixed loading fonts on CLI when running .brs files by @lvcabral in #351
  • Added unit tests for continue for/while by @lvcabral in #352
  • Improvements to stack trace and try...catch by @lvcabral in #353
  • Updated engine-api.md by @lvcabral in #354
  • Simplification of the Error objects and removing abbreviations from properties by @lvcabral in #355
  • Renamed type ErrorCode to ErrorDetail by @lvcabral in #356
  • Updated Firmware Version to 11.5 as continue for/while is now supported by @lvcabral in #357
  • Removed usage of global objects to encrypt/decrypt packages by @lvcabral in #358
  • Fixed multiple Static Analysis issues raised by Sonar Cloud by @lvcabral in #359
  • Increased the timeout for CLI run zip file test to 10s by @lvcabral in #360

Full Changelog

Release Changes

  • Implemented pos() and tab() for print statement by @lvcabral in #339
  • Fixed Callable signature check by @lvcabral in #340
  • Fixed conversion functions to Integer: Int(), CInt() and Fix() by @lvcabral in #342
  • Refactored worker and cli libraries to support run function by @lvcabral in #344
  • Updated CLI app to load the engine as an external library by @lvcabral in #350
  • Fixed CLI font loading by @lvcabral in #345
  • Fixed Unit Tests and several issues by @lvcabral in #348
  • Fixed Video seek causing a stack overflow crash by @lvcabral in #349

Full Changelog

Release Changes

  • Implemented support for multi-dimensional indexes of roArray and roList by @lvcabral in #331
  • Implemented Continue For and Continue While statements by @lvcabral in #332
  • Fixed CLI: REPL was not showing any error messages.

Full Changelog

Release Changes

  • Implemented roImageMetadata component by @lvcabral in #325
  • Implemented roAudioMetadata component by @lvcabral in #326
  • Fixed Boxing for Callable parameters and implemented Coercion properly by @lvcabral in #327
  • Fixed #323 MicroDebugger is stopping on handled exceptions (try..catch) by @lvcabral in #324
  • Upgraded dependencies

Full Changelog

Release Changes

Full Changelog

Release Changes

  • Removed isEmpty from roPath to match Roku behavior by @lvcabral in #306
  • Allow to use AND/OR between Boolean and Numbers by @lvcabral in #307
  • Improved roEVPCipher error handling by @lvcabral in #308
  • Implemented roDeviceCrypto component by @lvcabral in #309
  • Implemented roFunction component and Box() runtime function by @lvcabral in #310
  • Improved Iterable objects to behave as Roku devices by @lvcabral in #311
  • Fixed Boxing on Numbers and Booleans by @lvcabral in #313
  • Fixed issues with roByteArray by @lvcabral in #314
  • Improved print variables by @lvcabral in #315
  • Implemented slice() method in roArray under ifArraySlice

Full Changelog

Release Changes

  • Added: roEVPDigest component by @lvcabral in #301
  • Added: roEVPCipher component by @lvcabral in #303
  • Added: roHMAC component by @lvcabral in #305
  • Changed: Improvements to roPath by @lvcabral in #296
  • Changed: roUrlEvent and roUniversalControlEvent to be comparable by @lvcabral in #299
  • Changed: Updated Limitations document by @lvcabral in #302
  • Changed: Only raise HTTP Errors in development mode and other exception handling improvements @lvcabral in #300
  • Fixed: ifString.tokenize() behavior to match Roku by @lvcabral in #295
  • Fixed: String comparison and concatenation by @lvcabral in #298
  • build(deps): bump express from 4.18.3 to 4.19.2 by @dependabot in #297

Full Changelog

Release Changes

  • Updated: Flicker on CLI ASCII mode was removed by @lvcabral in #294
  • Updated: IIS config file was added for the sample web app by @lvcabral in #294
  • Fixed: Invalid BRS files are now handled correctly by @lvcabral in #294
  • build(deps): bump webpack-dev-middleware from 5.3.3 to 5.3.4 by @dependabot in #293

Full Changelog

Release Changes

  • Added: Support for ifDraw2D in CLI with flag to show screen as ASCII Art by @lvcabral in #284
  • Added: Support for roUrlTransfer in CLI by @lvcabral in #289
  • Added: ECP and SSDP services to the CLI by @lvcabral in #290
  • Added: New ascii_rendering custom feature (only on CLI) by @lvcabral in #291
  • Added: Option to CLI persist the registry to the disk by @lvcabral in #292
  • Fixed: CLI Font Loading by @lvcabral in #285

Full Changelog

Release Changes

  • Add custom features by @lvcabral in #283
    • Added a way to add custom features to be checked by roDeviceInfo.hasFeatures()
    • Created new document docs/customization.md
    • Updated default game pad mapping

Full Changelog

Release Changes

  • Micro debugger improvements by @lvcabral in #280
    • Added to the API initialize method a new option: disableDebug
    • Added to the MicroDebugger support for Function, If, For and While
    • Added support for MicroDebugger on CLI
    • Fixed MicroDebugger formatting issues and the handling of linefeed
    • Moved command parsing code from API to MicroDebugger
    • Added quit command to the MicroDebugger
  • Added #278 - Support to ECP control keys VolumeMute and PowerOff by @lvcabral in #279

Full Changelog

Release Changes

  • Added #272 ifDraw2d method drawTransformedObject() by @lvcabral in #275
  • Fixed #274 - MicroDebugger truncate String variable to max 94 characters by @lvcabral in #276
  • Fixed #273 - MicroDebugger not exiting properly with exit command by @lvcabral in #277

Full Changelog

Release Changes

  • Added control event triggered when keydown and keyup are sent to the engine by @lvcabral in #270
    • Created to allow the apps to have access to the control keys
    • Updated API documentation
  • Removed "Loading..." message when running apps without splash, only showing the icon (Roku updated behavior)

Full Changelog

Release Changes

  • Fixed #265 - Implemented roString methods startsWith() and endsWith() by @lvcabral in #266
  • Fixed #267 - Allow map modification keys (Shift, Control, Alt and Meta) independently by @lvcabral in #268
  • Improved performance of creating encrypted package by @lvcabral in #269

Full Changelog

Release Changes

  • Fixed #260 - roByteArray - Capacity calculation now behave as Roku by @lvcabral in #261
  • Fixed #255 - roVideoPlayer - Seek now behave as Roku by @lvcabral in #262
  • Fixed #263 - Checking the Game Pad buttons map on event handler by @lvcabral in #264

Full Changelog

Release Changes

  • Fixed #252 - Clear the audio tracks list when switching videos by @lvcabral in #256
  • Fixed #253 - Safari native HLS support not selecting default audio track by @lvcabral in #257
  • Fixed #254 - Keep the audio track selection on each playlist video metadata by @lvcabral in #258
  • Fixed #250 - Made RunUserInterface the primary entry point by @lvcabral in 259

Full Changelog

Release Changes

  • Added full support to HLS and Multiple Audio Tracks - closes #247, #220 by @lvcabral in #249
  • Added support to videos inside the package or downloaded - closes #239 by @lvcabral in #246
  • Finished implementation of roByteArray- closes #172 by @lvcabral in #251
  • Fixed #244 - API Debug issues by @lvcabral in #245

Full Changelog

Release Changes

  • Fixed #234 - Return last buffer on roScreen methods getPng and roGetByteArray by @lvcabral in #236
  • Fixed #235 - Updated ifDraw2D to support roScreen as image source by @lvcabral in #237
  • Fixed #238 - Detected supported video codecs and containers to return in roDeviceInfo.canDecodeVideo() by @lvcabral in #240
  • Fixed last frame on screen using cancelAnimationFrame() by @lvcabral in #241
  • Fixed #242 - Raise resolution event during app startup by @lvcabral in #243

Full Changelog

Release Changes

  • Fixed #228 - Prevent repeated keydown events by @lvcabral in #230
  • Fixed #229 - Clear buffer on terminate by @lvcabral in #231
  • Fixed #232 - Object roXMLElement called method getText() is returning empty string by @lvcabral in #233

Full Changelog

Release Changes

  • Fixed #225 - Low Resolution on Screen Resize by @lvcabral in #226
  • Fixed #219 - Video playback is not always pausing when the app get PAUSE or BREAK commands by @lvcabral in #227

Full Changelog

Release Changes

  • Fixed issue that allowed API to unmute a video when App had it muted by @lvcabral in #221
  • Added new API methods to enable/disable dynamically both keyboard or game pad controllers by @lvcabral in #222
    • setControlMode()
    • getControlMode()
    • setCustomPadButtons()
  • Improvements on Remote Control simulation by @lvcabral in #223
    • Added support for different control types
    • Added a key buffer on the API side to avoid losing key events

Full Changelog

Release Changes

  • Fixed #190 - Implemented global function FindMemberFunction() by @lvcabral in #216
  • Improved Example web app by @lvcabral in #217
    • Removed unecessary content policy
    • Replaced usage of prompt() by an HTML5 dialog
    • Updated execution source using the button to match Roku side load with "auto-run-dev"

Full Changelog

Release Changes

  • Fixed API to handle mute in sync for both Audio and Video by @lvcabral in #215
  • Fixed bad performance when in full screen mode on 4K monitors by @lvcabral in #214
  • build(deps): bump follow-redirects from 1.15.3 to 1.15.4 by @dependabot in #212
  • Added new demo app to the example web application: custom-video-player
  • Updated documentation

Full Changelog

Release Changes

  • Implemented roVideoPlayer component by @lvcabral in #213
  • Added support to customize GamePad buttons mapping by @lvcabral in #210
  • Control queue modes: Single Key Events and Multi Key Events by @lvcabral in #211
    • Add the entry multi_key_events=1 to the manifest to enable support for simultaneous keys.

Full Changelog

Release Changes

  • Added support for g flag on roRegex by @lvcabral in #209
  • Fixed sound related issues by @lvcabral in #208
    • Home Button sound was not always being triggered
    • The roAudioResource was with the old DataType enum configuration
    • Sound will totally pause now both on stop and pause states.

Full Changelog

Release Changes

  • Fixed wav stream conflict with Debug command by @lvcabral in #207
    • Extracted enumerators from util.js into enums.js to reuse inside the worker
    • Fixed issue that was restarting a sound when returning from pause of break, when the app already had stopped it.

Full Changelog

Release Changes

  • Updated package name on README.md badges by @lvcabral in #200
  • Fixed #201 - Prevent Exception when SharedArrayBuffer is not supported by @lvcabral in #202
  • Implementing features to remove limitations by @lvcabral in #205
    • Fixed #164 - Allowing usage of explicit interfaces when calling methods @lvcabral in #206
    • Fixed #159 - Properly casting numeric values on Math functions and other scenarios
    • Added support to have the variable name after next statement in a for...next loop
  • Implemented GamePad support by @lvcabral in #204
    • Added support for the GamePad API
    • Added a new feature simulation_engine to the roDeviceInfo.hasFeature() method, allowing apps to adapt when under brs-engine
    • Added new option to define maxFps on deviceData and limit framerate inside the worker
    • Reduced web app default framerate to prevent issues on iOS
    • Added icon dimentions to css
    • Fixed CLI to not show start event
    • Fixed high framerate performance issue
    • Fixed loading encrypted package
  • Added new debug command pause to allow interrupt the interpreter when app loses focus

Full Changelog

After 4 years of Alpha and Beta stages, the project is stable and performant enough to finally be released as version 1.0 and with that, we decided to give it a new name:

brs-engine - BrightScript Simulation Engine

The term simulation engine was chosen instead of the former emulator to better represent the nature and purpose of the project, as there is no intention to fully emulate a Roku device (OS and Hardware), but rather simulate the behavior, as a development tool and as an engine/framework to run BrightScript apps in different platforms.

In this release the new CLI was introduced, still with some limitations (e.g. no OffScreenCanvas support), but allowing basic BrightScript code to be executed, either via REPL or files. It also performs the encryption of a .zip file into a .bpk package to protect the source code.

Release Changes

  • Renamed package for brs-engine
  • Renamed libraries to brs.api.js and brs.worker.js
  • Reorganized src folder by library, subfolders: api, cli and worker
  • Added new CLI with REPL (bin/brs.cli.js) (#181)
  • Added support for Conditional Compilation (#93)
  • Added support for webp file format in roBitmap (#166)
  • Added support for interfaces ifGetArray and ifSetArray (#170)
  • Added support for .bpk encrypted package file (#188)
  • Added support optional chaining operators: ?., ?(, ?[, and .@ (#176)
  • Moved models list to API library and updated serialNumber format
  • Added new API event registry
  • Added check for break debug command during the roMessagePort loop
  • Added code to pause sound when Micro Debugger is triggered (does not affect wav)
  • Added option to stop on Micro Debugger when a crash happens (#198)
  • Added partial try/catch implementation (#195)
  • Improved error handling and added warning for RSG usage
  • Added stub roAppMemoryMonitor and roDeviceInfo.enableLowGeneralMemory (#196)
  • Added new method getAllPurchases and changed doOrder to return false (#178)
  • Added formatLocation method in the Interpreter to help show location in warning messages
  • Added Bundle Stats Analyzer and replaced dependencies to reduce package size
  • Updated default firmware to 11.0 and added new models to the list
  • Updated images and layout of sample Web application
  • Updated roDateTime.GetTimeZoneOffset() to consider roDeviceInfo.GetTimeZone() (#94)
  • Finished implementation of ifEnum on all array/list objects (#171)
  • Fixed multiple cascading calls for dot-chained methods (#55)
  • Fixed roRegion offset not being properly applied when setWrap was true (#194)
  • Fixed Val() function not compliant with Roku (#162)
  • Fixed duplication of exception handling messages (#126)
  • Fixed code smells and bugs based on Sonar Cloud recommendations (#169)
  • Replaced luxon by day.js on roDateTime and roTimespan (#193)
  • Replaced module jszip by the lighter fflate
  • Removing ua-parser-js dependency for the API
  • Bumped version of several dependencies
  • Removed Node 14.x from the build (#182)

Full Changelog

This release was a result of months of refactoring work and performance improvements.

  • Implemented new API to simplify usage of the brs-emu package, see new documentation @lvcabral
  • Implemented the Roku MicroDebugger (including stop statement, back trace and debug commands) #127
  • Added support for Firefox and Safari browsers
  • Added option to execute a channel without audio
  • Added support for both Windows and MacOS keyboard names
  • Multiple performance improvements on handling Canvas 2D, big thanks for @markwpearce #139
  • Implemented roInput #57
  • Implemented roAppInfo #104
  • Implemented support for ScaleMode in roRegion #62
  • Implemented missing methods to roRegion #120
  • Implemented missing methods to roUrlTransfer as mocks to avoid channel crash. #104
  • Implemented missing roDeviceInfo methods #134
  • Implemented missing roChannelStore methods #137
  • Implemented a mock of RunGarbageCollector() #119
  • Implemented numeric type auto cast in function parameters and return value #122
  • Implemented support for external input parameters #123
  • Implemented support for format parameter on toStr() #132
  • Implemented method format() in roString #133
  • Implemented end command to terminate app without crash
  • Improved casting on roBitmap, roRegion and roScreen
  • Improved Function call performance #141
  • Changed to show icon when no splash exist in zip file
  • Changed to only enable keyboard control when channel is running
  • Changed to make sure audio do not play if stop() is called during load
  • Fixed: drawRotatedObject on roScreen and roBitmap
  • Fixed: ifDraw2d drawing methods on roRegion #120
  • Fixed: return invalid when roCompositor doesn't receive valid regions creating sprites #125
  • Fixed: Edge case of comparing invalid with roInvalid
  • Fixed: Prevent crash with invalid collection with for each #118
  • Fixed: Added missing audio files to the npm package
  • Added option to show and overlay with display performance indicators #129
  • Implemented use of Atomics with the SharedArrayBuffer and other small improvements.
  • Adding a python script to allow testing on newer browsers with COOP and COEP enabled.
  • Upgraded to TypeScript 4, Webpack 5 and several other dependencies
  • [sonar] Code smell and complexity fixes #153
  • Merged brs v0.45.0 below cherry picked commits:
    • feat(stdlib): Add lookupCI for assocarray (#639) resolves #629
    • fix(interp): allow functions to be typed as objects (#659)

Full Changelog

This release brings the integration of improvements and fixes from the brs interpreter up to their v0.43. Also several improvements

  • (app) Implemented ECP-2 WebSocket API to support official Roku mobile apps (iOS and Android)
  • (app) Implemented support for keyboard characters sent via ECP
  • (app) Added support for new control keys: Backspace, Enter, PlayOnly and Stop
  • (app) Restore the app window, if minimized, when a channel is loaded remotely via the Installer
  • (app) Added Ctrl+R shortcut to reload most recent channel
  • (app) Added current locale on the Status bar
  • (app) Made path length on the status bar proportional to the app window's width
  • (app) Fixed status bar Resolution label that was showing "width" twice
  • (app,web) Now emulator loads all files from the zip package even ones with custom extension.
  • (app,web) Made Key8 to behave as the Info (*) control key, for keyboards that lacks the numeric keypad
  • (app,web) Upgraded several dependencies to patch security vulnerabilities.
  • (brs) Implemented support for Dot (.) and Attribute (@) operators for XML objects
  • (brs) Implemented several missing methods to roDeviceInfo
  • (brs) Added check for valid parameters on roRegion constructor
  • (brs) Ignore Label statements when parsing the code
  • (brs) Fixed roRegion.SetWrap(true) in ifDraw2D.DrawObject() and ifDraw2D.DrawScaledObject()
  • (brs) Fixed roString.Tokenize() that was sometimes returning an empty string at the end of the list
  • (brs) Fixed roAppManager.updateLastKeyPressTime() definition typo and implemented actual time reset
  • (brs) Fixed issues with roTimespan
  • (brs) Fixed roRegion.offset() to accept float parameters
  • (doc) Updated list of emulator limitations
  • Merged brs v0.43.0 below some key commits:
    • fix(lexer): Add support for explicit integer literals (#637)
    • feat(stdlib): add isEmpty method to roString (#636)
    • fix(parse,interp): Support unary + operator for numbers (#615)
    • fix(lex): Allow JS object properties as identifiers (#614)
    • feat(stdlib): Implement RoLongInteger and cast int to LongInt, float to Double (#600)
    • fix(stdlib): Correct sorting issues with mixed arrays (#592)
    • feat(parse,interp): Implement dim statement (#531)
    • fix(rsg): Adds optional arg to RoString constructor (#533)
    • fix(parse): Restore nested block parsing (#514)
    • fix(parse): Allow multiple statements in single-line if branches
    • feat(stdlib): Added case sensitive support to roAssociativeArray (#509)
    • fix(parser): make if statements with 'not' work (#443)
    • fix(parse): Capture EndIf token when used alongside else (#393)
    • fix(interp): Allow Float parameters passed into function signatures expecting Double (#394)
    • fix(interp): Allow invalid returns for signatures that return object (brs#395)

Full Changelog

This release brings bug fixes, support for new Chrome security policies and the desktop application has upgraded dependencies including Electron's bump to v9.

  • (brs)Added new message "getVersion" to allow request library version to the WebWorker
  • (brs) Revert "fix(interp): Automatically box as object function parameters (sjbarag#365)"
  • (brs) Fixed support for Retaliate game that was not working properly on v0.8
  • (web) Shows dynamically the library version using new message "getVersion"
  • (web) Added support to Chrome 92+ that will force self.crossOriginIsolated
  • (app) Upgraded several dependencies to patch security vulnerabilities.

Full Changelog

This release brings full support for channel localization. The desktop application has a new menu with the locales with the same options available on Roku devices.

  • (brs)Added support to localize texts using TS or XLIFF files #67
  • (brs)Implemented support for localization of images #66
  • (brs)Added missing method setAdPrefs() for Roku_Ads.brs #68
  • (brs)Removed BRS original manifest handler
  • (app) Added option on Device menu to change localization
  • (app) Refactored app code into several front-end modules
  • Merged BRS v0.18.2
    • fix(stdlib): Implement RoAssociativeArray.items() correctly (#371)
    • fix(interp): Automatically box as object function parameters (#35)
    • fix(stdlib): Allow formatJson to serialize boxed types (#364)
    • feat(stdlib): Implement getString() and toStr() on RoString (#362)
    • feat(stdlib): Implement GetInterface (#352)
    • fix(interp): Automatically box return values for 'as object' return types (#360)
    • feat(parse): Allow . before indexed property access (#357)
    • chore(cruft): Remove unused AutoBox.ts

Full Changelog

  • (brs) Library now supports roUrlTransfer and roUrlEvent
  • (brs) Added support to bmp images, and better file type detection
  • (brs) Emulator File System is now case insensitive (like Roku)
  • (brs) Finished roXMLElement implementation with XML creation methods
  • (brs) Mocked roAppManager component with working GetUpTime() method
  • (brs) Support to global functions: RebootSystem(), UpTime(), Tr()
  • (brs) Fixed scope of the m object inside global functions (v0.7.2)
  • (brs) Fixed support for fonts with spaces and numbers on the family name (v0.7.2)
  • (brs) Fixed issues related to if..then..else on a single line (v0.7.2)
  • (app,web) Added support to play downloaded audio files
  • (app,web) Added support to show downloaded images
  • (app,web) Updated default sound effects with the original Roku audio resources
  • (app) Web Installer (port 80 or custom) to allow remote installation and screenshot
  • (app) ECP server (port 8060) with SSDP detection implemented
  • (app) Remote Console (port 8085) is available for remote monitoring
  • (app) Status bar now changes color if errors or warnings are raised
  • (app) New clickable status bar icons for errors, ECP and web installer
  • (web) Shows animated gif to indicate a channel is being downloaded
  • (doc) Updated list of emulator limitations
  • (doc,app) Added desktop app build documentation

Full Changelog

  • (app,web) Support for audio playback from roAudioResource and roAudioPlayer
  • (app,web) Support for SD and FHD display modes
  • (app) Added TV over-scan emulation options: disabled, only guide lines, enabled
  • (app) Added Open Recent sub-menu
  • (app) Added Close Channel menu option
  • (app) Added macOS standard app menu
  • (brs) Implemented roAudioPlayerEvent and updated roMessagePort to support it
  • (doc) Updated list of emulator limitations

Full Changelog

This version brings the first release of the desktop application and several fixes and improvements:

  • (app) Desktop app for Windows, Linux and macOS
  • (brs) Fixed issues with inline if statements on Parser #252 #253 #309
  • (brs) Implemented global function GetInterface() #42
  • (brs) Added support for an optional parameter on Main() #44
  • (brs) Added RunUserInterface() as alternative for Main() #44
  • (brs) Added missing method maxSimulStreams() on roAudioResource component #26
  • (web) Reduced the app html to be simple, adding links to documentation on the repository
  • (web) Detect and inform user about unsupported browser #40
  • (doc) Reorganized repository folders and documentation for v0.5.0 #43
  • Merged BRS v0.15.0
    • fix(types): Return true for invalid values on RoAssociativeArray#doesExist (#323)
    • fix(types,interp): Automatically convert between Int and Float (#291)
    • feat(extension): Add brs.runInScope (#326)
    • chore(naming): rename src/mocks/ -> src/extensions/ (#325)

Full Changelog

This release has the following changes:

  • Implemented method IsEmpty() for both roArray and roAssociativeArray #316
  • Fixed #320 Making sure DoesExist() returns true even when value of the existing item is invalid
  • Implemented mock components roChannelStore and roChannelStoreEvent #39
  • Implemented mock of Roku_Ads() object #25
  • Implemented support for rgba on DrawObject* methods #27
  • Added option to configure device font,
  • Added new font family "Roboto"
  • Added new font family "Asap" that is similar to Roku default
  • Implemented missing methods for RoUniversalControlEvent #37
  • Changed DrawText to get string from value property of BrsString
  • fix(parse): Include surrounding whitespace in Block nodes(#257)
  • Finished Collision detection implementation (rectangle and circle)
  • Updated roRegion to handle offset properly based on SetWrap() flag
  • Implemented roScreen methods SetPort(), GetPng() and GetByteArray()
  • Fixed for loop issue that should not process loop when step is on the wrong direction of the start-end parameters #310 (#311)

Full Changelog

This releases adds a few font related features as follows:

  • Updated website and added new demo channels
  • Added parameter rgba`` to roScreen.DrawObject()` (only alpha opacity supported) #27
  • Fixed for loop to correctly handle steps sjbarag#315
  • Fixed issue that roCompositor was not clearing the canvas properly
  • Implemented channel close detection
  • Fixed roSprite animation when frame time was configured on roRegion
  • Implemented double buffer support for roScreen and roRegion
  • Added method DrawText() to roRegion
  • Implemented string Tokenize() method
  • Added boxing to the numeric types
  • Merged roBoolean, roDouble, roFloat and roInt implementation #35
  • Made file type identification case-insensistive
  • Added support for .csv extension on zip package
  • Removed roSGNode as RSG is out of scope for the emulator
  • Added support for .gif and .jpeg image extensions
  • Fixed #32 Changed default font loading code to use relative path
  • Fixed #30 Moved the screen clear code to run before the splash

Full Changelog

This releases adds a few font related features as follows:

  • Support for loading custom fonts from the channel zip package.
  • Included Open Sans as the default device font.
  • Finished roFontRegistry and roFont implementation by adding font metrics.
  • Updated license information.

Included a new dependency to opentype.js package to parse font files.

Full Changelog

This is the prototype release of the 2D API emulator, forked from the original BRS project. The following is the list of components implemented (some partially or just mocked):

  • roAudioPlayer.ts (mock)
  • roAudioResource.ts (mock)
  • roBitmap.ts
  • roByteArray.ts
  • roCompositor.ts
  • roDateTime.ts
  • roDeviceInfo.ts
  • roFileSystem.ts
  • roFont.ts
  • roFontRegistry.ts
  • roList.ts
  • roMessagePort.ts
  • roPath.ts
  • roRegion.ts
  • roRegistry.ts
  • roRegistrySection.ts
  • roScreen.ts
  • roSprite.ts
  • roUniversalControlEvent.ts
  • roXMLElement.ts
  • roXMLList.ts

Full Changelog