Releases: PhilMoe/cerberus
v2024-08-06
***** v2024-08-06 *****
FIX: [admob] Make Ads work with Android 14 (API 34). (Author: Phil)
FIX: [docs] Fix ambiguous usage of xhandle, yhandle. (Author: Phil)
FIX: [admob] Fix admob example build error. (Author: Phil)
FIX: [brl.json] Add escaping of tab character to json string parsing. (Author: Phil)
FIX: [Android] Fix config var separator character not working for AndroidManifest (Author: dawlane)
FIX: [TED] Fixed platform plugin not being deployed on Linux. (Author: dawlane)
FIX: [TED] Fixed an issue with block tab stop block adjustment. (Author: dawlane)
FIX: [Language Reference] Fixed zero string delimiter (Author: MikeHart)
MOD: [Android] Changed Android Target to support API 34. (Author: Phil)
MOD: [config.winnt] Change MINGW_PATH to suggested default one. (Author: Phil)
MOD: [Trans] Change handling of config settings with separators. (Author: Phil)
MOD: [Build scripts] Updated the build scripts. (Author: dawlane)
MOD: [Mojo2] Update to shader parser fix. Enforce utf8-ascii upper case. (Author: dawlane)
NEW: [transcc] Add new handling of examples for transcc debugging. (Author: dawlane)
NEW: [Android] Added FileInputStream for Android data files. (Author: Phil)
NEW: [Android] Added default Cerberus Icon for Android. (Author: Phil)
v2023-05-26
***** v2023-05-26 *****
FIX: [mojo2] Fixed DrawList.DrawQuad not drawing correctly when using a material. (Author: MikeHart)
FIX: [mojo2] Fixed alpha blending issue on IOS. (Author: Phil7)
FIX: [mojo] Fixed DrawImage9P spacing and scaling issues. (Author: MikeHart)
FIX: [interpolate] Fixed InterpolateCustomLine returning correct end value. (Author: MikeHart)
FIX: [transcc] Fixed missing help output of builddir parameter. (Author: MikeHart)
FIX: [TRANS] Fixed external libraries not being copied not being copied. (Author: MikeHart)
FIX: [Vec2D] Fixed typo in Vec2D.ToString(). (Author: fightlessbirds)
FIX: [mojo2/Android] Locale problem fix on Android. (Author: xpazr58)
NEW: [mojo2] Added DrawTriangleFan:Void(x:Float, y:Float, vertices:Float[], img:Image, imgX:Float=0.0, imgY:Float=0.0, imgScaleX:Float=1.0, imgScaleY:Float=1.0. (Author: Phil7)
NEW: [mojo2] Added mojo2/DrawTriangleFan_test example. (Author: Phil7)
NEW: [Vec2D] Added Div and Cross Methods. (Author: MikeHart)
NEW: [IOS/Metal] Added new Metalangle for IOS target. (Author: Phil7)
MOD: [CSERVER] Changed the mime type for xml back to text/xml. (Author: MikeHart)
MOD: [HTML5] Modified und more efficient target code for mouseX/Y. (Author: SLOTMAN)
MOD: [HTML5] Add imageSmoothingEnabled for MOJO_IMAGE_FILTERING_ENABLED. (Author: Phil7)
MOD: [GLFW] Updated GLFW to version 3.3.8. (Author: MikeHart)
MOD: [GLFW] Updated stb_truetype.h to version 1.2.6. (Author: MikeHart)
MOD: [docs] Added an example and updated the docs for the brl.events module. (Author: MikeHart)
MOD: [examples] Moved some examples to their own module related sub folders. (Author: MikeHart)
MOD: [transcc] Readded the AGK2 Tier2 builders and the build_target tool. (Author: MikeHart)
MOD: [Vec2D] Renamed some Length methods, to Distance. (Author: MikeHart)
MOD: [Tween] Added Tween.FIT constant, SetFitSlope:Void(s0:Float, s1:Float) to use InterpolateFit. (Author: MikeHart)
MOD: [TED] Restructured and fixed so it can be compiled with QT 6.4.3. (Author: dawlane)
MOD: [build] New build scripts and build docs. (Author: dawlane)
MOD: [MacOs, XCode] It creates now universal builds supporting Intel and M1/M2 machines. (Author: dawlane)
v2022-03-26
***** v2022-03-26 *****
FIX: [TRANS] Adding content to Preprocessors vars used the wrong delimiter. (Author: Phil7)
FIX: [CSERVER] Fixed xml mime type. (Author: MikeHart)
MOD: [TRANSCC] Depreciated AGK Targets. They will become cutsom targets at one point. (Author: MikeHart)
MOD: [TRANSCC] Depreciated the following depreciated builders. PSM, XNA, FLASH, ANDROID_NDK, WINRT. (Author: MikeHart)
MOD: [example] Modified the brl.ReadXml example to show how to parse a XML struture. (Author: MikeHart)
MOD: [CERBERUSX] REMOVED #MOJO_USE_MONKEYSTATE=false Flag due to legal reasons. (Author: MikeHart)
NEW: [BRL.XML] Added Method GetElements:List() to retrieve all root elements. (Author: MikeHart)
v2022-03-11
***** v2022-03-06 *****
FIX: [docs] Added missing entries to the examples pages. (Author: MikeHart)
FIX: [GLFW] Fixing Clipboard not dealing with special chars correctly. (Author: Phil7)
FIX: [HTML5] Fixed still visible CLEAR CONSOLE button when console was hidden. (Author: Grant)
FIX: [HTML5] Fixed Getchar not reporting keys after canvas lost and regain focus. (Author: MikeHart)
MOD: [docs] Modified the Android target page to reflect the new requirements. (Author: MikeHart)
MOD: [CUSTOM target] Fixed using more than 1 variable in a line. (Author: MikeHart)
MOD: [ANDROID] Removed App Compat Library, hence smaller app sizes. (Author: Grant)
MOD: [ANDROID] Replace Android JNI with pure Java (Author: Grant)
MOD: [ANDROID] Permissions for INTERNET and ACCESS_NETWORK_STATE are only added when some modules are imported that need it. (Author: MikeHart)
MOD: [HTML5] Removed code that ignored non standard mapped joysticks. (Author: Grant)
MOD: [ANDROID] Changed target sdk version to 30 and minimum sdk version to 18 by Googles requirements. (Author: Phil7)
MOD: [ANDROID] Moved gradle distribution to 7.0.2 and gradle version to 4.2.0 to remove the requirement to install a java JDK, but unsing the one that comes with Android Studio instead. Also to make it compatible with Macos again. (Author: Phil7)
MOD: [ANDROID/admob] Moved to google_play_services 20.2.0. (Author: Phil7 / MikeHart)
MOD: [TRANSCC] Set SetEnv JAVA_HOME with the JDK_PATH on Macos. (Author: Phil7)
MOD: [TRANSCC] Handle multiple ANDROID_LIBRARY_REFERENCE_n entries on Android. (Author: MikeHart)
MOD: [TRANSCC] Handle XCFrameworks on IOS. (Author: MikeHart)
NEW: [ANDROID/admob] Added #ADMOB_ANDROID_ADS_APPID to set the appid for admob ads. (Author: MikeHart)
NEW: [CUSTOM target] Added getenv and setenv to get/set environment variables. (Author: MikeHart)
NEW: [CUSTOM target] Added set to set custom variables. (Author: MikeHart)
NEW: [CUSTOM target] Added if and endif for conditional script execution (EQ/NE/CS/NS). (Author: MikeHart)
NEW: [CUSTOM target] Added %host% to return the host the script is running on. (Author: MikeHart)
NEW: [ANDROID] Added #ANDROID_MULTISAMPLING_ENABLED to activate up to 4x Multisampling. (Author: Grant)
NEW: [ANDROID] Added SetClipboard and GetClipboard. (Author: Grant)
NEW: [ANDROID] Added #ANDROID_ACCELEROMETER_ENABLED so you can turn off the ACCELEROMETER in Android apps. (Author: MikeHart)
NEW: [ANDROID] Added #ANDROID_LOGCAT_OPTION="[Cerberus]:I *:E" so you can customize the LOGCAT output at build&run time. (Author: MikeHart)
NEW: [HTML5] Added #HTML5_CANVAS_ANTIALIAS to de-/activate canvas antialiasing. (Author: Grant)
NEW: [HTML5] Added CountJoysticks() support. (Author: Grant)
NEW: [examples/mojo2] Added countJoysticksDemo.cxs example. (Author: Grant)
NEW: [mojo.audio] Added CHANNELSTATE_STOPPED, CHANNELSTATE_PLAYING, CHANNELSTATE_PAUSED and CHANNELSTATE_UNKNOWN constants. (Author: MikeHart)
NEW: [brl.xml] Added a XML module. (Author: MikeHart)
NEW: [brl.vec2d] Added a 2d vector module. (Author: MikeHart)
NEW: [mojo2] Added DrawList.DrawRoundedRect:Void(x:Float, y:Float, width:Float, height:Float, radius:Float=10, material:Material=Null). (Author: MikeHart)
NEW: [brl.events] Added an event handling module. (Author: MikeHart)
NEW: [mojo] Added #MOJO_USE_MONKEYSTATE=False to be able to switch to use old monkeystate.
v2021-05-16
These are the changes in version 2021-05-16
FIX: [brl.requesters] Fixed compiling error on Linux. (Author: MikeHart)
FIX: [brl.filesystem] Fixed CreateDir not being able to use cerberus://internal file paths. (Author: MikeHart)
FIX: [docs] Corrected Latest new stuff section on the homepage. (Author: MikeHart)
FIX: [docs/mojo.app] Typo correction. (Author: Phil7)
FIX: [mojo2] Fixed Canvas.ReadPixels only reading the last framebuffer it was rendered to. (Author: MikeHart)
FIX: [mojo/mojo2] Fixed Font.TextHeight returning the values without Glyph.yoffset. (Author: MikeHart)
FIX: [mojo] Fixed mojo.colornames throwing a "blocks nested to deeply" error on MSVC. (Author: MikeHart)
FIX: [html5] "Clear console" Button was still visible when Console was hidden. (Author: MikeHart)
MOD: [mojo/mojo2] Changed DrawText to use TextHeight("") when being y-aligned. (Author: MikeHart)
MOD: [GLFW/MSVC] Upgraded the solution to use MSVC 2019 and SDK 10.x. (Author: MikeHart)
MOD: [agk/buildtarget] Added fixes for TGCs Android template. (Author: MikeHart)
MOD: [CURL] Only copy Windows DLLs to the exe, when the brl.httprequest module is imported. (Author: MikeHart)
MOD: [CURL] Updated to version 7.75. (Author: MikeHart)
NEW: [mojo.input] Added KEY_ALT to the usable key codes. (Author: MikeHart)
NEW: [TRANSCC] Added #GLFW_GCC_SRC_OPTS to compile more source files. (Author: MikeHart)
NEW: [TRANSCC] Added #GLFW_GCC_VPATH_OPTS to add more paths to source files. (Author: MikeHart)
NEW: [TRANSCC/Android] Added bundleRelease to create Android app bundle. (Author: MikeHart)
NEW: [TRANSCC/GLFW] Copy dlls into the build folder (Takes care of the OpenAl dlls). (Author: MikeHart)
NEW: [mojo/Android] Added new soundpool constructor to replace the depreciated one. (Author: MikeHart)
NEW: [HTML5] Added #HTML5_CANVAS_ALPHA to enable the canvas' background alpha channel. (Author: Holzchopf)
NEW: [GLFW/MSVC] Added the ability to create 32 and 64bit apps via #GLFW_GCC_MSIZE_WINNT and MSVC. Will create a new app config setting to cover GCC and MSVC later on. (Author: MikeHart)
NEW: [brl.ini] Added a new Ini handler module, based on Martin Leidel's initial work. (Martin, MikeHart)
v2020-12-05
These are the changes:
FIX: [MOJO/MOJO2] Another try at fixing apps that don't scale right on retina displays. (Author: Phil7)
FIX: [HTTPREQUEST] Fixed compiling error on Linux about missing curl include file. (Author: MikeHart)
MOD: [MOJO/MOJO2] Renamed #GLFW_HIGH_DPI_ENABLED constant, to #GLFW_MACOS_RETINA_ENABLED. (Author: Phil7)
NEW: [MOJO/MOJO2] Added DeviceWindowWidth:Int() and DeviceWindowHeight:Int() to retrieve to retrieve the size of a windows in desktop unit sizes. (Author: Phil7)
NEW: [MOJO/MOJO2] Added DrawImageRect:Void( image:Image,tx:Float,ty:Float,sourceX:Int,sourceY:Int,sourceWidth:Int,sourceHeight:Int,rz:Float=0,sx:Float=1,sy:Float=1 ) (Author: Martin)
v2020-11-15
These are the changes:
FIX: [TRANSCC] With the GLFW target and MingW, you can build 32bit again. (Author: MikeHart)
FIX: [TRANSCC] Fixed copying sub directories with the INCLUDE statement. (Author: MikeHart)
FIX: [TRANSCC] Fixed TRANSCC to change canvas sizes, title, scale mode and canvas flag every time you build your app. (Author: MikeHart)
FIX: [TRANSCC] Added check for space chars in source filename to avoid weird errors regarding global vars. (Author: Phil7)
FIX: [rebuild script] Changed minimum version on OSX for building TRANS via the rebuildall script. (Author: dawlane)
FIX: [HTTPREQUEST] Fixed some flaws in the glfw target. (Author: Github user NEOJAW)
FIX: [MOJO2] fix in image.loadframes. (Author: Rich)
FIX: [DOCS] FIXED example in httprequest.cerberusdoc (Author: Holzchopf)
FIX: [MOJO/MOJO2] Fixed apps don't scale right on retina displays. (Author: Phil7)
MOD: [TRANSCC] With the GLFW target, resource files are now compiled everytime, so a change will be always taken in. (Author: MikeHart)
MOD: [MOJO/MOJO2] Font.TextHeight will return the actual height of the string now if one is given. (Author: MikeHart)
MOD: [brl.filesystem] CreateDir now creates paths automatically, that includes more than one sub directory. (Author: MikeHart)
MOD: [MOJO/MOJO2] Removed an extra call to retrieve the window size on GLFW BeginRender. Only the size of the framebuffer is relevant now. (Author: MikeHart)
MOD: [MAKEDOCS] CHANGED makedocs now resolves links for json output (Author: Holzchopf)
MOD: [IOS] Changed using a launch image to a launch screen storyboard so you get the full resolution on all IOS devices. (Author: Phil7)
MOD: [IOS] Changed minimum IOS version to 9.0. (Author: Phil7)
MOD: [DESKTOP] Updated GLFW to version 3.3.2 (Author: MikeHart)
NEW: [TRANSCC] New config setting #GLFW_COPY_LIBS_32 to copy 32bit DLLs into the GCC build. (Author: MikeHart)
NEW: [TRANSCC] Added TARGETPATH option to specify more target directories. (Author: MikeHart)
NEW: [TRANSCC] Added custom targets with cxbuild.txt script. (Author: MikeHart)
NEW: [TARGETS] AGK Android (Google). (Author: MikeHart)
NEW: [examples] mojo2/2Din3D. (Author: MikeHart)
NEW: [examples] mojo2/asyncimageloading. (Author: MikeHart)
NEW: [HTML5] Added mousewheel event on the html5 target - MouseZ() works now. (Author: Github user NEOJAW)
NEW: [MAKEDOCS] Added export of decls.json to makedocs. (Author: Holzchopf)
NEW: [MAKEDOCS] Added index entry decls CHANGED json builder now transforms markdown (Author: Holzchopf)
NEW: [MOJO] Added DrawTextBox:Void( textLines:String[],x:Float,y:Float,width:Float,height:Float,xhandle:Float=0.0,yhandle:Float=0.0 ) (Author: MikeHart)
NEW: [MOJO2] Added DrawList.DrawTextBox:Void( textLines:String[],x:Float,y:Float,width:Float,height:Float,xhandle:Float=0.0,yhandle:Float=0.0 ) (Author: MikeHart)
NEW: [MOJO/MOJO2] Added #GLFW_HIGH_DPI_ENABLED=1 constant, so GLFW apps can use the full high DPI resolution. (Author: Phil7)
NEW: [Modules] Added the new brl.timer module. (Author: MikeHart)
v2020-05-09
Changes are:
FIX: [DOCS/brl] Fixed missing entry for the admob, cerberusstore, gamecenter, fielpath, filesystem, url, tween, pool, process and markdown modules. (Author: MikeHart)
FIX: [DOCS/brl.databuffer] Fixed some typos. (Author: MikeHart)
FIX: [DOCS/cerberus] Fixed missing entry for the deque module. (Author: MikeHart)
FIX: [DOCS/cerberus.stack] Fixed some typos. (Author: MikeHart)
FIX: [DOCS/os] Fixed description of the StripExt statement. (Author: MikeHart)
FIX: [mojo] Fixed padded usage in Font.Load:Font(url:String, flags:Int=Image.DefaultFlags) (Author: Rich)
FIX: [mojo2] Fixed padded usage in Font.Load:Font(url:String, flags:Int=Image.Filter ) (Author: Rich)
FIX: [mojo2] Fixed padded parameter in Image.LoadFrames:Image. (Author: Rich)
FIX: [examples] Fixed mak/bbgametest -> missing z parameter in MouseEvent call. (Author: MikeHart)
FIX: [examples] Fixed mak/dynamicimage -> faulty fullscreen switch. (Author: MikeHart)
Fix: [TRANSCC] Fixed TRANSCC not being able to install on an Android device when creating a release build on Linux and OSX. (Author: Phil7)
Fix: [TRANSCC] Fixed TRANSCC not reporting the correct line number in certain cases when preprocessor statements were used.. (Author: dawlane)
MOD: [cerberusstore] updated the underlying code to support the newest Google version. (Author: Rich)
MOD: [DOCS/interpolate] Fixed and added some images. (Author: Holzchopf)
MOD: [mojo] Added filter param to Font.Load:Font(url:String, flags:Int=Image.DefaultFlags ) (Author: Rich)
MOD: [mojo2] Added filter param to Font.Load:Font(url:String, flags:Int=Image.Filter ) (Author: Rich)
MOD: [mojo/mojo2] Font.Load(url:String, flags:Int=... ) accept now .FNT files and don't add a .TXT anymore. (Author: MikeHart)
MOD: [TRANSCC] Changed TRANSCC in a way so modules can add Android libs and lift up versions more easily. (Author: Rich)
MOD: [TRANSCC] Data file filters are not being case sensitive anymore. (Author: MikeHart)
MOD: [rebuildall.ps1] Reworked the build script for using MS Visual C++ 2017 Community edition. (Author: dawlane)
MOD: [rebuildall.sh] Reworked the build script. (Author: dawlane)
MOD: [building.txt] Updated the information. (Author: dawlane)
NEW: [cerberus.interpolate] Added InterpolateCustomLine:Float(dataY:Float[], pX:Float ). (Author: Rich)
NEW: [cerberus.interpolate] Added InterpolateBackEaseIn:Float(pY0:Float, pY1:Float, pX:Float). (Author: Rich)
NEW: [cerberus.interpolate] Added InterpolateBackEaseIn:Float(pY0:Float, pY1:Float, pX:Float). (Author: Rich)
NEW: [cerberus.interpolate] Added InterpolateBackEaseOut:Float(pY0:Float, pY1:Float, pX:Float). (Author: Rich)
NEW: [cerberus.interpolate] Added InterpolateBackEaseInOut:Float(pY0:Float, pY1:Float, pX:Float). (Author: Rich)
NEW: [cerberus.interpolate] Added InterpolateElasticEaseIn:Float(pY0:Float, pY1:Float, pX:Float). (Author: Rich)
NEW: [cerberus.interpolate] Added InterpolateElasticEaseOut:Float(pY0:Float, pY1:Float, pX:Float). (Author: Rich)
NEW: [cerberus.interpolate] Added InterpolateElasticEaseInOut:Float(pY0:Float, pY1:Float, pX:Float). (Author: Rich)
NEW: [cerberus.interpolate] Added InterpolateBounceEaseIn:Float(pY0:Float, pY1:Float, pX:Float). (Author: Rich)
NEW: [cerberus.interpolate] Added InterpolateBounceEaseOut:Float(pY0:Float, pY1:Float, pX:Float). (Author: Rich)
NEW: [cerberus.interpolate] Added InterpolateBounceEaseInOut:Float(pY0:Float, pY1:Float, pX:Float). (Author: Rich)
NEW: [brl.tween] Added a module to support easy tweening. (Author: Rich)
NEW: [TRANSCC] Added app icon creation right into TRANSCC. (Author: Rich)
NEW: [TRANSCC] Added the Include directive to add files/directories to the build folder (GLFW/STDCPP). (Author: MikeHart)
NEW: [IOS] Added #IOS_APP_ICON to set icon of the app. (Author: Rich)
NEW: [ANDROID] Added #ANDROID_APP_ICON to set icon of the app. (Author: Rich)
NEW: [FLASH] Added #FLASH_APP_ICON to set the favicon of the browser tab. (Author: Rich)
NEW: [HTML5] Added #HTML5_APP_ICON to set the favicon of the browser tab. (Author: Rich)
NEW: [HTML5] Added #HTML5_APP_TITLE to be able to set the title of the browser tab. (Author: MikeHart)
NEW: [HTML5] Added #HTML5_CANVAS_WIDTH and #HTML5_CANVAS_HEIGHT control the size of the html5 canvas. (Author: MikeHart)
NEW: [HTML5] Added #HTML5_APP_FILENAME to set the output filename. (Author: MikeHart)
NEW: [HTML5] Added #HTML5_CANVAS_RESIZE_MODE to be able to set the CANVAS resize mode. (Author: MikeHart)
NEW: [HTML5] Added #HTML5_CONSOLE_SHOW to be able to hide the splitter and console area. (Author: MikeHart)
NEW: [rebuildall_macos.sh] New script to build CX on OSX right from the github repository. (Author: dawlane)
v2019-10-13
The changes are:
FIX: [ANDROID] change file permission of gradlew in template. (Author: Dawlane)
MOD: [ANDROID] added 64bit libs to the target, to support Googles changes in August 2019.
FIX: [TRANS] Fixed CopyFile for Linux to preserve file permissions. (Author: Dawlane)
FIX: [TED] Fixed symlinks opening a second file when DebugStop is used. (Author: Dawlane)
MOD: [TED] Another attempt at fixing the capitalization of the API.
MOD: [TED] Moved Open Project from the BUILD menu to the FILE menu.
MOD: [TED] Replaced Options dialog with a similar one like from Dawlane's version of TED.
This dialog is much smaller and so can be displayed on small screens two.
FIX: [TED] CTRL+PgDown and CTRL+PgUP now works on Linux to switch between open code tabs.
MOD: [TRANS/GLFW] On Windows you can add an app icon (.ico file) now via the new #GLFW_APP_ICON preprocessor setting.
FIX: [OSX] Recompiled the launcher as a 64bit app, so it is compatible with OSX Catalina (10.15.x).
FIX: [MOJO1] Fixed missing usage of frame parameter in DrawImage9P. (Author: Rich)
MOD: [WIN8/WINPHONE8] Depreciated these targets.
If you need them, move them out of the targets/depreciated folder.
MOD: [TRANS/ANDROID] Reactivated logcat filtering.
NEW: [Examples/MOJO2] DrawPrimitives2 shows how to use the DrawPrimitives method to draw several images at once.
v2019-05-05
The changes are:
MOD: [ANDROID] Changed MIN_SDK back to 16 like it was before.
MOD: [DOCS] Added A-Z shortcuts on top of indexes.
MOD: [Trans/ANDROID] Release builds are installed automatically now.
FIX: [AGK] Fixed docs creation to be compatible with the latest MakeDocs.
FIX: [MAKEDOCS] Fixed brl.markdown bug.
FIX: [TED] Fixed fixed displaying an iframe element in the docs. (Author: Dawlane)
FIX: [TED] Fixed scaling issues when displaying images.
NEW: [TED] Added overwrite mode. Just press the insert key to toggle it.
NEW: [MOJO2] Added Image.LoadFrames:Image.
NEW: [MOJO.APP] Added SetDeviceWindowIcon( _path:String ).
NEW: [MOJO.APP] Added SetDeviceWindowTitle( _title:String ).
NEW: [MOJO.APP] Added SetDeviceWindowSize( _width:Int, _height:Int ).
NEW: [MOJO.APP] Added SetDeviceWindowPosition( _x:Int, _y:Int ).
NEW: [MOJO.APP] Added SetDeviceWindowSizeLimits:Void( _minWidth:Int, _minHeight:Int, _maxWidth:Int, _maxHeight:Int )
NEW: [MOJO.INPUT] Added SetMousePos:Void( _x:Int, _y:Int ).
NEW: [MOJO.INPUT] Added SetClipboard:Void( _text:String ).
NEW: [MOJO.INPUT] Added GetClipboard:String().
NEW: [CERBERUS.INTERPOLATE] New module.
NEW: [MOJO.COLOR] New module.