Skip to content

Releases: MyGUI/mygui

MyGUI3.4.3

06 Aug 21:51
Compare
Choose a tag to compare

Core

  • Allow passing lambdas into MyGUI::newDelegate without explicitly wrapping them into std::function

Widgets

  • Add missing eventClipboardChanged when trying to cut/copy with no text selected
  • Fixed rare crash when changing widget style after it was clicked in the same frame
  • Fixed TabItem left disabled when rapidly switching between tabs
  • Improve performance of the TabControl tabs switching
  • Fixed ignoring "FontHeight" property when "FontName" is also set
  • Move MyGUI::DEFAULT to deprecated, add TabControl::DEFAULT_WIDTH instead

Platforms

  • Fix build with Ogre 14

Tools

  • Minor fixes for macOS
  • Use macOS Command key in tools

Other

  • Switch to C++17
  • Use string_view, unique_ptr and some other stuff
  • Various code improvements, including range base for migration and some other minor stuff
  • Add some missing MYGUI_DONT_USE_OBSOLETE checks for deprecated stuff
  • Remove MYGUI_DEBUG_MODE from headers to avoid issues with mixed debug/release builds

MyGUI3.4.2

09 May 09:50
Compare
Choose a tag to compare

Core

  • Add missing MYGUI_EXPORT for ControllerRepeatClick (was not linking in non-static builds)
  • Use commands for key combinations on EditBox, provide macOS proper bindings
  • Add support for string_view in UString

Widgets

  • ComboBox and ListBox: make "AddItem" use LanguageManager::replaceTags same way it is done for caption properties
  • EditBox: Allow text input while holding Ctrl (Allow key combinations involving CTRL that produce printable characters)

Platforms

  • OpenGL: Fix build with libX11-free wayland setup
  • Ogre: Correct vertex color order for ogre 13

Demos and Tools

  • Use SDL_WINDOWEVENT_FOCUS_GAINED/SDL_WINDOWEVENT_FOCUS_LOST events for better detection when window should have low FPS
  • Fix macOS resources paths, do not use MACOSX_BUNDLE
  • Fix various deprecated or incorrect resources usage

Other

  • Add missing MYGUI_EXPORT to fix C4275 warnings
  • Various minor build fixes and improvements
  • Enable more warnings in MYGUI_HIGH_LEVEL_WARNINGS mode
  • Use GNUInstallDirs to install includes

MyGUI 3.4.1

28 Feb 23:49
Compare
Choose a tag to compare

Core

  • Implement new MSDF font, that lets use render huge fonts without having big textures, also allows using only one texture for all sizes (see Demo_MsdfFont)
  • Add new eventWidgetDestroyed
  • Add support for custom shaders for each render item, used for subskin (so far used only for MSDF fonts)
  • Add support for Unicode code points outside of the Basic Multilingual Plane (code points above 2^16, represented by two UTF-16 code units)
  • Allow std::function in the MyGUI::newDelegate
  • Allow const functions and const classes in the MyGUI::newDelegate
  • Make most getters const
  • Fix UB in RotatingSkin::_rebuildGeometry when all vertices are cropped
  • Fix eventMouseButtonClick being triggered even when mouse is pressed not over widget
  • Fix InputManager::injectMouseMove returning true when mouse is pressed, but there is no focused widget
  • Fix bug with Popup widget being picked by mouse, when it is invisible because of invisible parent
  • Fix Widget::setDepth call making Overlapped child widgets not visible

Widgets

  • ListBox: fix getWidgetByIndex when not all widgets are visible
  • EditBox: fix getFontHeight always returning 0
  • EditBox: fix rare bug with text selection when holding mouse and changing text
  • EditBox: fix scroll position when selecting text below
  • Button: make Button without "normal_checked" skin display "pushed" skin (fixes button visual state when setStateSelected(true) is called)
  • Window: add borders snapping, when resizing it (previously only move was snapping borders)

