API Migration
Major Changes#
- Removed the SSLSocketPlugin class.
- Added a new AnimationBind class.
- Added a new AnimationBindMaterial class.
- Added a new AnimationBindNode class.
- Added a new AnimationBindPropertyParameter class.
- Added a new AnimationBindRuntime class.
- Added a new AnimationCurve class.
- Added a new AnimationCurveBool class.
- Added a new AnimationCurveDouble class.
- Added a new AnimationCurveFloat class.
- Added a new AnimationCurveInt class.
- Added a new AnimationCurveQuat class.
- Added a new AnimationCurveScalar class.
- Added a new AnimationCurveString class.
- Added a new AnimationCurveUGUID class.
- Added a new AnimationFrame class.
- Added a new AnimationMask class.
- Added a new AnimationModifier class.
- Added a new AnimationModifierBones class.
- Added a new AnimationModifierBool class.
- Added a new AnimationModifierDVec2 class.
- Added a new AnimationModifierDVec3 class.
- Added a new AnimationModifierDVec4 class.
- Added a new AnimationModifierDouble class.
- Added a new AnimationModifierFVec2 class.
- Added a new AnimationModifierFVec3 class.
- Added a new AnimationModifierFVec4 class.
- Added a new AnimationModifierFloat class.
- Added a new AnimationModifierIVec2 class.
- Added a new AnimationModifierIVec3 class.
- Added a new AnimationModifierIVec4 class.
- Added a new AnimationModifierInfo class.
- Added a new AnimationModifierInt class.
- Added a new AnimationModifierMat4 class.
- Added a new AnimationModifierNode class.
- Added a new AnimationModifierQuat class.
- Added a new AnimationModifierScalar class.
- Added a new AnimationModifierString class.
- Added a new AnimationModifierTrack class.
- Added a new AnimationModifierUGUID class.
- Added a new AnimationModifierVec2 class.
- Added a new AnimationModifierVec3 class.
- Added a new AnimationModifierVec4 class.
- Added a new AnimationObject class.
- Added a new AnimationObjectMaterial class.
- Added a new AnimationObjectNode class.
- Added a new AnimationObjectPropertyParameter class.
- Added a new AnimationObjectRuntime class.
- Added a new AnimationObjectTrack class.
- Added a new AnimationPlayback class.
- Added a new AnimationTrack class.
- Added a new Animations class.
- Added a new BonesRetargeting class.
- Added a new NodeAnimationPlayback class.
- Added a new EventConnection class.
- Added a new EventConnections class.
- Added a new InputEventVRAxisMotion class.
- Added a new InputEventVRButton class.
- Added a new InputEventVRButtonTouch class.
- Added a new InputEventVRDevice class.
- Added a new InputVRBaseStation class.
- Added a new InputVRController class.
- Added a new InputVRDevice class.
- Added a new InputVRHead class.
- Added a new InputVRTracker class.
- Added a new VR class.
- Added a new VREyeTracking class.
- Added a new VRMarkerObject class.
- Added a new VRMixedReality class.
Breaking Changes#
Callbacks to Events#
We have reworked the core mechanism of tracking various events everywhere across the Engine, as the callbacks-based system used up to this release had a number of issues and weak points, including:
- Crashes when subscribing with a class member function in case the subscribed object was deleted (a frequent case as users often forget to unsubscribe).
- Users had to keep and track all signals and handlers to manually unsubscribe properly.
- Signal signature unclear from API, without type checking, making it possible to subscribe with virtually any signature, then compile successfully (even with some mistakes), and get invalid data at runtime. No compiler notifications in case of any API changes, again resulting in getting invalid data at runtime.
- Calls to MakeCallback() and typecasting for lambda expressions were required in order to use addCallback() functions.
Introducing the new Event System to replace old callbacks with improved reliability and flexibility, bringing you the following features:
- New Events have strict type checking for function signatures. It is now clearly seen how many arguments and which exactly a callback (event handler) function requires.
- Compile-time checking determines whether argument types match event types or not.
- Simpler subscription to events with lambda functions. There is no need to perform internal type conversions.
- The new EventConnection handler does not require to unsubscrube manually. It automatically breaks any connection in the destructor.
- More flexibility: you can temporarily disable certain events to perform certain actions without triggering them, as well as you can toggle on and off just a particular connection (EventConnection).
- Batch management: a set of different subscriptions can be linked to a single EventConnections instance, enabling you to unsubscribe from all of them in a single function call.
The new Event System will require manual migration. But, there's nothing to worry about as the entire process involves locating all instances of addCallback in your code and replacing them with the new approach according to the instructions geven below. For a medium-sized project this can be completed by one developer in a few days.
BoundBox Class#
Image Class#
UNIGINE 2.17 | UNIGINE 2.18 |
---|---|
createMipmaps( Image::FILTER, float, float, float ) | Set of arguments changed. |
New Functions
ImageConverter Class#
LightEnvironmentProbe Class#
UNIGINE 2.17 | UNIGINE 2.18 |
---|---|
setRaymarchingDiffuseReconstructionSamplesScreen( int ) | Removed. |
getRaymarchingDiffuseReconstructionSamplesScreen( ) | Removed. |
setRaymarchingDiffuseReconstructionSamplesCubemap( int ) | Removed. |
getRaymarchingDiffuseReconstructionSamplesCubemap( ) | Removed. |
setRaymarchingSpecularReconstructionSamplesScreen( int ) | Removed. |
getRaymarchingSpecularReconstructionSamplesScreen( ) | Removed. |
setRaymarchingSpecularReconstructionSamplesCubemap( int ) | Removed. |
getRaymarchingSpecularReconstructionSamplesCubemap( ) | Removed. |
New Functions
- LAST_STEP_MODE_ENVIRONMENT_PROBE
- LAST_STEP_MODE_ONLY_SKY
- getGrabEnvironmentReflectionIntensity( )
- setGrabEnvironmentReflectionIntensity( float )
- getGrabEnvironmentAmbientIntensity( )
- setGrabEnvironmentAmbientIntensity( float )
- getRaymarchingSpecularNonLinearStepSize( )
- setRaymarchingSpecularNonLinearStepSize( float )
- getRaymarchingSpecularPerspectiveCompensation( )
- setRaymarchingSpecularPerspectiveCompensation( float )
- getRaymarchingSpecularReconstructionSamples( )
- setRaymarchingSpecularReconstructionSamples( int )
- getRaymarchingSpecularThresholdBinarySearch( )
- setRaymarchingSpecularThresholdBinarySearch( float )
- getRaymarchingDiffuseNonLinearStepSize( )
- setRaymarchingDiffuseNonLinearStepSize( float )
- getRaymarchingDiffusePerspectiveCompensation( )
- setRaymarchingDiffusePerspectiveCompensation( float )
- getRaymarchingDiffuseReconstructionSamples( )
- setRaymarchingDiffuseReconstructionSamples( int )
- getRaymarchingDiffuseThresholdBinarySearch( )
- setRaymarchingDiffuseThresholdBinarySearch( float )
- getRaymarchingAmbientOcclusionRadius( )
- setRaymarchingAmbientOcclusionRadius( float )
- getRaymarchingAmbientOcclusionIntensity( )
- setRaymarchingAmbientOcclusionIntensity( float )
- getRaymarchingLastStepMode( )
- setRaymarchingLastStepMode( LightEnvironmentProbe::LAST_STEP_MODE )
LightVoxelProbe Class#
LightWorld Class#
Material Class#
UNIGINE 2.17 | UNIGINE 2.18 |
---|---|
fetchShader( Render::PASS ) | Removed. |
fetchShader( Render::PASS, Node::TYPE ) | Removed. |
fetchShader( const char * ) | Removed. |
fetchShader( const char *, int ) | Removed. |
New Functions
- TEXTURE_SOURCE_GBUFFER_LIGHTMAP
- TEXTURE_SOURCE_INDIRECT_LIGHTS
- TEXTURE_SOURCE_LIGHTING_INFORMATION_LOST
- TEXTURE_SOURCE_INDIRECT_DIFFUSE
- TEXTURE_SOURCE_INDIRECT_SPECULAR
- TEXTURE_SOURCE_MIN_DISTANCE
- TEXTURE_SOURCE_OPACITY_DEPTH_REPROJECTION_BACK
- compileShaders( bool )
- getShaderForce( const char * )
- getShaderForce( const char *, int )
- getShaderForce( Render::PASS )
- getShaderForce( Render::PASS, int )
- getShaderAsync( const char * )
- getShaderAsync( const char *, int )
- getShaderAsync( Render::PASS )
- getShaderAsync( Render::PASS, int )
Materials Class#
Node Class#
ObjectMeshSkinned Class#
New Functions
- isNeedUpdate( )
- copyBoneTransforms( const Ptr<ObjectMeshSkinned> & )
- FRAME_USES_NONE
- FRAME_USES_POSITION
- FRAME_USES_ROTATION
- FRAME_USES_SCALE
- FRAME_USES_ALL
- FRAME_USES_POSITION_AND_ROTATION
- FRAME_USES_POSITION_AND_SCALE
- FRAME_USES_ROTATION_AND_SCALE
- addRetargetedAnimation( const Ptr<Mesh> &, const Ptr<BonesRetargeting> &, const char * )
- addRetargetedAnimation( const char *, const Ptr<BonesRetargeting> & )
- getIKChainTolerance( int )
- setIKChainTolerance( float, int )
- getIKChainNumIterations( int )
- setIKChainNumIterations( int, int )
- getIKChainEffectorWorldRotation( int )
- setIKChainEffectorWorldRotation( const Math::quat &, int )
- getIKChainEffectorRotation( int )
- setIKChainEffectorRotation( const Math::quat &, int )
- isIKChainUseEffectorRotation( int )
- setIKChainUseEffectorRotation( bool, int )
- getIKChainPoleWorldPosition( int )
- setIKChainPoleWorldPosition( const Math::Vec3 &, int )
- getIKChainPolePosition( int )
- setIKChainPolePosition( const Math::Vec3 &, int )
- isIKChainUsePoleVector( int )
- setIKChainUsePoleVector( bool, int )
- getIKChainTargetWorldPosition( int )
- setIKChainTargetWorldPosition( const Math::Vec3 &, int )
- getIKChainTargetPosition( int )
- setIKChainTargetPosition( const Math::Vec3 &, int )
- getIKChainBone( int, int )
- removeIKChainBone( int, int )
- getIKChainNumBones( int )
- addIKChainBone( int, int )
- getIKChainWeight( int )
- setIKChainWeight( float, int )
- isIKChainEnabled( int )
- setIKChainEnabled( bool, int )
- getIKChain( int )
- getNumIKChains( )
- removeIKChain( int )
- addIKChain( )
- clearVisualizeIKChain( )
- removeVisualizeIKChain( int )
- addVisualizeIKChain( int )
- getBoneFrameUses( int, int )
- setBoneFrameUses( int, int, ObjectMeshSkinned::FRAME_USES )
PackageUng Class#
Render Class#
UNIGINE 2.17 | UNIGINE 2.18 |
---|---|
setLightsInterleaved( bool ) | Removed. Use setDirectLightingInterleaved( bool ) instead. |
isLightsInterleaved() | Removed. Use isDirectLightingInterleaved( ) instead. |
setLightsInterleavedCatmullResampling( bool ) | Removed. Use setDirectLightingInterleavedCatmullResampling( bool ) instead. |
isLightsInterleavedCatmullResampling() | Removed. Use isDirectLightingInterleavedCatmullResampling( ) instead. |
setLightsInterleavedColorClamping( int ) | Removed. Use setDirectLightingInterleavedColorClamping( int ) instead. |
getLightsInterleavedColorClamping() | Removed. Use getDirectLightingInterleavedColorClamping( ) instead. |
setLightsInterleavedSamples( int ) | Removed. Use setDirectLightingInterleavedSamples( int ) instead. |
getLightsInterleavedSamples() | Removed. Use getDirectLightingInterleavedSamples( ) instead. |
setDenoiseDenoiseByVelocityThreshold( float ) | Removed. |
getDenoiseDenoiseByVelocityThreshold() | Removed. |
createCacheTextures( ) | Removed. |
New Functions
- SHADERS_COMPILE_MODE_ASYNC
- SHADERS_COMPILE_MODE_FORCE
- SHOW_LIGHTING_MODE_DISABLED
- SHOW_LIGHTING_MODE_STATIC
- SHOW_LIGHTING_MODE_DYNAMIC
- SHOW_LIGHTING_MODE_ADVANCED
- CAMERA_MODE_CLASSIC
- CAMERA_MODE_PHYSICALLY_BASED
- EXPOSURE_MODE_DISABLED
- EXPOSURE_MODE_LOGARITHMIC
- EXPOSURE_MODE_QUADRATIC
- EXPOSURE_MODE_CURVE_BASED
- PASS_MIXED_REALITY_BLEND_MASK_COLOR
- getLocalTonemapperLumaBlurredIntensity( )
- setLocalTonemapperLumaBlurredIntensity( float )
- getLocalTonemapperTargetMiddleGray( )
- setLocalTonemapperTargetMiddleGray( float )
- getLocalTonemapperEffectOnDarkAreas( )
- setLocalTonemapperEffectOnDarkAreas( float )
- getLocalTonemapperTonemappingIntensity( )
- setLocalTonemapperTonemappingIntensity( float )
- getLocalTonemapperDepthThreshold( )
- setLocalTonemapperDepthThreshold( float )
- getLocalTonemapperNumBlurIterations( )
- setLocalTonemapperNumBlurIterations( int )
- isLocalTonemapper( )
- setLocalTonemapper( bool )
- resetAutoExposureRamp( )
- getAutoExposureRamp( )
- getDenoiseDenoiseMaskInformationLostBoost( )
- setDenoiseDenoiseMaskInformationLostBoost( float )
- getDenoiseDenoiseMaskVelocityThreshold( )
- setDenoiseDenoiseMaskVelocityThreshold( float )
- getDenoiseHotPixelsFixIntensity( )
- setDenoiseHotPixelsFixIntensity( float )
- getDenoiseInformationLostFixFlicker( )
- setDenoiseInformationLostFixFlicker( float )
- getShowLightingMode( )
- setShowLightingMode( Render::SHOW_LIGHTING_MODE )
- isCloudsPanoramaReuse( )
- setCloudsPanoramaReuse( bool )
- getCloudsPanoramaResolution( )
- setCloudsPanoramaResolution( int )
- getCloudsMode( )
- setCloudsMode( int )
- isShadowsSimplified( )
- setShadowsSimplified( bool )
- isShadowsReuse( )
- setShadowsReuse( bool )
- isIndirectLightingInterleaved( )
- setIndirectLightingInterleaved( bool )
- getDirectLightingInterleavedSamples( )
- setDirectLightingInterleavedSamples( int )
- getDirectLightingInterleavedColorClamping( )
- setDirectLightingInterleavedColorClamping( int )
- isDirectLightingInterleavedCatmullResampling( )
- setDirectLightingInterleavedCatmullResampling( bool )
- isDirectLightingInterleaved( )
- setDirectLightingInterleaved( bool )
- getMeteringMaskTexture( )
- getMeteringMaskTexturePath( )
- setMeteringMaskTexturePath( const char * )
- isMeteringMaskEnabled( )
- setMeteringMaskEnabled( bool )
- getDenoiseDenoiseMaskDenoiseThreshold( )
- setDenoiseDenoiseMaskDenoiseThreshold( float )
- getDenoiseDenoiseMaskBias( )
- setDenoiseDenoiseMaskBias( float )
- getDenoiseDenoiseMaskFrameCount( )
- setDenoiseDenoiseMaskFrameCount( float )
- getDenoiseColorClampingBlurIntensityAO( )
- setDenoiseColorClampingBlurIntensityAO( float )
- getDenoiseColorClampingBlurIntensity( )
- setDenoiseColorClampingBlurIntensity( float )
- getDenoiseColorClampingBlurRadius( )
- setDenoiseColorClampingBlurRadius( float )
- getDenoiseAOMaskRadius( )
- setDenoiseAOMaskRadius( float )
- getDenoiseInformationLostDepthThreshold( )
- setDenoiseInformationLostDepthThreshold( float )
- isDenoiseInterleaved( )
- setDenoiseInterleaved( bool )
- getIndirectSpecularDenoiseThresholdAO( )
- setIndirectSpecularDenoiseThresholdAO( float )
- getIndirectSpecularTemporalFilteringFramesClampingVelocityThreshold( )
- setIndirectSpecularTemporalFilteringFramesClampingVelocityThreshold( float )
- getIndirectSpecularTemporalFilteringColorClampingIntensityAO( )
- setIndirectSpecularTemporalFilteringColorClampingIntensityAO( float )
- getIndirectSpecularTemporalFilteringFrameCountMin( )
- setIndirectSpecularTemporalFilteringFrameCountMin( float )
- getIndirectDiffuseDenoiseThresholdAO( )
- setIndirectDiffuseDenoiseThresholdAO( float )
- getIndirectDiffuseTemporalFilteringFramesClampingVelocityThreshold( )
- setIndirectDiffuseTemporalFilteringFramesClampingVelocityThreshold( float )
- getIndirectDiffuseTemporalFilteringColorClampingIntensityAO( )
- setIndirectDiffuseTemporalFilteringColorClampingIntensityAO( float )
- getIndirectDiffuseTemporalFilteringFrameCountMin( )
- setIndirectDiffuseTemporalFilteringFrameCountMin( float )
- getShadersCompileMode( )
- setShadersCompileMode( Render::SHADERS_COMPILE_MODE )
- getNumLoadedShaders( )
- getNumCompiledShaders( )
- getNumLoadedPSO( )
- getNumCompiledPSO( )
- getMaxNumActiveTargets( )
- setMaxNumActiveTargets( int )
Renderer Class#
UNIGINE 2.17 | UNIGINE 2.18 |
---|---|
getTextureLights( ) | Removed. Use getTextureIndirectLights( ) or getTextureDirectLights( ) instead. |
New Functions
Shader Class#
UNIGINE 2.17 | UNIGINE 2.18 |
---|---|
compile( const char *, const char *, const char *, const char *, const char *, const char *, const char *, unsigned long long ) | Set of arguments changed. |
loadCompute( const char *, const char * ) | Removed. |
loadControl( const char *, const char * ) | Removed. |
loadEvaluate( const char *, const char * ) | Removed. |
loadFragment( const char *, const char * ) | Removed. |
loadGeometry( const char *, const char * ) | Removed. |
loadVertex( const char *, const char * ) | Removed. |
New Functions
- SUB_SHADER_VERTEX
- SUB_SHADER_CONTROL
- SUB_SHADER_EVALUATE
- SUB_SHADER_GEOMETRY
- SUB_SHADER_FRAGMENT
- SUB_SHADER_COMPUTE
- validateShader( Shader::SUB_SHADER, const char *, const char * )
- compileShader( const char *, const char *, unsigned long long )
- compileVertGeomFrag( const char *, const char *, const char *, const char *, unsigned long long )
- compileVertFrag( const char *, const char *, const char *, unsigned long long )
- compileCompute( const char *, const char *, unsigned long long )
StructuredBuffer Class#
UNIGINE 2.17 | UNIGINE 2.18 |
---|---|
bindCompute( int ) | Removed. Use the RenderState::setStructuredBuffer() method. |
unbindCompute( int ) | Removed. Use the RenderState::clearStructuredBuffer() method. |
bindControl( int ) | Removed. Use the RenderState::setStructuredBuffer() method. |
unbindControl( int ) | Removed. Use the RenderState::clearStructuredBuffer() method. |
bindEvaluate( int ) | Removed. Use the RenderState::setStructuredBuffer() method. |
unbindEvaluate( int ) | Removed. Use the RenderState::clearStructuredBuffer() method. |
bindFragment( int ) | Removed. Use the RenderState::setStructuredBuffer() method. |
unbindFragment( int ) | Removed. Use the RenderState::clearStructuredBuffer() method. |
bindGeometry( int ) | Removed. Use the RenderState::setStructuredBuffer() method. |
unbindGeometry( int ) | Removed. Use the RenderState::clearStructuredBuffer() method. |
bindVertex( int ) | Removed. Use the RenderState::setStructuredBuffer() method. |
unbindVertex( int ) | Removed. Use the RenderState::clearStructuredBuffer() method. |
Stream Class#
Socket Class#
UNIGINE 2.17 | UNIGINE 2.18 |
---|---|
Socket( int ) | Removed. |
Socket( int, int ) | Removed. |
Socket( int, const char *, int ) | Removed. |
SOCKET_STREAM | Renamed as SOCKET_TYPE_STREAM. |
SOCKET_DGRAM | Renamed as SOCKET_TYPE_DGRAM. |
create( ) | Set of arguments changed. |
create( ) | Set of arguments changed. |
create( ) | Set of arguments changed. |
close( ) | Set of arguments changed. |
SSLSocket Class#
UNIGINE 2.17 | UNIGINE 2.18 |
---|---|
Enum X509_NAME_TYPE | Removed. |
open( int ) | Removed. |
open( const char *, int ) | Removed. |
close( ) | Set of arguments changed. |
bind( ) | Removed. |
listen( int ) | Removed. |
accept( const Ptr<Socket> & ) | Set of arguments changed. |
nonblock( ) | Removed. |
block( ) | Removed. |
load( SSLSocket::LOADER_TYPE, const char * ) | Set of arguments changed. |
parse( SSLSocket::LOADER_TYPE, const char * ) | Set of arguments changed. |
getHandshake( ) | Removed. Use handshake( ) instead. |
getInfo( SSLSocketInterface::X509_NAME_TYPE ) | Removed. |
getHost( ) | Removed. |
getPort( ) | Removed. |
isOpened( ) | Removed. |
getStream( ) | Removed. |
New Functions
- SSL_CTX_METHOD_TLS
- SSL_CTX_METHOD_TLS_1_0
- SSL_CTX_METHOD_TLS_1_1
- SSL_CTX_METHOD_TLS_1_2
- SSL_CTX_METHOD_DTLS
- SSL_CTX_METHOD_DTLS_1
- SSL_CTX_METHOD_DTLS_1_2
- SSL_HANDSHAKE_ERROR_NONE
- SSL_HANDSHAKE_ERROR_SSL
- SSL_HANDSHAKE_ERROR_WANT_READ
- SSL_HANDSHAKE_ERROR_WANT_WRITE
- SSL_HANDSHAKE_ERROR_WANT_X509_LOOKUP
- SSL_HANDSHAKE_ERROR_SYSCALL
- SSL_HANDSHAKE_ERROR_ZERO_RETURN
- SSL_HANDSHAKE_ERROR_WANT_CONNECT
- SSL_HANDSHAKE_ERROR_WANT_ACCEPT
- SSL_HANDSHAKE_ERROR_WANT_ASYNC
- SSL_HANDSHAKE_ERROR_WANT_ASYNC_JOB
- SSL_HANDSHAKE_ERROR_WANT_CLIENT_HELLO_CB
- SSL_HANDSHAKE_OK
- SSL_HANDSHAKE_FAILED
- isCertificateVerified( )
- peek( void *, size_t, size_t )
- write( const void *, size_t, size_t )
- read( void *, size_t, size_t )
- pending( )
- handshake( )
Texture Class#
UNIGINE 2.17 | UNIGINE 2.18 |
---|---|
bindCompute( int ) | Removed. Use the RenderState::setTexture() method with the BIND_ALL variable as an argument. |
bindFragment( int ) | Removed. Use the RenderState::setTexture() method with the BIND_FRAGMENT variable as an argument. |
bindVertex( int ) | Removed. Use the RenderState::setTexture() method with the BIND_ALL variable as an argument. |
unbindCompute( int ) | Removed. Use the RenderState::clearTexture() method. |
unbindFragment( int ) | Removed. Use the RenderState::clearTexture() method. |
unbindVertex( int ) | Removed. Use the RenderState::clearTexture() method. |
Visualizer Class#
Viewport Class#
FMODStudio Class#
Last update:
2023-11-30
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)