Disko Changelog 1.8

New Features & Improvements

General

  • MMSSwitcher: searchingForImage() is now searching for ".taff" extension. This is needed, if only taff files are available on the target platform.
  • MMSPulser: stop() added
  • MMSTimer: after stop(), start() can now be called to set new timeouts
  • MMSTimer::start(): first timeOut will be emitted after firsttime_ms milliseconds
  • diskorc handling changed:
    • MMSRcParser: old parameters touchResX and touchResY removed, new parameter: touchrect.x, touchrect.y, touchrect.w, touchrect.h
    • parameter outputtype can now be set layer specific within <graphicslayer/> and <videolayer/> tag
    • old diskorc's will also be supported
    • For example a <graphics/> section (init disko for OPENGL):
             <graphics>
               <parameter name="backend"                    value="x11"   />
               <graphicslayer>
                  <parameter name="id"                     value="0"     />
                  <parameter name="outputtype"             value="ogl"   />
                  <parameter name="xres"                   value="800"   />
                  <parameter name="yres"                   value="480"   />
               </graphicslayer>
             </graphics>
      
      This works only, if you have compiled disko with GL2/GLX or GLES2/EGL support.
    • new parameter initialload in the section: forces to generate all taff file on dialog load instead of first render. Possibly slows down the application start, but there is no waiting for the taff generation during application runtime.
    • new parameter rotatescreen: used to rotate the application on the output. Currently supported: 0 / 180 degrees.
  • X11 backend no supports XV scaling and compositing using Compiz. Two layer technique for X11 added.

GUI

  • Function: Disko now supports language-based fonts. Example: Use font.name.cn parameter for tags <label/>, <textbox/> and <input/> to set a specific font file for Chinese language. If you switch the language with MSTranslator::setTargetLang(MMSLANG_CN) during runtime MMSGUI will be automatically replace the currently loaded font with a specific chinese font.
  • new pixelformat MMSFB_PF_ABGR added, used for gl2/gles2
  • new graphic backends: OpenGL (GLX Support for X11 and OpenGL ES 2.0 for embedded devices)
  • MMSDialogManager: if you use <menuitem/> tag without any parameters you have now the possibility to define an item specific style (children of the <menuitem/>)

Window and Surface

  • MMSWindow: release images if window will be hidden
  • MMSFBBackEndInterface: new class as thread-safe wrapper interface between MMSGUI and OpenGL/OpenGL ES. If MMSGUI is running in OpenGL/ES mode, we use only one thread which interacts with the real graphic backend.
  • MMSFBSurface: a lot of improvements
  • MMSGUI can now render 3D objects to a MMSFBSurface:
    • first implemented: rectangle, sphere, torus and cylinder
    • default materials added
    • texturing
    • own matrix calculations to enable working for gles2
  • MMSFBSurface: BACKVIDEO/TRIPLE buffering fixed and optimized

Widget

  • MMSImageWidget: new XML parameter "gen_taff" added for <image/> tag, method setGenTaff() added. If you set <image gen_taff="false"/>, the MMSGUI will not write TAFF files to your filesystem for the following attributes:
    • image
    • selimage
    • image_p
    • selimage_p
    • image_i
    • selimage_i
  • MMSTextBoxWidget, MMSLabelWidget, MMSInputWidget: add shadows to text (drawString)
  • MMSMenuWidget: added pulser support
  • MMSMenuWidget: optimized smooth scrolling and selection new values for attributes smooth_scrolling and smooth_selection. Valid values are: "true", "false", "linear", "log", "log_soft_start", "log_soft_end"
  • MMSMenuWidget: newItem() with position parameter and new method deleteItem() added
  • MMSMenuWidget: changed horizontal loop to reflect multiline Menus
  • MMSSliderWidget: slider bar added (XML attributes barimage* and selbarimage*)

Taff Tool

  • MMSTaffFile: added new flag "alphachannel" to indicate, if an image has pixels with alpha values != 0xff. This will be used in the GUI to optimize blittings.
  • taff: -added image:pf ABGR
  • taff: -added parameter for enabling/disabling generation of premultiplied images
  • MMSTaffFile: can now also read from http:// and ftp:// without writing the taff buffer to regular file
  • MMSTaffFile: can now reading PNG images directly from http:// and ftp:// using libpng's read callback function in conjunction with MMSFile
  • MMSTaffFile: now supports palette and grayscale PNG images
  • MMSTAFFFile: new attribute type TAFF_ATTRTYPE_SEQUENCE_MODE and new method hasAttributes()
  • new TAFF type TAFF_ATTRTYPE_COLOR to pack color strings like "#rrggbbaa&quot to a 32 bit value
    • reduce taff filesize
    • better startup performance

Fixes

Disko

  • MMSFBWindowManager: loading mouse cursor corrected for OGL
  • MMSTools: getMDiff() bugfix if start time is greater than end time
  • MMSThread: gap between pthread_create() and running state closed
  • MMSFBFont: multithreading problem fixed, glyph is now on the callers stack
  • mass update: fixing bugs in theme classes in conjunction with taff
  • MMSWidget/MMSWindow: multi-threading problem in refresh() method fixed
  • MMSWindowManager: timing problem (black screen) removed
  • mmsinit: new flag MMSINIT_NO_CONSOLE, which suppresses vt switch and leaves the framebuffer intact (no clear) until the first draw by disko. Useful to keep a splash screen on the device until the application is ready

Build system

  • scons: -added additionally check for XComposite
  • scons: -checks for GLES2 added
  • scons: -enable and disable graphics selectively (new parameters "graphics_backend" / "graphics_outputtype")
  • scons: -select specific pixelformats for a build (new parameter "pixelformats")