New in version 11.0.0
You can find information about existing projects upgrading in the article Upgrade project.
-
Form Builder
- Fix: Name property of a widget was exported twice in form prototype class.
-
New widgets
-
New features
- Support of multi-sample textures in renderers and framebuffers.
- Support of multi-window drawing in renderers.
- IFeedbackEx and its implementations allow to cancel change from now on.
- Controls and forms can prevent their child controls transformation and size change as well as showing, hiding, enabling and disabling via new NotifyOnChildBefore* service notifications and OnChildBefore* events.
- Event bubbling.
-
Added
- Nitisa Extension is now available for Visual Studio 2022 as well.
- 250 unit tests.
- MaxSamples member to RendererCapabilities structure.
- CreateTextureMultisample() template function for creating custom multi-sample textures.
- IBaseTexture interface and partial implementation class CBaseTexture describing common texture properties and methods.
- ITextureMultisample interface describing multi-sample textures.
RefCount
property to IReleasable interface.
setWindow()
method of IRenderer interface has got two more arguments for multi-window drawing support.
- Unary negation operator
-
to Point, PointD, PointF, and PointL.
- Unary negation operator
-
and Reverse()
method which reverse gradient points to Gradient class.
has_area()
method to Rect, RectD, RectF, and RectL.
is_inside()
and is_outside()
methods to Rect, RectD, RectF, and RectL.
- New NotifyOnChildBefore* notification methods to IControlService, IFormService, CControlService, CFormService and CControlSpliceService.
- New OnChildBefore* events to IControl and IForm.
hasParent()
method to IControl and CControl.
CNotifier::Render()
method has got additional argument indicating the control to be rendered last independently on its Z-index or creation order.
hasExtra()
method has been added to IControl and all implementations to allow to check whether widget has extra part (like list of items in drop down) visible at the moment.
isAcceptBubbledEvents()
method has been added to IControl and CControl.
- Extra member
IControl *Target
to MessageMouse, MessageMouseWheel, MessageKey, MessageChar and MessageDropFiles structures.
- UpDown and UpDownEx widgets have got new properties
ChangeByDrag
, DragShift
, DragScale
, DragBase
, DragBaseShift
and DragBaseScale
.
- ITimerListener interface.
- IFeedbackListener and IFeedbackExListener interfaces.
-
Fixed
- Added implementation to
ITexture::setSwizzleRGBA()
methods on Android platform.
- On deleting texture it was automatically detached from current framebuffer of a renderer instead of default one.
- Built-in scroll was ignoring mouse scroll notifications if mouse position was outside its area.
- Scroll using mouse wheel was possible even when is should'nt have been in the ScrollBox widget.
- Creating item in Hierarchy Editor didn't work for ListBox widget.
- Fail to build Linux applications with x86 target platform created with Nitisa Extension for Visual Studio due to incorrect project file.
-
Improved
- Functions CreateProgram(), CreateFramebuffer(), CreateVertexArray() and CreateTexture() now also pass renderer as an argument to
Create()
method of object being creating.
- Lower version renderers (3.1) can change depth stencil and swizzle modes of textures if context version allows it.
- Form now takes into account widget importance when drawing widgets and handling widget events. The importance order is: modal widget, active dialog box, rest ones.
- Timers don't use callback functions anymore. Instead they use ITimerListener interface instance. Also timer identifier is not
int
anymore but it is PlatformHandle
now. Methods of IWindow and IForm related to timers (CreateTimer()
, DeleteTimer()
and ResetTimer()
) have been changed slightly but the meaning and functionality remained the same. All implementations of those interfaces have also been changed accordingly.
- Feedbacks IFeedback and IFeedbackEx don't use callback functions anymore. Instead they use IFeedbackListener and IFeedbackExListener interface instances. Corresponding implementations in CFeedback and CFeedbackEx classes have been changed accordingly.
-
Removed
- Deprecated drawing methods from IRenderer interface and all renderers.
- ClearColor property and
Clear()
method without arguments from IRenderer interface and all renderers.
- IFeedbackService and IFeedbackExService interfaces and CFeedbackService and CFeedbackExService classes as feedbacks don't have services anymore.
On*()
events from IFont interface and its implementations. These events weren't been used anywhere.
OnCreate()
event from IForm interface and its implementations. This event was never used.