Platforms

  • Ogre:
    • make it possible to use OGRE_RESOURCEMANAGER_STRICT=1 mode (always specify resource group)
    • other minor performance improvements
    • use Ogre::Renderable to render Gui, this fixes several issues with recent Ogre version
    • fix RTT render with RenderSystem_DirectX11
  • All: make all interfaces const-correct. Warning: custom render platforms outside of MyGUI repo must be updated to match new virtual functions API

Demos and Tools

  • Add new SdlBaseManager, that is used for all platforms base code instead of multiple BaseManager-s with duplicate code
  • Remove no longer needed and no longer used OIS, Win32 and Win32+OIS input systems only SDL2 can is used in demos now

Tools

  • LayoutEditor: fix multi language support

Demos

  • New Demo_MsdfFont
  • Make all demos with 3d render work with the latest Ogre

Other

  • Use GNUInstallDirs to determine where libraries should be installed
  • Use precompiled headers from CMake 3.16, enable precompiled headers on all target platforms
  • Remove many outdated or not used CMake options and scripts

MyGUI 3.4.0

11 Feb 00:03
Compare
Choose a tag to compare

Core

  • Added LanguageManager::getLanguages
  • Fix lost key focus event not being triggered sometimes
  • Fix inconsistency: _riseMouseButtonMove was using Layer coordinates (most of the time). _riseMouseButtonReleased/Pressed were using absolute coordinates.
  • Other InputManager events fixes.
  • Minor MacOS build fixes.
  • Cleaner and much faster logic for adding and removing render items (it was the performance bottleneck when working with many items on screen).

