API Migration
Major Changes#
- The AppOculus class has been renamed as Oculus class.
- The AppVarjo class has been renamed as Varjo class.
- The AppVive class has been renamed as OpenVR class.
- The AppWall class has been renamed as Wall class.
- The AppSurround class has been renamed as Surround class.
- The AppProjection class has been renamed as Projection class.
- The AppEasyBlend class has been renamed as EasyBlend class.
- The TextureCurve class has been renamed as TextureRamp class.
- The ControlsXPad360 class has transformed into ControlsGamepad class.
- Removed the ControlsSixAxis class. Use ControlsGamepad instead.
- Removed the RenderContext class. Use the corresponding methods of the Render class instead.
- Added a new ControlsGamepad class.
- Added a new Ultraleap class.
- Added a new UltraleapDevice class.
- Added a new UltraleapBone class.
- Added a new UltraleapFinger class.
- Added a new UltraleapHand class.
- Added a new UltraleapArm class.
- Added a new Displays class.
- Added a new InputEvent class.
- Added a new InputEventMouseButton class.
- Added a new InputEventMouseWheel class.
- Added a new InputEventMouseMotion class.
- Added a new InputEventKeyboard class.
- Added a new InputEventText class.
- Added a new InputEventTouch class.
- Added a new InputEventJoyDevice class.
- Added a new InputEventJoyButton class.
- Added a new InputEventJoyAxisMotion class.
- Added a new InputEventJoyPovMotion class.
- Added a new InputEventPadDevice class.
- Added a new InputEventPadButton class.
- Added a new InputEventPadAxisMotion class.
- Added a new InputEventSystem class.
- Added a new EngineWindow class.
- Added a new WindowEvent class.
- Added a new WindowEventGeneric class.
- Added a new WindowEventDrop class.
- Added a new WindowManager class.
- Added a new CustomSystemProxy class.
Breaking Changes#
Revamped Window Manager and Engine Integration#
We have replaced the old CustomApp-based workflow with a new one. A new CustomSystemProxy concept to be used instead of the CustomApp incorporates definition of available functions (windows creation and management, input management, additional functionality like dialogs, clipboard, etc.) along with all necessary overrides. The functionality of some Engine subsystems is to be defined depending on the set of functions made available by the user. This class forms the basis for the operation of WindowManager, Input, GUI, Displays, etc.
A separate proxy implementation is required for each integration environment (SystemProxySDL, SystemProxyQt, SystemProxyWPF, etc.).
The new CustomSystemProxy-based workflow has resolved the following issues:
- inability to create a window without using platform-dependent code;
- inability to create a separate rendering window without any plugins;
- code duplication (the same window creation functionality in all applications);
- only a part of functionality of the main window is available for other windows (GUI, Input, ...);
- inability to obtain information on physical configuration of displays (monitor resolution, main monitor, etc.);
- missing "window" concept and unclear API as a result;
We have simplified our own App* plugins moving similar functionality out and eliminating problems related to integration into applications created on the basis of third-party frameworks (such as inability to use VR in Qt or WPF applications).
Input System#
To unify processing of the mouse and keyboard inputs we have extended the Input class. New functionality covers methods that were used for input in the App class. All keyboard keys and mouse buttons have been moved to this class. Input buffer is now used to avoid missing input events at low framerates. Input events can be received as a buffer, you can create user events and dispatch them to the Engine via Input::sendEvent(). Input event filter is also available enabling you to reject certain input events for the Engine and get necessary information on all input events. This filter is configured via Input::setEventsFilter(). Event filter is also available for WindowManager (see WindowManager::setEventsFilter()) enabling you to receive all events for windows coming from the SystemProxy and filter them out.
Extended Set of Callbacks#
From now on, access to a wide range of input event callbacks is available: MOUSE, KEY, TEXT, TOUCH, and IMMEDIATE_INPUT. Text input callback allows getting a symbol in Unicode format. The user is getting an unsigned char, then it is translated into a proper code (for example: If Shift+q is pressed, then we get “Q”, and not just a key symbol).
New Keys#
The KEY enumeration now contains scan codes of buttons according to the QWERTY layout (indicating physical positions on the keyboard). This ensures standardization of controls to the same layout for every keyboard type, with the same button opening the console everywhere. You can obtain a symbol corresponding to the key taking into account current keyboard layout (QWERTY, QWERTZ, AZERTY), modifiers, etc. via the Input::keyToUnicode() method, or use Input::unicodeToKey() to get a scan code for a certain unicode symbol. To work with keys use Input::isKeyDown(), Input::isKeyPressed(), and Input::isKeyUp().
Moreover, paired keys (Ctrl, Alt, Shift, etc.) are now separated (LEFT_SHIFT, RIGHT_SHIFT, LEFT_ALT, etc.) making it easy to determine any pressed key on QWERTY, QWERTZ, and AZERTY keyboards.
Working with Multiple Displays#
The new Displays class allows getting information about connected displays. You can get the number of screen displays and the index of the main one. With those indices, you can identify their position and size in pixels. Also, there is access to the name and current dpi. Apart from that, there are functions for obtaining available modes for displays. You can get the number of modes and by their index get resolution and refresh rate.
Window Manager#
For windows creation, we have added a new EngineWindow class. All window management operations are performed via this manager enabling you to access any window of the application, group or stack windows, create various dialogs, etc.
A set of samples has been added to Sim SDK to demonstrate various aspects of use (samples/Api/WindowManager).
Interface Plugin Removed#
We have removed the Interface plugin as its functionality has been covered by the updates described above.
App Class (Removed)#
The App class has been removed in the framework of Window Manager and Engine Integration modifications (see details here).
Some of the functionality has been transferred to other classes:
- input-related functions -> Input class.
- window management functions -> WindowManager class.
- application-level functions -> Engine class.
- some mouse-related functions -> Gui class.
Be sure to remove the following include directives referencing the related header file (UnigineApp.h) from all source files of your project.
#include <UnigineApp.h>
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CustomApp Class (Removed)#
The CustomApp class has been removed in the framework of Window Manager and Engine Integration modifications (see details here).
The RenderContext class has been removed. Functions related to render context were transferred to the Render class.
For detailed information on the new CustomSystemProxy-based integration workflow please refer to the Integrating with Frameworks article.
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
|
|
Joystick and Gamepad Controls Changes#
Interaction is now implemented using SDL library. Joysticks and gamepads now work on Windows and Linux and support hot-plugging. So, you can connect your joystick or gamepad before or after creating an instance of the corresponding class.
You can now create multiple ControlsJoystick and ControlsGamepad having the same numbers. For both of these devices you can access device type (wheel, throttle, etc.) and model.
The ControlsXPad360 class has transformed into ControlsGamepad class, which is now responsible for all gamepads, so the ControlsSixAxis class has been removed.
The following updates were made to the ControlsGamepad class:
- Added new device types (wheel, throttle, etc.). See the DEVICE_TYPE_* enum of the Input class and DeviceType.
- Added device model types (XBox 360, XBox One, PS3, etc.). See the MODEL_TYPE_* enum and ModelType.
- Some devices support connection of multiple players (e.g., XBox 360 supports up to four players connected through XBox 360 gamepads). Now you can get this index via PlayerIndex.
- Methods setLeftMotor() and setRightMotor() were removed. Vibration for low-frequency and high-frequency motors is now managed via the new setVibration() method enabling you to control vibration duration as well.
- The getName() now returns the user-friendly name of the gamepad, not the name of its type ("GamePad", "Wheel" etc.)
See the details for other affected classes:
ARTTracker Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
getBodyId( int ) | Renamed as getBodyID( int ). |
getFlyStickId( int ) | Renamed as getFlyStickID( int ). |
getMeaToolId( int ) | Renamed as getMeaToolID( int ). |
getMeaRefId( int ) | Renamed as getMeaRefID( int ). |
getMarkId( int ) | Renamed as getMarkID( int ). |
getHandId( int ) | Renamed as getHandID( int ). |
getHumanId( int ) | Renamed as getHumanID( int ). |
getHumanJointId( int ) | Renamed as getHumanJointID( int ). |
getInertialId( int ) | Renamed as getInertialID( int ). |
BootConfig Class#
Contact Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
setId( int ) | Renamed as setID( int ). |
getId( ) | Renamed as getID( ). |
Controls Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
CONTROLS_SIX_AXIS | Removed. Use CONTROLS_GAMEPAD instead. |
CONTROLS_X_PAD360 | Removed. Use CONTROLS_GAMEPAD instead. |
New Functions
ControlsApp Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
setStateButton( int, int ) | Renamed as setStateMouseButton( int, Input::MOUSE_BUTTON ). |
getStateButton( int ) | Renamed as getStateMouseButton( int ). |
isStateButton( int ) | Renamed as isStateMouseButton( Input::MOUSE_BUTTON ). |
New Functions
ControlsJoystick Class#
The following changes were made for this release:
- Joysticks now support hot-plugging. So, you can connect your joystick before or after create an instance of this class.
- Added new device types (wheel, throttle, etc.). See the DEVICE_TYPE_* enum of the Input class and the DeviceType property.
- Some devices support connection of multiple players (e.g., XBox 360 supports up to four players connected through XBox 360 gamepads). Now you can get this index via the PlayerIndex property.
- Added an initial value for joystick axes (available via getAxisInitialValue(int) ).
- Added a new enum for the states of the POV (Point-of-View) switch or DPad (POV_*)
- Both GuidProduct and GuidInstance were removed. Now you should operate with Guid, Vendor, Product, and ProductVersion. The Guid is created on the basis of vendor and product identifiers and product version number. It enables you to identify device model (Controller XBox One, etc.), however, it will be the same for two identical models.
Curve2d Class#
Decal Class#
Dir Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
mkdir( const char * ) | Behavior changed. |
mkdir( const char *, int ) | Behavior changed. |
Editor Class#
EditorLogic Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
render( const EngineWindowPtr& ) | Set of arguments changed. |
The following changes shoud be made to AppEditorLogic.h and AppEditorLogic.cpp files of your project.
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
AppEditorLogic.h
|
AppEditorLogic.h
|
AppEditorLogic.cpp
|
AppEditorLogic.cpp
|
Engine Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
isDone( ) | Renamed as isQuit( ). |
update( ), render( ), swap( ) | Removed, use iterate( ) instead. |
New Functions
Gui Class#
Due to the fact that now there may be several windows, a concept of the current GUI has come into play, to get the current GUI of the current main window use getCurrent() method:
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
|
|
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
get( ) | Removed. Use getCurrent( ). |
enable( ) | Set of arguments changed. |
render( ) | Set of arguments changed. |
update( ) | Set of arguments changed. |
setMouseButton( int ) | Renamed as setMouseButtons( int ) |
getMouseButton( ) | Renamed as getMouseButtons( ) |
New Functions
- TEXT_PRESSED
- MOUSE_MASK_LEFT
- MOUSE_MASK_MIDDLE
- MOUSE_MASK_RIGHT
- MOUSE_MASK_DCLICK
- MOUSE_BUTTON_MASK
- getAndClearKey( Input::KEY )
- getKey( Input::KEY )
- isUnderCursor( )
- forceSetMouseWheelHorizontal( int )
- getAndClearMouseWheelHorizontal( )
- getMouseWheelHorizontal( )
- forceSetMouseWheel( int )
- getAndClearMouseWheel( )
- getMouseWheel( )
- setMouseShow( bool )
- isMouseShow( )
- setWorldObject( bool )
- isWorldObject( )
- setWinHandle( unsigned long long )
- getWinHandle( )
- setPosition( const Math::ivec2 & )
- getPosition( )
- setSize( const Math::ivec2 & )
- getSize( )
- getWorldGuiInstances( Vector<Ptr<Gui>> & )
- getUnderCursorGui( )
- getGuiIntersection( int, int )
- getFocusGui( )
- getUnderCursorWidget( )
- getWidgetIntersection( int, int )
- isHover( int, int )
- focusLost( )
- focusGained( )
- render( int )
Input Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
getMouseCoordDelta( ) | Renamed as getMouseDeltaPosition( ). |
setMouseCoord( ) | Renamed as setMousePosition( Math::ivec2 ). |
getMouseCoord( ) | Renamed as getMousePosition( ). |
getMouseDelta( ) | Renamed as getMouseDeltaRaw( ). |
New Functions
- MOUSE_BUTTON_UNKNOWN
- MODIFIER_LEFT_SHIFT
- MODIFIER_RIGHT_SHIFT
- MODIFIER_LEFT_CTRL
- MODIFIER_RIGHT_CTRL
- MODIFIER_LEFT_ALT
- MODIFIER_RIGHT_ALT
- MODIFIER_LEFT_CMD
- MODIFIER_RIGHT_CMD
- MODIFIER_NUM_LOCK
- MODIFIER_CAPS_LOCK
- MODIFIER_SCROLL_LOCK
- MODIFIER_ALT_GR
- MODIFIER_ANY_SHIFT
- MODIFIER_ANY_CTRL
- MODIFIER_ANY_ALT
- MODIFIER_ANY_CMD
- KEY_UNKNOWN
- KEY_LEFT_SHIFT
- KEY_RIGHT_SHIFT
- KEY_LEFT_CTRL
- KEY_LEFT_CMD
- KEY_LEFT_ALT
- KEY_RIGHT_ALT
- KEY_RIGHT_CMD
- KEY_RIGHT_CTRL
- KEY_PRINTSCREEN
- KEY_SCROLL_LOCK
- KEY_CAPS_LOCK
- KEY_NUM_LOCK
- KEY_PAUSE
- KEY_MENU
- KEY_NUMPAD_DIGIT_0
- KEY_NUMPAD_DIGIT_1
- KEY_NUMPAD_DIGIT_2
- KEY_NUMPAD_DIGIT_3
- KEY_NUMPAD_DIGIT_4
- KEY_NUMPAD_DIGIT_5
- KEY_NUMPAD_DIGIT_6
- KEY_NUMPAD_DIGIT_7
- KEY_NUMPAD_DIGIT_8
- KEY_NUMPAD_DIGIT_9
- KEY_NUMPAD_DIVIDE
- KEY_NUMPAD_MULTIPLY
- KEY_NUMPAD_MINUS
- KEY_NUMPAD_PLUS
- KEY_NUMPAD_DOT
- KEY_ANY_SHIFT
- KEY_ANY_CTRL
- KEY_ANY_ALT
- KEY_ANY_CMD
- KEY_ANY_UP
- KEY_ANY_LEFT
- KEY_ANY_DOWN
- KEY_ANY_RIGHT
- KEY_ANY_ENTER
- KEY_ANY_DELETE
- KEY_ANY_INSERT
- KEY_ANY_HOME
- KEY_ANY_END
- KEY_ANY_PGUP
- KEY_ANY_PGDOWN
- KEY_ANY_DIGIT_1
- KEY_ANY_DIGIT_2
- KEY_ANY_DIGIT_3
- KEY_ANY_DIGIT_4
- KEY_ANY_DIGIT_5
- KEY_ANY_DIGIT_6
- KEY_ANY_DIGIT_7
- KEY_ANY_DIGIT_8
- KEY_ANY_DIGIT_9
- KEY_ANY_DIGIT_0
- KEY_ANY_MINUS
- KEY_ANY_EQUALS
- KEY_ANY_DOT
- CALLBACK_MOUSE_DOWN
- CALLBACK_MOUSE_UP
- CALLBACK_MOUSE_WHEEL
- CALLBACK_MOUSE_WHEEL_HORIZONTAL
- CALLBACK_MOUSE_MOTION
- CALLBACK_KEY_DOWN
- CALLBACK_KEY_REPEAT
- CALLBACK_KEY_UP
- CALLBACK_TEXT_PRESS
- CALLBACK_TOUCH_DOWN
- CALLBACK_TOUCH_MOTION
- CALLBACK_TOUCH_UP
- CALLBACK_IMMEDIATE_INPUT
- NUM_CALLBACKS
- DEVICE_TYPE_UNKNOWN
- DEVICE_TYPE_GAME_CONTROLLER
- DEVICE_TYPE_WHEEL
- DEVICE_TYPE_ARCADE_STICK
- DEVICE_TYPE_FLIGHT_STICK
- DEVICE_TYPE_DANCE_PAD
- DEVICE_TYPE_GUITAR
- DEVICE_TYPE_DRUM_KIT
- DEVICE_TYPE_THROTTLE
- sendEvent( const Ptr<InputEvent> & )
- getEventsBuffer( int, Vector<Ptr<InputEvent>> & )
- getMouseButtonByName( const char * )
- getMouseButtonName( Input::MOUSE_BUTTON )
- getMouseButtonEvent( Input::MOUSE_BUTTON )
- getKeyByName( const char * )
- getKeyName( Input::KEY )
- getKeyEvent( Input::KEY )
- getTouchEvent( int )
- getTouchEvents( int, Vector<Ptr<InputEventTouch>> & )
- getTouchDelta( int )
- getTouchPosition( int )
- isTouchUp( int )
- isTouchDown( int )
- isTouchPressed( int )
- updateMouseCursor( )
- clearMouseCursorCustom( )
- setMouseCursorCustom( const Ptr<Image> &, int, int )
- setMouseCursorSkinDefault( )
- setMouseCursorSkinSystem( )
- setMouseCursorSkinCustom( const Ptr<Image> & )
- isMouseCursorNeedUpdate( )
- setMouseCursorNeedUpdate( bool )
- isMouseCursorSystem( )
- setMouseCursorSystem( bool )
- isMouseCursorHide( )
- setMouseCursorHide( bool )
- isMouseGrab( )
- setMouseGrab( bool )
- getClipboard( )
- setClipboard( const char * )
- isEmptyClipboard( )
- unicodeToKey( unsigned int )
- keyToUnicode( Input::KEY )
- isModifierEnabled( Input::MODIFIER )
- getForceMousePosition( )
- getMouseButtonEvents( Input::MOUSE_BUTTON, Vector<Ptr<InputEventMouseButton>> & )
- getKeyLocalName( Input::KEY )
- getKeyEvents( Input::KEY, Vector<Ptr<InputEventKeyboard>> & )
- isKeyText( Input::KEY )
- setEventsFilter( int * )
InputGamePad Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
setLeftMotor( float ) | Removed. Use setVibration( float, float, float ) instead. |
setRightMotor( float ) | Removed. Use setVibration( float, float, float ) instead. |
New Functions
Landscape Class#
LandscapeLayerMap Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
ALPHA_BLEND | Removed. Use Landscape::BLENDING_MODE::ALPHA_BLEND instead. |
ADDITIVE | Removed. Use Landscape::BLENDING_MODE::ADDITIVE instead. |
OVERLAY | Removed. Use Landscape::BLENDING_MODE::OVERLAY instead. |
MULTIPLICATIVE | Removed. Use Landscape::BLENDING_MODE::MULTIPLICATIVE instead. |
New Functions
- isCompressed( )
- getMaskFadeAttenuation( int )
- getAlbedoFadeAttenuation( )
- getHeightFadeAttenuation( )
- getMaskBlending( int )
- getAlbedoBlending( )
- getHeightBlending( )
- isEnabledOpacityMask( int )
- isEnabledOpacityAlbedo( )
- isEnabledOpacityHeight( )
- isEnabledMask( int )
- isEnabledAlbedo( )
- isEnabledHeight( )
LandscapeMapFileSettings Class#
New Functions
- isEnabledMaskOpacityTextureCompression( int )
- isEnabledMaskTextureCompression( int )
- isEnabledOpacityHeightTextureCompression( )
- isEnabledAlbedoTextureCompression( )
- getMaskOpacityCompressor( int )
- getMaskCompressor( int )
- isCompressed( )
- getOpacityHeightCompressor( )
- getAlbedoCompressor( )
- getHeightCompressor( )
LandscapeMapFileCompression Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
COMPRESSOR_TYPE_NONE variable. | Removed. Use Landscape::COMPRESSOR_TYPE_NONE instead. |
COMPRESSOR_TYPE_JACKALLESS variable. | Removed. Use Landscape::COMPRESSOR_TYPE_JACKALLESS instead. |
COMPRESSOR_TYPE_LZ4 variable. | Removed. Use Landscape::COMPRESSOR_TYPE_LZ4 instead. |
COMPRESSOR_TYPE_ZLIB variable. | Removed. Use Landscape::COMPRESSOR_TYPE_ZLIB instead. |
run( bool, bool ) | Removed. Use compress( bool, bool ) and decompress( bool, bool ) instead. |
isLoaded( ) | Removed. |
load( const UGUID& ) | Removed. |
isCompressed( ) | Removed. Use LandscapeMapFileSettings::isCompressed() instead. |
New Functions
LeapMotionFinger Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
getId( ) | Renamed as getID( ). |
LeapMotionHand Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
getId( ) | Renamed as getID( ). |
LeapMotion Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
getHandById( int ) | Renamed as getHandByID( int ). |
getFingerFromHandById( int ) | Renamed as getFingerFromHandByID( int ). |
Light Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
setShadowScreenSpaceNoiseTranslucent( float ) | Removed. |
getShadowScreenSpaceNoiseTranslucent( ) | Removed. |
setShadowScreenSpaceViewBias( float ) | Removed. |
getShadowScreenSpaceViewBias( ) | Removed. |
New Functions
- getShadowScreenSpaceTranslucentViewBias( )
- setShadowScreenSpaceTranslucentViewBias( float )
- getShadowScreenSpaceTranslucentDepthPerspectiveCompensation( )
- setShadowScreenSpaceTranslucentDepthPerspectiveCompensation( float )
- getShadowScreenSpaceTranslucentDepth( )
- setShadowScreenSpaceTranslucentDepth( float )
LightEnvironmentProbe Class#
LightPlanarProbe Class#
Material Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
TEXTURE_SOURCE_CURVE | Renamed as TEXTURE_SOURCE_RAMP. |
WIDGET_TEXTURE_CURVE | Renamed as WIDGET_TEXTURE_RAMP. |
getTextureCurve( int ) | Renamed as getTextureRamp( int ). |
getTextureCurveOverride( int ) | Renamed as getTextureRampOverride( int ). |
isEngine( ) | Renamed as isFileEngine( ). |
destroyShaders( ) | Removed. |
New Functions
Materials Class#
Node Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
getTypeId( const char * ) | Renamed as getTypeID( const char * ). |
ObjectGui Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
setBackground( bool ) | Type of argument changed. |
getBackground( ) | Renamed as isBackground( ). |
setDepthTest( bool ) | Type of argument changed. |
getDepthTest( ) | Renamed as isDepthTest( ). |
setMouseShow( bool ) | Type of argument changed. |
getMouseShow( ) | Renamed as isMouseShow( ). |
ObjectGuiMesh Class#
ObjectMeshStatic Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
setLightmapTextureSurface( int, int ) | Renamed as setLightmapSourceSurface( int, int ). |
getLightmapTextureSurface( int ) | Renamed as getLightmapSourceSurface( int ). |
New Functions
- SURFACE_CUSTOM_TEXTURE_MODE_UNIQUE
- SURFACE_CUSTOM_TEXTURE_MODE_SURFACE
- getSurfaceCustomTexture( int )
- setSurfaceCustomTexture( const Ptr<Texture> &, int )
- getSurfaceCustomTexturePath( int )
- setSurfaceCustomTexturePath( const char *, int )
- getSurfaceCustomTextureSourceSurface( int )
- setSurfaceCustomTextureSourceSurface( int, int )
- getSurfaceCustomTextureMode( int )
- setSurfaceCustomTextureMode( ObjectMeshStatic::SURFACE_CUSTOM_TEXTURE_MODE, int )
- isSurfaceCustomTextureEnabled( int )
- setSurfaceCustomTextureEnabled( bool, int )
Player Class#
Due to the fact that now there may be several windows, methods getDirectionFromScreen(), getProjectionFromScreen() и getScreenPosition() were changed. Now there is a group of similar methods available for direction, projection, and position (relative to the current main window, relative to the specified window, relative to the screen):
- getDirectionFromMainWindow(), getDirectionFromWindow(), and getDirectionFromScreen()
- getProjectionFromMainWindow(), getProjectionFromWindow(), and getProjectionFromScreen()
- getMainWindowPosition(), getWindowPosition(), and getScreenPosition()
All coords-related arguments (mouse_x, mouse_y, screen_x, screen_y), are now specified in world coordinates.
There are no default -1 values for coordinates and size arguments anymore to avoid ambiguity.
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
getDirectionFromScreen( ) | Set of arguments changed. |
getDirectionFromScreen( ) | Set of arguments changed. |
New Functions
- getWindowPosition( int &, int &, const Math::Vec3 &, const Ptr<EngineWindow> & )
- getMainWindowPosition( int &, int &, const Math::Vec3 & )
- getProjectionFromWindow( int, int, int, int, const Ptr<EngineWindow> & )
- getProjectionFromMainWindow( int, int, int, int )
- getDirectionFromWindow( int, int, const Ptr<EngineWindow> & )
- getDirectionFromWindow( Math::Vec3 &, Math::Vec3 &, int, int, const Ptr<EngineWindow> & )
- getDirectionFromMainWindow( int, int )
- getDirectionFromMainWindow( Math::Vec3 &, Math::Vec3 &, int, int )
Plugin Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
gui( EngineWindowPtr& ) | Set of arguments changed. |
render( const EngineWindowPtr& ) | Set of arguments changed. |
Property Class#
Render Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
setShadowShaftsLength( float ) | Removed. Use setScreenSpaceShadowShaftsLength( float ) instead. |
getShadowShaftsLength( ) | Removed. Use getScreenSpaceShadowShaftsLength( ) instead. |
setShadowShaftsExposure( float ) | Removed. |
getShadowShaftsExposure( ) | Removed. |
setShadowShafts( bool ) | Removed. Use setScreenSpaceShadowShaftsMode( int ) instead. |
isShadowShafts( ) | Removed. Use getScreenSpaceShadowShaftsMode( int ) instead. |
getColorCorrectionCurve( ) | Renamed as getColorCorrectionRamp( ). |
resetColorCorrectionCurve( ) | Renamed as resetColorCorrectionRamp( ). |
resetColorCorrectionSaturationCurve( ) | Renamed as resetColorCorrectionSaturationRamp( ). |
setLandscapeTerrainCullingBackFace( float ) | Removed. |
getLandscapeTerrainCullingBackFace( ) | Removed. |
setLandscapeTerrainCullingFrustumPadding( float ) | Removed. |
getLandscapeTerrainCullingFrustumPadding( ) | Removed. |
setLandscapeTerrainCullingAggressive( bool ) | Removed. |
isLandscapeTerrainCullingAggressive( ) | Removed. |
setLandscapeTerrainGeometryFadeLods( float ) | Removed. |
getLandscapeTerrainGeometryFadeLods( ) | Removed. |
setMotionBlurNeatSilhouettes( bool ) | Removed. |
isMotionBlurNeatSilhouettes( ) | Removed. |
setSSRNoiseStep( float ) | Removed. |
getSSRNoiseStep( ) | Removed. |
setSSRNoiseRay( float ) | Removed. |
getSSRNoiseRay( ) | Removed. |
setSSRFastTracing( bool ) | Removed. |
getSSRFastTracing( ) | Removed. |
getScreenshot( const Ptr<Image> & ) | Removed. |
getBlack2DArrayTexture( ) | Set of arguments changed. |
getBlack2DTexture( ) | Set of arguments changed. |
getBlack2DUIntTexture( ) | Set of arguments changed. |
getBlack3DTexture( ) | Set of arguments changed. |
getBlackCubeTexture( ) | Set of arguments changed. |
getGray2DArrayTexture( ) | Set of arguments changed. |
getGray2DTexture( ) | Set of arguments changed. |
getGray2DUIntTexture( ) | Set of arguments changed. |
getGray3DTexture( ) | Set of arguments changed. |
getGrayCubeTexture( ) | Set of arguments changed. |
getWhite2DArrayTexture( ) | Set of arguments changed. |
getWhite2DTexture( ) | Set of arguments changed. |
getWhite2DUIntTexture( ) | Set of arguments changed. |
getWhite3DTexture( ) | Set of arguments changed. |
getWhiteCubeTexture( ) | Set of arguments changed. |
New Functions
- PASS_LIGHTMAP_DATA
- CALLBACK_BEGIN_ENVIRONMENT
- CALLBACK_END_ENVIRONMENT
- CALLBACK_BEGIN_SKY
- CALLBACK_END_SKY
- CALLBACK_BEGIN_SSSS
- CALLBACK_END_SSSS
- TONEMAPPER_FILMIC
- TONEMAPPER_ACES
- TONEMAPPER_MIX_ACES_WITH_REINHARD
- TONEMAPPER_REINHARD
- TONEMAPPER_REINHARD_LUMA_BASED
- API_DIRECT3D12
- API_VULKAN
- VSYNC_DISABLE
- VSYNC_STRICT
- VSYNC_ADAPTIVE
- getEnvironmentHazeScatteringMieFresnelPower( )
- getEnvironmentHazeScatteringMieFresnelIntensity( )
- getEnvironmentHazeScatteringMieIntensity( )
- getScreenSpaceShadowShaftsQuality( )
- setScreenSpaceShadowShaftsQuality( int )
- getScreenSpaceShadowShaftsResolution( )
- setScreenSpaceShadowShaftsResolution( int )
- getViewportMain( )
- isColorCorrectionHuePerColor( )
- setColorCorrectionHuePerColor( bool )
- isColorCorrectionSaturationPerColor( )
- setColorCorrectionSaturationPerColor( bool )
- isColorCorrectionByCurves( )
- setColorCorrectionByCurves( bool )
- getVignetteMaskTexturePath( )
- setVignetteMaskTexturePath( const char * )
- getVignetteMaskPower( )
- setVignetteMaskPower( float )
- getVignetteMaskIntensity( )
- setVignetteMaskIntensity( float )
- isVignetteMask( )
- setVignetteMask( bool )
- getNoiseIntensity( )
- setNoiseIntensity( float )
- isNoise( )
- setNoise( bool )
- getChromaticAberrationSamples( )
- setChromaticAberrationSamples( int )
- getChromaticAberrationNoiseIntensity( )
- setChromaticAberrationNoiseIntensity( float )
- getChromaticAberrationIntensity( )
- setChromaticAberrationIntensity( float )
- isChromaticAberration( )
- setChromaticAberration( bool )
- getTonemapperMode( )
- setTonemapperMode( Render::TONEMAPPER )
- getGLContext( )
- getD3D11Context( )
- getD3D11Device( )
- getD3D11Factory( )
- isCloudsFarClipping( )
- setCloudsFarClipping( bool )
- getLandscapeTerrainCullingMap( )
- setLandscapeTerrainCullingMap( float )
- getLandscapeTerrainCullingPaddingPatchCPU( )
- setLandscapeTerrainCullingPaddingPatchCPU( float )
- getLandscapeTerrainCullingPaddingPatchGPU( )
- setLandscapeTerrainCullingPaddingPatchGPU( float )
- getLandscapeTerrainCullingPaddingTriangles( )
- setLandscapeTerrainCullingPaddingTriangles( float )
- getLandscapeTerrainCullingPatchBatching( )
- setLandscapeTerrainCullingPatchBatching( int )
- getLandscapeTerrainCullingPatchResolutionCPU( )
- setLandscapeTerrainCullingPatchResolutionCPU( int )
- getLandscapeTerrainCullingPatchResolutionGPU( )
- setLandscapeTerrainCullingPatchResolutionGPU( int )
- getLandscapeTerrainCullingDepthResolution( )
- setLandscapeTerrainCullingDepthResolution( int )
- isLandscapeTerrainCullingByDepth( )
- setLandscapeTerrainCullingByDepth( bool )
- isLandscapeTerrainCullingFrustumAggressive( )
- setLandscapeTerrainCullingFrustumAggressive( bool )
- getLandscapeTerrainGeometryDetailMaxHeight( )
- setLandscapeTerrainGeometryDetailMaxHeight( float )
- getLandscapeTerrainDetailCompression( )
- setLandscapeTerrainDetailCompression( int )
- isLandscapeTerrainStreamingPerLods( )
- setLandscapeTerrainStreamingPerLods( bool )
- getLandscapeTerrainStreamingThreads( )
- setLandscapeTerrainStreamingThreads( int )
- getLandscapeTerrainVTSamplerFeedbackBufferResolution( )
- setLandscapeTerrainVTSamplerFeedbackBufferResolution( const Math::vec2 & )
- getLandscapeTerrainVTSamplerFeedbackScreenResolution( )
- setLandscapeTerrainVTSamplerFeedbackScreenResolution( int )
- getLandscapeTerrainVTHashSize( )
- setLandscapeTerrainVTHashSize( int )
- getLandscapeTerrainVTHashSizeNumberMistakes( )
- setLandscapeTerrainVTHashSizeNumberMistakes( int )
- getCameraEffectsTemporalFilteringMaxVelocityClamping( )
- setCameraEffectsTemporalFilteringMaxVelocityClamping( float )
- getCameraEffectsTemporalFilteringMinVelocityClamping( )
- setCameraEffectsTemporalFilteringMinVelocityClamping( float )
- getCameraEffectsTemporalFilteringColorClampingIntensity( )
- setCameraEffectsTemporalFilteringColorClampingIntensity( float )
- setSSRAlphaAccumulationMode( int )
- getSSRAlphaAccumulationMode( )
- setSSRNonLinearStepSize( float )
- getSSRNonLinearStepSize( )
- setSSRPerspectiveCompensation( float )
- getSSRPerspectiveCompensation( )
- setSSRRoughnessMipOffset( float )
- getSSRRoughnessMipOffset( )
- setSSRTonemappingGamma( float )
- getSSRTonemappingGamma( )
- getVSync( )
- setVSync( Render::VSYNC )
RenderEnvironmentPreset Class#
Renderer Class#
RenderState Class#
RenderTarget Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
bindColorTexture( int, const Ptr<Texture> & ) | Set of arguments changed. |
bindDepthTexture( const Ptr<Texture> & ) | Set of arguments changed. |
New Functions
- bindUnorderedAccessTexture3D( int, const Ptr<Texture> &, bool, bool, int, int )
- bindUnorderedAccessTextureCubeArray( int, const Ptr<Texture> &, bool, bool, int, int, int )
- bindUnorderedAccessTextureCube( int, const Ptr<Texture> &, bool, bool, int, int )
- bindUnorderedAccessTexture2DArray( int, const Ptr<Texture> &, bool, bool, int, int )
- bindUnorderedAccessTexture2D( int, const Ptr<Texture> &, bool, bool, int )
- bindDepthTextureCubeArray( const Ptr<Texture> &, int, int, int )
- bindDepthTextureCube( const Ptr<Texture> &, int, int )
- bindDepthTexture2DArray( const Ptr<Texture> &, int, int )
- bindDepthTexture2D( const Ptr<Texture> &, int )
- bindColorTexture3D( int, const Ptr<Texture> &, int, int )
- bindColorTextureCubeArray( int, const Ptr<Texture> &, int, int, int )
- bindColorTextureCube( int, const Ptr<Texture> &, int, int )
- bindColorTexture2DArray( int, const Ptr<Texture> &, int, int )
- bindColorTexture2D( int, const Ptr<Texture> &, int )
Shader Class#
ShapeContact Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
setId( int ) | Renamed as setID( int ). |
getId( ) | Renamed as getID( ). |
TerrainDetailMask Class#
TeslaSuit::Suit Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
getId( ) | Renamed as getID( ). |
getSourceMapId( ) | Renamed as getSourceMapID( ). |
Texture Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
All texture sampler flags. | Renamed with the SAMPLER_ prefix. |
All texture format flags. | Renamed with the FORMAT_ prefix, along with a new FORMAT_MIPMAPS flag added. |
isBilinear( ) | Removed. |
setFlags( int ) | Removed. Use setSamplerFlags( int ) instead. |
getFlags( ) | Removed. Use getSamplerFlags( ), getFormatFlags( ), and getAllFlags( ) instead. |
New Functions
UGUID Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
isEmpty( ) | Return value type changed. |
isValid( ) | Return value type changed. |
New Functions
UserInterface Class#
Widget Class#
WidgetCanvas Class#
WidgetExternBase Class#
WidgetScroll Class#
WidgetTreeBox Class#
World Class#
UNIGINE 2.15.1 | UNIGINE 2.16 |
---|---|
getNodeById( int ) | Renamed as getNodeByID( int ). |
Varjo Class#
New Functions
- HMD_TYPE_VR_1
- HMD_TYPE_XR_1
- HMD_TYPE_VR_2
- HMD_TYPE_VR_2_PRO
- HMD_TYPE_VR_3
- HMD_TYPE_XR_3
- HMD_TYPE_AERO
- HMD_TYPE_UNKNOWN
- getHandtrackingOffset( )
- getHMDType( )
- getHMDName( )
- getVelocityTimeDelta( )
- setVelocityTimeDelta( float )
- getVelocityPrecision( )
- setVelocityPrecision( float )
- isVelocityEnabled( )
- setVelocityEnabled( bool )