Widgets

  • ScrollBar: Fixed wrong tracking area bug.
  • Button: make Button with key focus (can be set only manually through code) have highlighted state.
  • ItemBox: add possibility to not update ItemBox content when working with items (huge speed boost, when adding/removing many in single frame)
  • EditText: add support for alpha in text and text shadow colours (multiplied with widget's alpha).
  • ItemBox: add options to hide ItemBox scroll bars (same as for ScrollView and EditBox).
  • MultiListBox: slightly advanced and more flexible custom compare function.
  • EditBox: add Ctrl+Left/Right hotkey support (moves cursor to next word).
  • MultiListBox: add eventNotifyItem.

Platforms

  • OpenGL3Platform: Added new rendering platform.
  • OpenGLESPlatform: Added new rendering platform.
  • Emscripten support (works for Ogre and all OpenGL platforms).
  • OgrePlatform: Many minor build-related fixes and imrovements, including newer Ogre support and better CMake scripts.
  • DirectX 11 and OpenGL3: Fixed application window resizing in editors and demos.
  • All platforms: Fix possible stack overflow in ***DataManager::getDataPath.
  • All platforms: better VertexBuffer reallocation strategy for all platforms (in ::lock call, not in ::setVertexCount).
  • All platforms: Various minor fixes and code cleanup.

Resources

  • ResourceManualFont: Added setTexture.
  • ResourceTrueTypeFont: Optimize TrueTupeFont render speed (half getGlyphInfo search time).
  • ResourceTrueTypeFont: Remove no longer needed freetype bytecode bug fix.

Tools

  • LayoutEditor: Fixed "[DEFAULT]" value not being handles properly (was colored white in ComboBox, was saved in layout).
  • LayoutEditor: Other minor fixes and improvements.

Demos

  • Added SDL2 support.

Other

  • Switched to C++11: various related code improvements and cleanups.

MyGUI 3.2.2

26 Jan 15:58
Compare
Choose a tag to compare

Core

  • Fixed eventChangeMouseFocus and eventChangeKeyFocus not being triggered in certain cases.

Widgets

  • ComboBox: Fixed mouse events incorrectly going to the widget below the ComboBox when clicking on an item.
  • ScrollBar: Added button repeat support, ScrollBar buttons will trigger repeatedly so long as the mouse is held down.

Platforms

  • OpenGLPlatform: Added option to use system GLEW library.
  • OgrePlatform: Improved performance of OgreDataManager::isDataExist.
  • OgrePlatform: Fixed build failure regarding boost libraries used by Ogre not being found.

Resources

  • ResourceManualFont: Added API to create a ResourceManualFont in code rather than from XML.

Tools

  • Fixed broken file dialog directory listing on Linux and make sure files are sorted.

MyGUI 3.2.1

19 Aug 18:29
Compare
Choose a tag to compare

Core

  • Added events to clipboard manager: eventClipboardRequested, eventClipboardChanged.
  • Added API access to child LayerNodes.
  • Added pointer to ControllerItem in all controller events.
  • Key focus will be reset when the key focus widget is hidden.
  • Fixed incorrectly detecting double click when clicking on different widgets.
  • Fixed a memory leak when creating or changing widgets in several cases.
  • Fixed a lot of warnings from cppcheck.
  • Other minor fixes.
  • Remove possibility to compile without std::typeinfo (no longer needed for android, MYGUI_RTTI_DISABLE_TYPE_INFO option removed).
  • Remove -msse from compiler flags.

Widgets

  • Added Depth property for child widgets, that can be used for rendering order.
  • Added eventChangeCoord event.
  • Fixed Enabled property not being inherited from parent widgets.
  • ListBox: Added eventNotifyItem for key or mouse press on item widgets.
  • ListBox: Added getWidgetByIndex public API to allow item widget access from outside.
  • EditBox: Fixed several keyboard shortcuts (such as copy & paste) not working when key and text events are injected separately by the user.
  • ImageBox: Added getImageSize method.
  • ScrollBar: Added WheelPage property for mouse wheel scroll step.

SubWidgets

  • PolygonalSkin: Added stroke support for drawing dashed lines (can be seen in UnitTest_Spline).
  • RotatingSkin: Added properties to skin XML.

Resources

  • ResourceTrueTypeFont: Added Distance parameter for margin between glyphs in generated font texture.
  • ResourceImageSet, ResourceTrueTypeFont: Added public API to allow creating in code rather than from XML.
  • ResourceManualFont: Added support to set glyph size separately rather than deriving it from image coordinates.

Skins

  • Added Dark skin (used by default in Tools).
  • Added Black skin.
  • Minor updates to other skins.

Tools

  • Significant improvements to LayoutEditor, FontEditor, ImageEditor and SkinEditor.

Demos

  • Minor updates to several demos.

UnitTests

  • Added DataInfoTest.

Platforms

  • Added Dummy platform.
  • Various fixes for DirectX11 platform.
  • Slightly refactored OpenGL platform.
  • Added DataMemoryStream class.

Other

  • Updated C# wrapper.
  • Switched from LGPL to MIT license.
  • Documentation improvements.

MyGUI v3.2.0

28 Feb 23:48
Compare
Choose a tag to compare

MyGUI v3.2.0

Core

  • MyGUI can be compiled without std::typeinfo.
  • Fixed an alignment bug on non-screen layers (for example on the RTT layer).
  • Fixed bug with widgets on same layer changing their draw order.

Widgets

  • DDContainer: Added a resetDrag method that stops a drag operation programmatically.
  • TextBox: Added optional text shadow.
  • EditBox: Fixed incorrect text display when the text area was lower than the font height.
  • EditBox: Reset Redo changes when text was changed.
  • Canvas: Fixed incorrect destruction.
  • ProgressBar: Fixed a problem that caused the progress value to be displayed incorrectly after the widget was resized.

SubWidgets

  • RotatingSkin: Fixed incorrect display due to swapped UV coordinates.

Resources

  • ResourceTrueTypeFont:
    • Decreased texture memory usage (typically by 50% or more).
    • Improved startup and runtime performance.
    • Added support for Windows FON/FNT bitmap fonts and for embedded SBIT bitmaps in TrueType fonts.
    • Added support for enhanced glyph metrics, typographically correct line spacing, and overlapping glyphs; e.g., "fj".
    • Implemented the ability to specify the code point used as a substitute for missing code points (now defaults to the "Not Defined" glyph instead of "Space").
    • Implemented subpixel positioning.
    • Added useful default values for several properties.
    • Deprecated several properties that are no longer useful.
    • Fixed problems that made it impossible to use whitespace characters other than "Space" and "Tab".
    • Fixed several crashes and memory leaks.
    • Replaced an assertion with a log message when a font cannot be loaded.
  • ResourceManualFont:
    • Added support for enhanced glyph metrics and overlapping glyphs; e.g., "fj".
    • Implemented the ability to specify the code point used as a substitute for missing code points.

Wraps

  • BaseLayout works properly when it's completely empty.

Plugins

  • Updated the BerkeliumWidget plugin.

Tools

  • Various fixes in LayoutEditor.
  • FontViewer:
    • Added support for all of the new features in ResourceTrueTypeFont and ResourceManualFont.
    • Added support for additional font types: *.ttc, *.otf, *.pfa, *.fon, and *.fnt.
    • Redesigned the user interface.
    • Implemented automatic generation of the output filenames when saving.
    • Fixed several crashes and memory leaks.

Platforms

  • Keep solid mode when Ogre is in wireframe.
  • Fixed a few bugs in the OpenGL platform (buffers not cleaned up).
  • New DirectX11 platform prototype.

MyGUI v3.2.0 RC1

Core

  • Skin properties were simplified for more convenient creation in the editor.
  • All widgets events is now multidelegates.
  • Support of right mouse button drag.
  • If MyGUI is built from svn revision log file also contain svn revision (in addition to version).
  • Fixed bug with texture creation for fonts.
  • Other minor additions and bug-fixes.

Managers

  • LanguageManager now replace tags recursively.
  • Fixed bug in LanguageManager when missing language was selected.

Resources

  • Add Layout resource, layouts loaded and parsed only once at first use.
  • All resource files now have "MyGUI_" prefix to avoid naming conflicts.

Widgets

  • VScroll and HScroll replaced with single ScrollBar class.
  • Edit renamed into EditBox.
  • List renamed into ListBox.
  • MenuCtrl renamed into MenuControl.
  • MultiList renamed into MultiListBox.
  • Progress renamed into ProgressBar.
  • StaticImage renamed into ImageBox.
  • StaticText renamed into TextBox.
  • Tab renamed into TabControl.
  • New Window property Moveable.
  • Message moved from Core to Common.
  • MultiListBox now support different modes of columns resizing.
  • Button properties StateCheck and ButtonPressed replaced with single property StateSelected.
  • ListBox and ComboBox now support ToolTip.
  • Menu items can be checked now, tick icon appears.
  • Property AlignVert renamed into VerticalAlignment.
  • Hidden widget lose input and focus.
  • Active elements visualisation in list now properly respond to changes in the list.
  • All text related properties was moved from Widget to TextBox.

SubWidgets

  • All widgets now have Colour property that colours whole widget.
  • RawRect subwidget was removed.
  • Implemented PolygonalSkin sub widget for lines and splines drawing.

Tools

  • SkinEditor added.
  • All skins created in SkinEditor.
  • LayoutEditor now support projects creation.
  • Possibility to create MultiListBox columns in LayoutEditor.
  • Possibility to create PopupMenu\MenuBar in LayoutEditor.
  • Colour selection window added in LayoutEditor.
  • Show skin preview in LayoutEditor.
  • Scaling support in LayoutEditor.
  • Possibility to change widget's type in LayoutEditor.
  • Possibility to add custom properties in LayoutEditor.
  • Removed check for unique name in LayoutEditor (not required any more).
  • FontViewer now same generated font in two formats: as ttf + xml that use freetype in runtime for texture generation and as manual font (texture and glyphs description)

Platforms

  • BasisManager for OpenGL and DirectX now properly display Win32 window content without bugs with offset.
  • Fixed memory leak in OpenGL's and DirectX's DataManager.
  • Possibility to save texture in OpenGL.
  • Fix typo in names vertext -> vertex.

Plugins

  • Awesomium plugin removed (not LGPL anymore).

UnitTests

  • New UnitTest for PolygonalSkin.
  • New UnitTest for RotatingSkin.

CMake

  • New MYGUI_CHECK_MEMORY_LEAKS option for memory leaks detection in debug mode (MSVC only).
  • New MYGUI_USE_PROJECT_FOLDERS option for project folders inside generated solution (MSVC only).
  • UnitTest and Demos options were renames.
  • Win32 input used by default in demos/tools under windows instead of OIS (OIS input still used in other platforms).